// GET: DeclarationOfConformities/Create public ActionResult Create() { var doc = new DeclarationOfConformity(); doc.Chemicals = new List<Chemical>(); PopulateSelectedChemicalsData(doc); doc.RMACreated = false; return View(); }
// Chemicals selected by the user private void UpdateDOCChemicals(string[] selectedChemicals, DeclarationOfConformity docToUpdate) { if (selectedChemicals == null) { docToUpdate.Chemicals = new List<Chemical>(); return; } var selectedChemicalsHS = new HashSet<string>(selectedChemicals); var docChemicals = new HashSet<int> (docToUpdate.Chemicals.Select(c => c.ChemicalID)); foreach (var chemical in db.Chemicals) { if (selectedChemicalsHS.Contains(chemical.ChemicalID.ToString())) { if (!docChemicals.Contains(chemical.ChemicalID)) { docToUpdate.Chemicals.Add(chemical); } } else { if (docChemicals.Contains(chemical.ChemicalID)) { docToUpdate.Chemicals.Remove(chemical); } } } }
// Show all chemicals in Chemical table private void PopulateSelectedChemicalsData(DeclarationOfConformity declarationOfConformity) { var allChemicals = db.Chemicals; var selectChemicals = new HashSet<int>(declarationOfConformity.Chemicals.Select(c => c.ChemicalID)); var viewModel = new List<SelectedChemicalsData>(); foreach (var chemical in allChemicals) { viewModel.Add(new SelectedChemicalsData { ChemicalID = chemical.ChemicalID, Description = chemical.Description, Assigned = selectChemicals.Contains(chemical.ChemicalID) }); } ViewBag.Chemicals = viewModel; }