public TransactionHolder(InventoryView seller, InventoryView buyer, InventoryViewRow item, int stackLimit)
 {
     SellerInventory     = seller;
     BuyerInventory      = buyer;
     TransactionItem     = item;
     TransactionQuantity = 0;
     StackLimit          = stackLimit;
 }
示例#2
0
 public static void DeleteEquipmentItem(InventoryView inventory, InventoryViewRow item)
 {
     UpdateDatabase += () =>
     {
         var itemToRemove = Context.Equipment.Where(x => x.Inventory.Id == (int)inventory.Owner && x.Inventory.Id == (int)inventory.Owner && x.Product.Id == item.ProductId).FirstOrDefault();
         Context.Equipment.Remove(itemToRemove);
         Context.SaveChanges();
     };
 }
示例#3
0
 public static void UpdateEquipmentItemQuantity(InventoryView inventory, InventoryViewRow item, int newQuantity)
 {
     UpdateDatabase += () =>
     {
         var itemToUpdate = Context.Equipment.Where(x => x.Inventory.Id == (int)inventory.Owner && x.Product.Id == item.ProductId).FirstOrDefault();
         itemToUpdate.Quantity = newQuantity;
         Context.SaveChanges();
     };
 }
示例#4
0
 public static void AddEquipmentItem(InventoryView inventory, InventoryViewRow item, int quantity)
 {
     UpdateDatabase += () => {
         Context.Equipment.Add(new EquipmentElement()
         {
             Inventory = Context.Inventories.Where(x => x.Id == (int)inventory.Owner).FirstOrDefault(),
             Product   = Context.Products.Where(x => x.Id == item.ProductId).FirstOrDefault(),
             Quantity  = quantity
         });
         Context.SaveChanges();
     };
 }
        private void DisassembleItem(object sender, RoutedEventArgs e)
        {
            var disassemblerWindow = new DisassemblingPopup(ItemTracker);

            disassemblerWindow.ShowDialog();

            if (disassemblerWindow.shouldDisassembleItem)
            {
                DbTransactionHolder.UpdateEquipmentItemQuantity(UserInventoryView, ItemTracker.SelectedItem, ItemTracker.SelectedItem.Quantity - 1);
                ItemTracker.SelectedItem.Quantity -= 1;
                foreach (var product in ItemTracker.SelectedItem.DisassemblyProducts)
                {
                    if (UserInventoryView.FullInventoryView.Find(x => x.ProductId == product.Id && x.Quantity < x.StackLimit) is InventoryViewRow inventoryElement)
                    {
                        inventoryElement.Quantity += 1;
                        DbTransactionHolder.UpdateEquipmentItemQuantity(UserInventoryView, inventoryElement, inventoryElement.Quantity);
                    }
                    else
                    {
                        inventoryElement = new InventoryViewRow(product);
                        UserInventoryView.FullInventoryView.Add(inventoryElement);
                        DbTransactionHolder.AddEquipmentItem(UserInventoryView, inventoryElement, 1);
                    }
                }
            }

            if (ItemTracker.SelectedItem.Quantity <= 0)
            {
                UserInventoryView.FullInventoryView.Remove(ItemTracker.SelectedItem);
                DbTransactionHolder.DeleteEquipmentItem(UserInventoryView, ItemTracker.SelectedItem);
            }
            DisassemblyButton.Visibility = Visibility.Collapsed;
            ConsumeButton.Visibility     = Visibility.Collapsed;
            UserInventory.SelectedIndex  = -1;
            SellButton.IsEnabled         = false;
            ItemDescription.Text         = string.Empty;
            FillGrids();
        }
示例#6
0
 public SelectedItemTracker()
 {
     SelectedItem = new InventoryViewRow();
 }