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