Esempio n. 1
0
        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...
 }