// 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;
 }