private void RemoveStockListItem(Item item)
        {
            var matchedItem = SalesSearchResults.FirstOrDefault(x => x.InventoryModel.InventoryId == item.InventoryModel.InventoryId);
            var itemIndex   = SalesSearchResults.IndexOf(matchedItem);

            SalesSearchResults[itemIndex].InventoryModel.Quantity -= item.InventoryModel.Quantity;

            SalesSearchResults = new ObservableCollection <Item>(SalesSearchResults);
        }
        private void ExecuteShoppingListCancelCommand()
        {
            var currentShoppingList = ShoppingList.ToList();

            foreach (var item in currentShoppingList)
            {
                var matchedItem      = SalesSearchResults.FirstOrDefault(x => x.InventoryModel.InventoryId == item.InventoryModel.InventoryId);
                var matchedItemIndex = SalesSearchResults.IndexOf(matchedItem);
                SalesSearchResults[matchedItemIndex].InventoryModel.Quantity += item.InventoryModel.Quantity;
            }

            SalesSearchResults = new ObservableCollection <Item>(SalesSearchResults);

            ShoppingList.Clear();
            CalculateTotalPrice();
        }
        private async void ExecuteShoppingListConfirmCommand()
        {
            var currentShoppingList = ShoppingList.ToList();

            int resultsChanged = 0;

            foreach (var item in currentShoppingList)
            {
                var inventoryId = item.InventoryModel.InventoryId;

                var inventoryItem = SalesSearchResults.FirstOrDefault(x => x.InventoryModel.InventoryId == inventoryId)?.InventoryModel;

                resultsChanged += await _inventoryProcessor.UpdateInventoryItem(inventoryItem);
            }

            if (currentShoppingList.Count != resultsChanged)
            {
                throw new Exception("Error updating one or more of the items in inventory.");
            }

            ShoppingList.Clear();
            CalculateTotalPrice();
            UpdateItemsSearchResults();
        }