コード例 #1
0
        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!"));
        }
コード例 #2
0
        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 }));
        }
コード例 #3
0
        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 }));
        }