public ActionResult Create(DistributedMedKit distributedmedkit) { if (ModelState.IsValid) { var matchedItem = db.DistributedMedKits.Where(o => o.EventID == distributedmedkit.EventID && o.MedKitID == distributedmedkit.MedKitID); if (matchedItem.Count() > 1) { throw new Exception("Invalid Data"); } else if (matchedItem.Count() == 1) { var item = matchedItem.SingleOrDefault(); item.NumberOfMedKit = item.NumberOfMedKit + distributedmedkit.NumberOfMedKit; db.Entry(item).State = EntityState.Modified; } else { db.DistributedMedKits.Add(distributedmedkit); } db.SaveChanges(); return RedirectToAction("Index","DistributedBook", new { distributedmedkit.EventID }); } ViewBag.EventID = new SelectList(db.EventMasters, "EventID", "EventDescription", distributedmedkit.EventID); ViewBag.MedKitID = new SelectList(db.MeditationKitMasters, "MedKitID", "MedKitName", distributedmedkit.MedKitID); return View(distributedmedkit); //if (ModelState.IsValid) //{ // db.DistributedBooks.Add(distributedbook); // db.SaveChanges(); // return RedirectToAction("Index", new { distributedbook.EventID }); //} //ViewBag.BookID = new SelectList(db.BookMasters, "BookID", "BookName", distributedbook.BookID); //ViewBag.EventID = new SelectList(db.EventMasters, "EventID", "EventDescription", distributedbook.EventID); //return View(distributedbook); }
public ActionResult Edit(DistributedMedKit distributedmedkit) { if (ModelState.IsValid) { var matchedItem = db.DistributedMedKits.Where(o => o.EventID == distributedmedkit.EventID && o.MedKitID == distributedmedkit.MedKitID); if (matchedItem.Count() == 0)//added a new book { db.Entry(distributedmedkit).State = EntityState.Modified; } else if (matchedItem.Count() > 1) { throw new Exception("Invalid Data"); } else if (matchedItem.Count() == 1 && matchedItem.SingleOrDefault().DistributedMKID != distributedmedkit.DistributedMKID)//modifed but books already existing { var item = matchedItem.SingleOrDefault(); item.NumberOfMedKit = item.NumberOfMedKit + distributedmedkit.NumberOfMedKit; db.Entry(item).State = EntityState.Modified; var removeditem = db.DistributedMedKits.Find(distributedmedkit.DistributedMKID); db.DistributedMedKits.Remove(removeditem); } else { matchedItem.SingleOrDefault().NumberOfMedKit = distributedmedkit.NumberOfMedKit; // db.Entry(distributedmedkit).State = EntityState.Modified; } db.SaveChanges(); return RedirectToAction("Index", "DistributedBook", new { distributedmedkit.EventID }); } ViewBag.EventID = new SelectList(db.EventMasters, "EventID", "EventDescription", distributedmedkit.EventID); ViewBag.MedKitID = new SelectList(db.MeditationKitMasters, "MedKitID", "MedKitName", distributedmedkit.MedKitID); return View(distributedmedkit); }