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); } }
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; } }
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); }