public void Order() { if (IsSomethingOrdered) { var notOrderedItems = AddedElements.Where(x => x.Ordered == false).ToArray(); _tableConnectionProvider.OrderMoreItems(notOrderedItems); foreach (var item in notOrderedItems) { //Zakomentowane, aby lepiej odzwierciedlić aktualny stan zamówienia. Ponadto, łatwiej tak będzie zaznaczyć konkretny element zamówienia jako gotowy. //AddedElements.Remove(item); //var sameTypeElement = AddedElements.FirstOrDefault(x => x.Title == item.Title); //if (sameTypeElement != null) // sameTypeElement.Quantities += item.Quantities; //else //{ item.Ordered = true; //AddedElements.Add(item); //} } } else { _tableConnectionProvider.MakeNewOrder(AddedElements); foreach (var element in AddedElements) { element.Ordered = true; } IsSomethingOrdered = true; } AddedElements.Refresh(); }
private void TableAppSubscriber_OrderItemStateChangedEvent(object sender, OrderItemState e) { var element = AddedElements.FirstOrDefault(omi => omi.Id == e.MenuItemId && omi.Quantities == e.Quantity && omi.Ready != e.Ready); //Może zamiast sprawdzania po menuitemid i quantities (nie gwarantuje unikalności), lepiej przekazywać menuitemquantityId i po tym sprawdzać ? if (element != null) { element.Ready = e.Ready; } AddedElements.Refresh(); }
public void AddNewItem(MenuItemView addingMenuItem) { var element = AddedElements.FirstOrDefault(x => x.Id == addingMenuItem.MenuItemId && !x.Ordered); if (element != null) { element.Quantities++; AddedElements.Refresh(); } else { AddedElements.Add(new OrderMenuItemModel() { Id = addingMenuItem.MenuItemId, Price = addingMenuItem.Price, Ordered = false, Quantities = 1, Title = addingMenuItem.Title }); } TotalPrice += addingMenuItem.Price; }