public static SequencingViewModel Create(IRepositoryFactory repositoryFactory, User user, JobType jobType = null, SequencingPostModel postModel = null) { var viewModel = new SequencingViewModel() { JobType = jobType, JobTypes = jobType == null?repositoryFactory.JobTypeRepository.Queryable.Where(a => a.StandardSequencing || a.CustomSequencing).ToList() : new List <JobType>(), PostModel = postModel ?? new SequencingPostModel() }; if (jobType != null) { var rid = postModel != null && postModel.RechargeAccount != null ? postModel.RechargeAccount.Id : -1; viewModel.RechargeAccounts = new SelectList(user.RechargeAccounts, "Id", "AccountNum", rid); // shared for bacterial clone, dna submission, user run sequencing if (jobType.Id == (int)JobTypeIds.BacterialClone || jobType.Id == (int)JobTypeIds.DnaSubmission || jobType.Id == (int)JobTypeIds.UserRunSequencing) { var pts = new List <SelectListItem>(); pts.Add(new SelectListItem() { Value = ((int)Core.Resources.PlateTypes.NinetySix).ToString(), Text = EnumUtility.GetEnumDescription(Core.Resources.PlateTypes.NinetySix) }); pts.Add(new SelectListItem() { Value = ((int)Core.Resources.PlateTypes.ThreeEightyFour).ToString(), Text = EnumUtility.GetEnumDescription(Core.Resources.PlateTypes.ThreeEightyFour) }); viewModel.PlateTypes = new SelectList(pts, "Value", "Text"); } // shared for bacterial clone, dna submission if (jobType.Id == (int)JobTypeIds.BacterialClone || jobType.Id == (int)JobTypeIds.DnaSubmission) { var pid1 = postModel != null && postModel.Primer1 != null ? postModel.Primer1.Id : -1; viewModel.Primers = new SelectList(repositoryFactory.PrimerRepository.Queryable.Where(a => a.Supplied), "Id", "Name", pid1); } if (jobType.Id == (int)JobTypeIds.BacterialClone || jobType.Id == (int)JobTypeIds.Sublibrary) { var aid = postModel != null && postModel.Antibiotic != null ? postModel.Antibiotic.Id : -1; viewModel.Antibiotics = new SelectList(repositoryFactory.AntibioticRepository.Queryable.OrderBy(a => a.Name), "Id", "Name", aid); var vid = postModel != null && postModel.Vector != null ? postModel.Vector.Id : -1; viewModel.Vectors = new SelectList(repositoryFactory.VectorRepository.Queryable.OrderByDescending(a => a.Name), "Id", "Name", vid); } // only for baacterial clone if (jobType.Id == (int)JobTypeIds.BacterialClone) { var sd = new List <SelectListItem>(); sd.Add(new SelectListItem() { Value = ((int)SequenceDirection.Forward).ToString(), Text = EnumUtility.GetEnumDescription(SequenceDirection.Forward) }); sd.Add(new SelectListItem() { Value = ((int)SequenceDirection.Backward).ToString(), Text = EnumUtility.GetEnumDescription(SequenceDirection.Backward) }); viewModel.SequenceDirections = new SelectList(sd, "Value", "Text"); var sid = postModel != null && postModel.Strain != null ? postModel.Strain.Id : -1; viewModel.Strains = new SelectList(repositoryFactory.StrainRepository.Queryable.Where(a => a.Supplied), "Id", "Name", sid); var pid2 = postModel != null && postModel.Primer2 != null ? postModel.Primer2.Id : -1; viewModel.Primers2 = new SelectList(repositoryFactory.PrimerRepository.Queryable.Where(a => a.Supplied), "Id", "Name", pid2); var bid = postModel != null && postModel.Bacteria != null ? postModel.Bacteria.Id : -1; viewModel.Bacterias = new SelectList(repositoryFactory.BacteriaRepository.Queryable, "Id", "Name", bid); } if (jobType.Id == (int)JobTypeIds.DnaSubmission) { var jid = postModel != null && postModel.JobType != null ? postModel.JobType.Id : -1; viewModel.DnaJobTypes = new SelectList(repositoryFactory.JobTypeRepository.Queryable.Where(a => a.DNASequencing), "Id", "Name", jid); } if (jobType.Id == (int)JobTypeIds.UserRunSequencing) { var did = postModel != null && postModel.Dye != null ? postModel.Dye.Id : -1; viewModel.Dyes = new SelectList(repositoryFactory.DyeRepository.Queryable.Where(a => a.Supplied && !a.Genotyping), "Id", "Name", did); } if (jobType.Id == (int)JobTypeIds.Sublibrary) { var sid = postModel != null && postModel.TypeOfSample != null ? (int)postModel.TypeOfSample : -1; var st = new List <SelectListItem>(); st.Add(new SelectListItem() { Value = ((int)Core.Resources.TypeOfSamples.BAC).ToString(), Text = EnumUtility.GetEnumDescription(Core.Resources.TypeOfSamples.BAC) }); st.Add(new SelectListItem() { Value = ((int)Core.Resources.TypeOfSamples.DNA).ToString(), Text = EnumUtility.GetEnumDescription(Core.Resources.TypeOfSamples.DNA) }); viewModel.TypeOfSamples = new SelectList(st, "Value", "Text", sid); } } return(viewModel); }
public static SequencingViewModel Create(IRepositoryFactory repositoryFactory, User user, JobType jobType = null, SequencingPostModel postModel = null) { var viewModel = new SequencingViewModel() { JobType = jobType, JobTypes = jobType == null ? repositoryFactory.JobTypeRepository.Queryable.Where(a => a.StandardSequencing || a.CustomSequencing).ToList() : new List<JobType>(), PostModel = postModel ?? new SequencingPostModel() }; if (jobType != null) { var rid = postModel != null && postModel.RechargeAccount != null ? postModel.RechargeAccount.Id : -1; viewModel.RechargeAccounts = new SelectList(user.RechargeAccounts, "Id", "AccountNum", rid); // shared for bacterial clone, dna submission, user run sequencing if (jobType.Id == (int)JobTypeIds.BacterialClone || jobType.Id == (int)JobTypeIds.DnaSubmission || jobType.Id == (int)JobTypeIds.UserRunSequencing) { var pts = new List<SelectListItem>(); pts.Add(new SelectListItem() { Value = ((int)Core.Resources.PlateTypes.NinetySix).ToString(), Text = EnumUtility.GetEnumDescription(Core.Resources.PlateTypes.NinetySix) }); pts.Add(new SelectListItem() { Value = ((int)Core.Resources.PlateTypes.ThreeEightyFour).ToString(), Text = EnumUtility.GetEnumDescription(Core.Resources.PlateTypes.ThreeEightyFour) }); viewModel.PlateTypes = new SelectList(pts, "Value", "Text"); } // shared for bacterial clone, dna submission if (jobType.Id == (int)JobTypeIds.BacterialClone || jobType.Id == (int)JobTypeIds.DnaSubmission) { var pid1 = postModel != null && postModel.Primer1 != null ? postModel.Primer1.Id : -1; viewModel.Primers = new SelectList(repositoryFactory.PrimerRepository.Queryable.Where(a => a.Supplied), "Id", "Name", pid1); } if (jobType.Id == (int)JobTypeIds.BacterialClone || jobType.Id == (int)JobTypeIds.Sublibrary) { var aid = postModel != null && postModel.Antibiotic != null ? postModel.Antibiotic.Id : -1; viewModel.Antibiotics = new SelectList(repositoryFactory.AntibioticRepository.Queryable.OrderBy(a => a.Name), "Id", "Name", aid); var vid = postModel != null && postModel.Vector != null ? postModel.Vector.Id : -1; viewModel.Vectors = new SelectList(repositoryFactory.VectorRepository.Queryable.OrderByDescending(a => a.Name), "Id", "Name", vid); } // only for baacterial clone if (jobType.Id == (int)JobTypeIds.BacterialClone) { var sd = new List<SelectListItem>(); sd.Add(new SelectListItem() { Value = ((int)SequenceDirection.Forward).ToString(), Text = EnumUtility.GetEnumDescription(SequenceDirection.Forward) }); sd.Add(new SelectListItem() { Value = ((int)SequenceDirection.Backward).ToString(), Text = EnumUtility.GetEnumDescription(SequenceDirection.Backward) }); viewModel.SequenceDirections = new SelectList(sd, "Value", "Text"); var sid = postModel != null && postModel.Strain != null ? postModel.Strain.Id : -1; viewModel.Strains = new SelectList(repositoryFactory.StrainRepository.Queryable.Where(a => a.Supplied), "Id", "Name", sid); var pid2 = postModel != null && postModel.Primer2 != null ? postModel.Primer2.Id : -1; viewModel.Primers2 = new SelectList(repositoryFactory.PrimerRepository.Queryable.Where(a => a.Supplied), "Id", "Name", pid2); var bid = postModel != null && postModel.Bacteria != null ? postModel.Bacteria.Id : -1; viewModel.Bacterias = new SelectList(repositoryFactory.BacteriaRepository.Queryable, "Id", "Name", bid); } if (jobType.Id == (int)JobTypeIds.DnaSubmission) { var jid = postModel != null && postModel.JobType != null ? postModel.JobType.Id : -1; viewModel.DnaJobTypes = new SelectList(repositoryFactory.JobTypeRepository.Queryable.Where(a => a.DNASequencing), "Id", "Name", jid); } if (jobType.Id == (int)JobTypeIds.UserRunSequencing) { var did = postModel != null && postModel.Dye != null ? postModel.Dye.Id : -1; viewModel.Dyes = new SelectList(repositoryFactory.DyeRepository.Queryable.Where(a => a.Supplied && !a.Genotyping), "Id", "Name", did); } if (jobType.Id == (int)JobTypeIds.Sublibrary) { var sid = postModel != null && postModel.TypeOfSample != null ? (int)postModel.TypeOfSample : -1; var st = new List<SelectListItem>(); st.Add(new SelectListItem() {Value = ((int)Core.Resources.TypeOfSamples.BAC).ToString(), Text = EnumUtility.GetEnumDescription(Core.Resources.TypeOfSamples.BAC)}); st.Add(new SelectListItem() { Value = ((int)Core.Resources.TypeOfSamples.DNA).ToString(), Text = EnumUtility.GetEnumDescription(Core.Resources.TypeOfSamples.DNA) }); viewModel.TypeOfSamples = new SelectList(st, "Value", "Text", sid); } } return viewModel; }