private void inventoryItemToDisplayItem(InventoryItem invItem, DisplayItem displayItem) { var invCat = invItem.InventoryCategoryId != null?InventoryCategories.FirstOrDefault(ic => ic.InventoryCategoryId == invItem.InventoryCategoryId) : null; var vendor = invItem.VendorId != null?Vendors.FirstOrDefault(v => v.VendorId == invItem.VendorId) : null; bool isNeeded = invItem.QuantityOnHand.GetValueOrDefault() < invItem.MinimumQuantity.GetValueOrDefault(); displayItem.Line1 = invItem.InventoryItemName; displayItem.Line2 = (invCat == null ? "" : invCat.CategoryName) + (vendor == null ? "" : $" - {vendor.VendorName}"); displayItem.Line3 = $"In Stock: {invItem.QuantityOnHand.GetValueOrDefault()} | Min Qty: {invItem.MinimumQuantity.GetValueOrDefault()} | Needed: {(isNeeded ? (invItem.MinimumQuantity.GetValueOrDefault() - invItem.QuantityOnHand.GetValueOrDefault()) : 0)}"; displayItem.Tag = invItem; displayItem.Tag2 = isNeeded ? Color.Red : Color.LightGray; }
public InventoryViewModel() { InventoryCategories = DataAccess.GetCategories(); SelectedCategory = new InventoryCategories(); }
async System.Threading.Tasks.Task ExecuteLoadInventoryCommand(bool reload) { if (IsBusy) { return; } if (!IsRefreshing) { IsBusy = true; } try { if (Vendors.Count < 1) { Vendors.Add(new Vendor() { VendorName = "(All)" }); OriginalVendors = (await DataService.GetItemsAsync <Vendor>("vendors")).Data; OriginalVendors.OrderBy(v => v.VendorName).ToList().ForEach(d => Vendors.Add(d)); } if (InventoryCategories.Count < 1) { InventoryCategories.Add(new InventoryCategory() { CategoryName = "(All)" }); OriginalCategories = (await DataService.GetItemsAsync <InventoryCategory>("inventoryCategories")).Data; OriginalCategories.OrderBy(c => c.CategoryName).ToList().ForEach(d => InventoryCategories.Add(d)); } Inventory.Clear(); if (reload || _inventoryItems == null) { _inventoryItems = (await DataService.GetItemsAsync <InventoryItem>("inventoryItems")).Data; } foreach (var item in _inventoryItems .Where(i => SelectedVendor == null || SelectedVendor.VendorId == null || i.VendorId == SelectedVendor.VendorId) .Where(i => SelectedCategory == null || SelectedCategory.InventoryCategoryId == null || i.InventoryCategoryId == SelectedCategory.InventoryCategoryId) .OrderBy(i => i.InventoryItemName)) { bool isNeeded = item.QuantityOnHand.GetValueOrDefault() < item.MinimumQuantity.GetValueOrDefault(); if (!isNeeded && NeededOnly) { continue; } var dispItem = new DisplayItem(); inventoryItemToDisplayItem(item, dispItem); Inventory.Add(dispItem); } } catch (Exception ex) { IsBusy = false; IsRefreshing = false; ExceptionHelper.ShowException(ex); } finally { IsRefreshing = false; IsBusy = false; } }