private async Task ProductDeleted(InventoryItemRow arg)
 {
     if (ContentDialogResult.Primary == await this.messageDialog.ShowAsync())
     {
         arg.ItemDeleteClicked -= this.ProductDeleted;
         this.products.Remove(arg);
         await this.productRepository.Delete(arg.Product);
     }
 }
 private void GetInventoryItems()
 {
     clearItems();
     foreach (Product p in this.productRepository.GetProductList())
     {
         InventoryItemRow inventoryItemRow = new InventoryItemRow
         {
             Product = p
         };
         inventoryItemRow.ItemDeleteClicked += this.ProductDeleted;
         this.products.Add(inventoryItemRow);
     }
 }
Пример #3
0
        private void populate_inventories(CampaignState state, Guid?guid, InventoryItemIdent selected)
        {
            this.inventory_rows.Add(new InventoryItemHeaderRow());
            List <Guid> invs;

            if (guid is null)
            {
                invs = new List <Guid>(state.inventories.inventories.Keys);
            }
            else
            {
                invs = new List <Guid>()
                {
                    guid.Value
                };
            }
            invs.Sort((x, y) => state.inventories.inventories[x].name.CompareTo(state.inventories.inventories[x].name));
            foreach (Guid inv_guid in invs)
            {
                InventoryItemIdent inv_ident = new InventoryItemIdent(inv_guid);
                InventoryItemRow   inv_row   = new InventoryItemRow(
                    null, inv_ident, state.inventories.inventories[inv_guid].name, "", "", new ObservableCollection <InventoryItemBaseRow>()
                    );
                bool found_selected = this.populate_inventory_rows(inv_row.children, inv_ident, state.inventories.inventories[inv_guid], selected);
                if (inv_ident == selected)
                {
                    inv_row._is_selected = true;
                }
                else if (found_selected)
                {
                    inv_row._is_expanded = true;
                }
                this.inventory_rows.Add(inv_row);
                this.inventory_row_index[inv_ident] = inv_row;
            }
        }
Пример #4
0
        private bool populate_inventory_rows(
            ObservableCollection <InventoryItemBaseRow> inv_rows, InventoryItemIdent parent, Inventory inv, InventoryItemIdent selected
            )
        {
            bool found_selected = false;

            if (parent is null)
            {
                inv_rows.Add(new InventoryItemHeaderRow());
            }
            foreach (Guid guid in inv.contents.Keys)
            {
                InventoryEntry ent = inv.contents[guid];
                if ((ent is SingleItem item) && (item.containers is not null))
                {
                    InventoryItemIdent ent_ident = new InventoryItemIdent(guid: guid);
                    InventoryItemRow   ent_row   = new InventoryItemRow(parent, ent_ident, ent.name, "", "");
                    bool ent_found_selected      = false;
                    ent_row._children = new ObservableCollection <InventoryItemBaseRow>();
                    for (int i = 0; i < item.containers.Length; i++)
                    {
                        Inventory          child_inv = item.containers[i];
                        InventoryItemIdent inv_ident = new InventoryItemIdent(guid: guid, idx: i);
                        decimal?           capacity  = item.item.containers[i].weight_capacity;
                        if (capacity is not null)
                        {
                            capacity -= item.containers[i].weight;
                            inventory_capacity[inv_ident] = capacity.Value;
                        }
                        InventoryItemRow inv_row = new InventoryItemRow(
                            ent_ident,
                            inv_ident,
                            child_inv.name,
                            "",
                            capacity.ToString(),
                            new ObservableCollection <InventoryItemBaseRow>()
                            );
                        bool child_found_selected = this.populate_inventory_rows(inv_row.children, inv_ident, child_inv, selected);
                        if (inv_ident == selected)
                        {
                            inv_row._is_selected = true;
                            child_found_selected = true;
                        }
                        else if (child_found_selected)
                        {
                            inv_row._is_expanded = true;
                        }
                        ent_found_selected = ent_found_selected || child_found_selected;
                        ent_row.children.Add(inv_row);
                        this.inventory_row_index[inv_ident] = inv_row;
                    }
                    if (ent_ident == selected)
                    {
                        ent_row._is_selected = true;
                        ent_found_selected   = true;
                    }
                    else if (ent_found_selected)
                    {
                        ent_row._is_expanded = true;
                    }
                    found_selected = found_selected || ent_found_selected;
                    inv_rows.Add(ent_row);
                    this.inventory_row_index[ent_ident] = ent_row;
                }
            }
            return(found_selected);
        }