using System.Collections.Generic; using System.Linq; namespace CoreAgent.Domain.Models.Network { public class CellConfigurationProvider { private readonly List _lteCellConfigurations; private readonly List _nrCellConfigurations; public IReadOnlyList LTECellConfigurations => _lteCellConfigurations.AsReadOnly(); public IReadOnlyList NrCellConfigurations => _nrCellConfigurations.AsReadOnly(); public CellConfigurationProvider() { _lteCellConfigurations = new List(); _nrCellConfigurations = new List(); } public void AddLTEConfiguration(LTECellConfiguration configuration) { var existingConfig = _lteCellConfigurations.FirstOrDefault(s => s.CellID == configuration.CellID); if (existingConfig != null) _lteCellConfigurations.Remove(existingConfig); _lteCellConfigurations.Add(configuration); } public void AddNrConfiguration(NrCellConfiguration configuration) { var existingConfig = _nrCellConfigurations.FirstOrDefault(s => s.CellID == configuration.CellID); if (existingConfig != null) _nrCellConfigurations.Remove(existingConfig); _nrCellConfigurations.Add(configuration); } private void RemoveLTEConfiguration(int cellId) { var config = _lteCellConfigurations.FirstOrDefault(s => s.CellID == cellId); if (config != null) _lteCellConfigurations.Remove(config); } private void RemoveNrConfiguration(int cellId) { var config = _nrCellConfigurations.FirstOrDefault(s => s.CellID == cellId); if (config != null) _nrCellConfigurations.Remove(config); } public LTECellConfiguration? GetLTEConfiguration(int cellId) { return _lteCellConfigurations.FirstOrDefault(s => s.CellID == cellId); } public NrCellConfiguration? GetNrConfiguration(int cellId) { return _nrCellConfigurations.FirstOrDefault(s => s.CellID == cellId); } public Dictionary GetCellPortMapping() { var result = new Dictionary(); // 添加LTE配置 foreach (var config in _lteCellConfigurations) { result[config.CellID] = config.RfPort; } // 添加NR配置 foreach (var config in _nrCellConfigurations) { result[config.CellID] = config.RfPort; } return result; } } }