public void OnGet(int guest, string warning) { Orders = _events .IncludeOnly(@event => @event switch { OrderPlaced order => order.Guest == guest, DeliveryReceived delivery => delivery.Guest == guest, BillPaid paid => paid.Guest == guest, _ => false }
private static ImmutableDictionary <int, OrderViewModel> MarkItemsAsPaid(ImmutableDictionary <int, OrderViewModel> state, BillPaid paid) { foreach (var paidOrder in paid.PaidOrders) { var order = state[paidOrder.Order]; foreach (var paidDrink in paidOrder.PaidDrinks) { var unpaidDrink = order.DrinkOrder.FirstOrDefault(x => x.PaidWith == null && x.Id == paidDrink); if (unpaidDrink != null) { unpaidDrink.PaidWith = new OrderItem.Payment { PaidOn = paid.On, Bill = paid.Bill } } ; } foreach (var paidFood in paidOrder.PaidFood) { var unpaidFood = order.FoodOrder.FirstOrDefault(x => x.PaidWith == null && x.Id == paidFood); if (unpaidFood != null) { unpaidFood.PaidWith = new OrderItem.Payment { PaidOn = paid.On, Bill = paid.Bill } } ; } } return(state); }
public virtual void RaiseBillPaymentEvent(PayBillEvent eventArgs) { BillPaid?.Invoke(this, eventArgs); }