private void TableAppSubscriberOnReservationOrderScheduledEvent(object sender, ReservationOrderScheduledModel reservationOrderScheduledModel) { //TODO: Przerwać trwające zamówienie IsSomethingOrdered = false; AddedElements.Clear(); TotalPrice = 0; foreach (var menuItem in reservationOrderScheduledModel.MenuItems) { var item = Elements.FirstOrDefault(el => el.MenuItemId == menuItem.MenuItemId); for (int i = 0; i < menuItem.Quantities; i++) //TODO: Napisać to mądrzej... { AddNewItem(item); } } ModernInputDialogMessageBoxResult result = null; Action showMessageAction = () => { result = ModernInputDialog.ShowInputMessage("Unlock code:", "RESERVATION", MessageBoxButton.OKCancel, Application.Current.MainWindow); }; var dispatcher = Application.Current.Dispatcher; do { if (dispatcher == null || dispatcher.CheckAccess()) { showMessageAction.Invoke(); } else { dispatcher.Invoke(showMessageAction); } } while (result.MessageBoxResult != MessageBoxResult.OK || !result.Input.Equals(reservationOrderScheduledModel.UnlockCode)); }
public void LockTable(ReservationOrderScheduledModel orderScheduled) { Task.Run(() => HandleSafely(ReservationOrderScheduledEvent, orderScheduled)); //should be awaited... }