Example #1
0
        private UnloadViewModel RecuperarItemsUnload(int id)
        {
            var capsuleDB = Database.Capsules.SingleOrDefault(p => p.CapsuleId == id && p.UserId == Username);

            if (capsuleDB == null)
            {
                return(null);
            }

            UnloadViewModel model = new UnloadViewModel();

            LoadCapsule(capsuleDB, model);

            model.Items = capsuleDB.CapsulesItems.Select(p => new ItemUnloadViewModel {
                CurrentItem     = ItemBase.Create(ItemsXml, p.ItemId),
                CapsuleQuantity = p.Quantity,
                UnloadQuantity  = 0
            }).OrderBy(x => x.CurrentItem.Order).ToList();

            return(model);
        }
Example #2
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 }));
        }