public ActionResult Index(int?CompanyId) { if (CompanyId == null) { return(RedirectToAction("Index", "Home")); } Company company = db.FindCompany(CompanyId); if (company == null) { return(HttpNotFound()); } // Check for Labor Vendor LaborTableModel ltm = new LaborTableModel() { Labors = db.LaborTable.Where(l => l.CompanyId == CompanyId).ToList(), CompanyId = CompanyId.Value, CompanyName = company.Name, }; List <Vendor> vendors = db.Vendors.Where(v => v.CompanyId == CompanyId && (v.Type.Type & vendorTypeEnum.Labor) == vendorTypeEnum.Labor).ToList(); foreach (LaborItem li in ltm.Labors) { li.selectList = new SelectList(vendors, "Id", "Name", li.VendorId); } ltm.bHasVendors = vendors.Count != 0; return(View(ltm)); }
public ActionResult Index(LaborTableModel ltm) { List <Vendor> vendors; if (ModelState.IsValid) { int i = -1; //db.Entry(cvm.company).State = EntityState.Modified; foreach (LaborItem li in ltm.Labors) { i++; switch (li.State) { case LMState.Added: li.CompanyId = ltm.CompanyId; db.LaborTable.Add(li); li.State = LMState.Dirty; break; case LMState.Deleted: // Make sure its not used. If it is, reset to "Dirty" and add an error message if (db.StyleLaborItems.Where(sli => sli.LaborTableId == li.Id).Count() > 0) { li.State = LMState.Dirty; ModelState.SetModelValue($"Labors[{i}].State", new ValueProviderResult("Dirty", "", System.Globalization.CultureInfo.InvariantCulture)); ModelState.AddModelError($"Labors[{i}].Name", $"You cannot delete {li.Name}: it is used by the following style(s):{StylesInUse(li)}"); break; } db.Entry(li).State = EntityState.Deleted; db.LaborTable.Remove(li); break; case LMState.Dirty: db.Entry(li).State = EntityState.Modified; break; case LMState.Unadded: case LMState.Clean: case LMState.Fixed: break; } } } vendors = db.Vendors.Where(v => v.CompanyId == ltm.CompanyId).ToList(); if (ModelState.IsValid) { db.SaveChanges(); int CompanyId = ltm.CompanyId; string CompanyName = ltm.CompanyName; ModelState.Clear(); ltm = new LaborTableModel() { Labors = db.LaborTable.Where(l => l.CompanyId == CompanyId).ToList(), CompanyId = CompanyId, CompanyName = CompanyName, }; foreach (LaborItem li in ltm.Labors) { li.selectList = new SelectList(vendors, "Id", "Name", li.VendorId); } ltm.bHasVendors = vendors.Count != 0; return(RedirectToAction("Index", "Companies")); } foreach (LaborItem li in ltm.Labors) { li.selectList = new SelectList(vendors, "Id", "Name", li.VendorId); } ltm.bHasVendors = vendors.Count != 0; return(View(ltm)); }