public async Task <IEnumerable <Item> > GetItemsAsync() { if (items == null) { var result = await itemStorage.GetItemsAsync(); if (!result.IsFaulted) { items = result.Value.Where(i => i.Balance > 0); } else { throw result.Exception; } } return(items); }
private async Task <bool> CheckItemsBalance() { IsBusy = true; try { var result = await itemStorage.GetItemsAsync(); var notExists = new List <ObjectId>(); if (!result.IsFaulted) { foreach (var cartItemKey in cartService.GetItems().Keys) { var item = result.Value.FirstOrDefault(i => i.Id == cartItemKey.Id); if (item == null || item.Balance < cartService.GetItems()[cartItemKey]) { notExists.Add(cartItemKey.Id); } } if (notExists.Count > 0) { foreach (var id in notExists) { cartService.RemoveById(id); } await itemService.UpdateItemsAsync(); view.ShowMessage("Внимание", "Некоторые выбранные блюда более недоступны для заказа, они были удалены из заказа, проверьте содержимое корзины и выберите замену."); return(false); } else { return(true); } } else { view.ShowMessage("Ошибка", result.Exception.Message); return(false); } } finally { IsBusy = false; } }