public async Task <IEnumerable <SynthesisActivityItemViewModel> > GetCurrentSynthesisActivities() { GeneSynthesisProcess currentGeneSynthesisProcess = await GetCurrentGeneSynthesisProcess(); if (currentGeneSynthesisProcess?.GeneSynthesisActivities != null && currentGeneSynthesisProcess.GeneSynthesisActivities.Any()) { IList <SynthesisActivityItemViewModel> currentSynthesisActivities = new List <SynthesisActivityItemViewModel>(); foreach (GeneSynthesisActivity geneSynthesisActivity in currentGeneSynthesisProcess.GeneSynthesisActivities) { SynthesisActivityItemViewModel synthesisActivityItemViewModel = new SynthesisActivityItemViewModel(); synthesisActivityItemViewModel.Id = geneSynthesisActivity.Id; synthesisActivityItemViewModel.ChannelNumber = geneSynthesisActivity.ChannelNumber; synthesisActivityItemViewModel.DNASequence = geneSynthesisActivity.DNASequence; synthesisActivityItemViewModel.TotalTime = geneSynthesisActivity.TotalTime; synthesisActivityItemViewModel.SynthesisCycle = new SynthesisCycleItemViewModel() { Id = geneSynthesisActivity.SynthesisCycle.Id, Name = geneSynthesisActivity.SynthesisCycle.Name }; currentSynthesisActivities.Add(synthesisActivityItemViewModel); } return(currentSynthesisActivities); } return(Enumerable.Empty <SynthesisActivityItemViewModel>()); }
public async Task CreateOrUpdateSynthesisActivity(SynthesisActivityItemViewModel item) { GeneSynthesisActivity entity; GeneSynthesisProcess currentGeneSynthesisProcess = await GetCurrentGeneSynthesisProcess(); if (string.IsNullOrWhiteSpace(item.Id)) { entity = new GeneSynthesisActivity(); entity.GeneSynthesisProcess = currentGeneSynthesisProcess; } else { entity = await unitOfWork.GetAll <GeneSynthesisActivity>() .Include(x => x.SynthesisCycle) .Include(x => x.GeneSynthesisProcess) .SingleAsync(x => x.Id == item.Id); } entity.DNASequence = !string.IsNullOrWhiteSpace(item.DNASequence) ? item.DNASequence.ToUpper() : "A"; if (item.SynthesisCycle != null && !string.IsNullOrWhiteSpace(item.SynthesisCycle.Id)) { entity.SynthesisCycle = unitOfWork.GetById <SynthesisCycle>(item.SynthesisCycle.Id); } else { SynthesisCycle defaultSynthesisCycle = await unitOfWork.GetAll <SynthesisCycle>() .SingleAsync(x => x.UserId == null); entity.SynthesisCycle = defaultSynthesisCycle; } await AssignToChannel(entity, currentGeneSynthesisProcess.GeneSynthesisActivities); CalcGeneSynthesisActivityTotalTime(entity); unitOfWork.InsertOrUpdate(entity); unitOfWork.Commit(); currentGeneSynthesisProcess = await GetCurrentGeneSynthesisProcess(); CalcGeneSynthesisProcessTotalTime(currentGeneSynthesisProcess); unitOfWork.Commit(); }