public LinkBroadcastStationsToResdbRes() { var linkBroadcastStationsToResdbResRepository = new LinkBroadcastStationsToResdbResRepository(); Repository = linkBroadcastStationsToResdbResRepository; }
public bool InsertStations(List <RadioDevice> radioDeviceCollection) { var result = true; var radioDeviceListForInsert = new List <RadioDevice>(); var broadcastStationsRepository = Repository; if (broadcastStationsRepository != null && radioDeviceCollection != null) { foreach (var radioDevice in radioDeviceCollection) { var broadcastStations = SingleRadioDeviceToBroadcastStations(radioDevice); var isSuccess = broadcastStationsRepository.InsertStation(broadcastStations); var isIdResSet = false; if (isSuccess && radioDevice != null && broadcastStations != null) { radioDevice.IdRes = broadcastStations.ID_RES; isIdResSet = true; } var stationFrequencies = broadcastStations?.StationFrequencies; if (radioDevice?.RadioSignals != null && isIdResSet && stationFrequencies != null) { var radioSignalsUpperBound = radioDevice.RadioSignals.GetUpperBound(0); foreach (var stationFrequency in stationFrequencies) { if (stationFrequency != null) { for (int index = 0; index <= radioSignalsUpperBound; index++) { if (radioDevice.RadioSignals[index] != null) { if ((radioDevice.RadioSignals[index].IdF == 0 || radioDevice.RadioSignals[index].Res == 0) && radioDevice.RadioSignals[index].Rn == stationFrequency.RN && radioDevice.RadioSignals[index].Tn == stationFrequency.TN && !radioDevice.RadioSignals.Any( // ReSharper disable SimplifyConditionalTernaryExpression x => x == null ? false : x.IdF == stationFrequency.ID_F // ReSharper restore SimplifyConditionalTernaryExpression ) ) { if (radioDevice.RadioSignals[index] != null) { radioDevice.RadioSignals[index].IdF = stationFrequency.ID_F; radioDevice.RadioSignals[index].Res = stationFrequency.RES; break; } } } } } } } if (isIdResSet) { radioDeviceListForInsert.Add(radioDevice); } result = result && isIdResSet; } } var linkToResdbResList = new List <DataAccessLayer.LinkBroadcastStationsToResdbRes>(); var linkToResdbFrqList = new List <DataAccessLayer.LinkStationFrequenciesToResdbFrq>(); foreach (var deviceForInsert in radioDeviceListForInsert) { if (deviceForInsert?.Guid != null) { if (deviceForInsert.RadioSignals != null) { foreach (var radioSignal in deviceForInsert.RadioSignals) { if (radioSignal?.Guid != null) { var linkBroadcastStationsToResdbFrq = new DataAccessLayer.LinkStationFrequenciesToResdbFrq { GUID = radioSignal.Guid.Value, ID_F = radioSignal.IdF }; linkToResdbFrqList.Add(linkBroadcastStationsToResdbFrq); } } } var linkBroadcastStationsToResdbRes = new DataAccessLayer.LinkBroadcastStationsToResdbRes { GUID = deviceForInsert.Guid.Value, ID_RES = deviceForInsert.IdRes }; linkToResdbResList.Add(linkBroadcastStationsToResdbRes); } } if (linkToResdbResList.Count > 0) { var repository = new LinkBroadcastStationsToResdbResRepository(); var isSuccess = repository.InsertLinkToResdbRes(linkToResdbResList); result = result && isSuccess; } if (linkToResdbFrqList.Count > 0) { var repository = new LinkStationFrequenciesToResdbFrqRepository(); var isSuccess = repository.InsertLinkToResdbFrq(linkToResdbFrqList); result = result && isSuccess; } return(result); }