public ActionResult Create(InboundSet inventoryset) { if (ModelState.IsValid) { var matchedItem = db.InboundSets.Where(o => o.InboundMasterID == inventoryset.InboundMasterID && o.SetID == inventoryset.SetID); if (matchedItem.Count() > 1) { throw new Exception("Invalid Data"); } else if (matchedItem.Count() == 1) { var item = matchedItem.SingleOrDefault(); item.NumberOfSets = item.NumberOfSets + inventoryset.NumberOfSets; db.Entry(item).State = EntityState.Modified; } else { db.InboundSets.Add(inventoryset); } db.SaveChanges(); return RedirectToAction("Index", "InventoryBook", new { inventoryset.InboundMasterID }); } ViewBag.InboundMasterID = new SelectList(db.InboundMasters, "InboundMasterID", "Description", inventoryset.InboundMasterID); ViewBag.SetID = new SelectList(db.SetMasters, "SetID", "SetName", inventoryset.SetID); return View(inventoryset); }
public ActionResult Edit(InboundSet inventoryset) { if (ModelState.IsValid) { var matchedItem = db.InboundSets.Where(o => o.InboundMasterID == inventoryset.InboundMasterID && o.SetID == inventoryset.SetID); if (matchedItem.Count() ==0)//added a new book { db.Entry(inventoryset).State = EntityState.Modified; } else if (matchedItem.Count() > 1) { throw new Exception("Invalid Data"); } else if (matchedItem.Count() == 1 && matchedItem.SingleOrDefault().InboundSetID != inventoryset.InboundSetID)//modifed but books already existing { var item = matchedItem.SingleOrDefault(); item.NumberOfSets = item.NumberOfSets + inventoryset.NumberOfSets; db.Entry(item).State = EntityState.Modified; var removeditem = db.DistributedBooks.Find(inventoryset.InboundSetID); db.DistributedBooks.Remove(removeditem); } else { matchedItem.SingleOrDefault().NumberOfSets = inventoryset.NumberOfSets; // db.Entry(inventoryset).State = EntityState.Modified; } db.SaveChanges(); return RedirectToAction("Index", "InventoryBook", new { inventoryset.InboundMasterID }); } ViewBag.InboundMasterID = new SelectList(db.InboundMasters, "InboundMasterID", "Description", inventoryset.InboundMasterID); ViewBag.SetID = new SelectList(db.SetMasters, "SetID", "SetName", inventoryset.SetID); return View(inventoryset); }