public ActionResult SaveNewQty(IList <ItemQuantity> items) { if (items == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "There are no items.")); } if (items.Any(p => p.Quantity > 2000 || p.Quantity < 0)) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, "The item quantity must be a value between 0 and 2000")); } var itemsCapsule = ItemsXml.Where(p => p is ItemCapsule).Cast <ItemCapsule>(); foreach (ItemQuantity item in items) { if (itemsCapsule.Any(p => p.ItemId == item.ItemId && !string.IsNullOrEmpty(p.UniqueId))) { item.Quantity = 1; } string itemId = item.ItemId; InventoriesItems invItem = Database.InventoriesItems.SingleOrDefault(p => p.Inventories.UserId == Username && p.ItemId == itemId); if (invItem != null) { if (item.Quantity == 0) { Database.InventoriesItems.Remove(invItem); } else { invItem.Quantity = item.Quantity; } } else { if (item.Quantity > 0) { Inventories inv = Database.Inventories.SingleOrDefault(p => p.UserId == Username); if (inv == null) { inv = new Inventories { UserId = Username }; Database.Inventories.Add(inv); } Database.InventoriesItems.Add(new InventoriesItems { Inventories = inv, ItemId = itemId, Quantity = item.Quantity }); } } } Database.SaveChanges(); return(Json("Successfully saved!")); }
public ActionResult Load(LoadViewModel capsule) { if (!ModelState.IsValid) { return(View(capsule)); } var capsuleDB = Database.Capsules.SingleOrDefault(p => p.CapsuleId == capsule.CapsuleId && p.UserId == Username); if (capsuleDB == null) { return(new HttpNotFoundResult()); } if (capsule.Items != null) { if (capsule.Items.Any(p => p.LoadQuantity > p.ItemQuantity)) { return(View(capsule)); } foreach (var item in capsule.Items.Where(p => p.LoadQuantity > 0)) { CapsulesItems capsuleItem = Database.CapsulesItems.SingleOrDefault(p => p.CapsuleId == capsule.CapsuleId && p.ItemId == item.CurrentItem.ItemId); if (capsuleItem != null) { capsuleItem.Quantity += item.LoadQuantity; } else { Database.CapsulesItems.Add(new CapsulesItems { CapsuleId = capsule.CapsuleId, ItemId = item.CurrentItem.ItemId, Quantity = item.LoadQuantity }); } InventoriesItems invItem = Database.InventoriesItems.SingleOrDefault(p => p.Inventories.UserId == Username && p.ItemId == item.CurrentItem.ItemId); if (invItem != null) { if (invItem.Quantity == item.LoadQuantity) { Database.InventoriesItems.Remove(invItem); } else { invItem.Quantity -= item.LoadQuantity; } } } Database.SaveChanges(); } return(RedirectToAction("List", new { id = capsule.CapsuleId })); }
public ActionResult Unload(UnloadViewModel capsule) { if (!ModelState.IsValid) { var model = RecuperarItemsUnload(capsule.CapsuleId); if (model == null) { return(new HttpNotFoundResult()); } return(View(model)); } var capsuleDB = Database.Capsules.SingleOrDefault(p => p.CapsuleId == capsule.CapsuleId && p.UserId == Username); if (capsuleDB == null) { return(new HttpNotFoundResult()); } if (capsule.Items != null) { foreach (var item in capsule.Items.Where(p => p.UnloadQuantity > 0)) { CapsulesItems capsuleItem = Database.CapsulesItems.SingleOrDefault(p => p.CapsuleId == capsule.CapsuleId && p.ItemId == item.CurrentItem.ItemId); if (capsuleItem != null) { if (capsuleItem.Quantity == item.UnloadQuantity) { Database.CapsulesItems.Remove(capsuleItem); } else { capsuleItem.Quantity -= item.UnloadQuantity; } InventoriesItems invItem = Database.InventoriesItems.SingleOrDefault(p => p.Inventories.UserId == Username && p.ItemId == item.CurrentItem.ItemId); if (invItem != null) { invItem.Quantity += item.UnloadQuantity; } else { Inventories inv = Database.Inventories.SingleOrDefault(p => p.UserId == Username); if (inv == null) { inv = new Inventories { UserId = Username }; Database.Inventories.Add(inv); } Database.InventoriesItems.Add(new InventoriesItems { Inventories = inv, ItemId = item.CurrentItem.ItemId, Quantity = item.UnloadQuantity }); } } } Database.SaveChanges(); } return(RedirectToAction("List", new { id = capsule.CapsuleId })); }