public void Handle(NewWebOrderCommand command)
        {
            var client = UnitOfWork.Get <WebClient>(x => x.User.Login == command.Login);
            var table  = GetFreeTable(command.OrderDate);
            var order  = new ReservationOrder()
            {
                Client          = client,
                Created         = DateTime.Now,
                Status          = ReservationOrderStatus.Created,
                ReservationTime = command.OrderDate,
                UnlockCode      = CreateUnlockCode(),
                Table           = table
            };

            UnitOfWork.Add(order);
            var menuItemsIds            = command.Items.Select(x => x.ItemId).ToArray();
            var menuItems               = UnitOfWork.GetWhere <MenuItem>(x => menuItemsIds.Contains(x.Id)).ToArray();
            var addedMenuItemQuantities = new List <ReservationMenuItemQuantity>();

            foreach (var item in command.Items)
            {
                var menuItemsQuantities = new ReservationMenuItemQuantity()
                {
                    ReservationOrder = order,
                    Quantity         = item.Quantity,
                    Item             = menuItems.First(x => x.Id == item.ItemId)
                };
                UnitOfWork.Add(menuItemsQuantities);
                addedMenuItemQuantities.Add(menuItemsQuantities);
            }
            EventBus.PublishEvent(new AddedWebOrder()
            {
                Order = order, MenuItems = addedMenuItemQuantities
            });
        }
        public IActionResult OnGet(int WhiskeyId)
        {
            Whiskey           = whiskeyData.GetById(WhiskeyId);
            ReservationOrders = whiskeyData.GetOrders();
            AreaName          = Whiskey.Area.Name;

            Order = new ReservationOrder();
            return(Page());
        }
Exemplo n.º 3
0
        private void PutOrderToBrowser(ReserverWebView browser)
        {
            ReservationOrder found = Orders.FirstOrDefault(order => !order.Doing && !order.Done);

            if (found != null)
            {
                browser.Order   = found;
                browser.Checker = FindDateCheckerByOrder(found);
            }
        }
        private void AddLastButton_Click(object sender, EventArgs e)
        {
            ReservationOrder order = BuildOrder();

            if (order == null)
            {
                return;
            }

            Orders.Add(order);
            this.Close();
        }
Exemplo n.º 5
0
        private void PutOrderToBrowser(ReservationOrder order)
        {
            ReserverView found = Reservers.FirstOrDefault(
                reserver => reserver.Browser.Auto && reserver.Browser.Order == null && !reserver.Browser.Selected
                );

            if (found != null)
            {
                found.Browser.Order   = order;
                found.Browser.Checker = FindDateCheckerByOrder(order);
            }
        }
        private bool MoveOrder(int from, int to)
        {
            if (to < 0 || to >= Orders.Count)
            {
                return(false);
            }

            ReservationOrder order = Orders[from];

            Orders.RemoveAt(from);
            Orders.Insert(to, order);

            return(true);
        }
        public OrderListItemView(int number, ReservationOrder order)
        {
            InitializeComponent();

            Number = number;
            Order  = order;

            InfoLabel.Text = $"{Number + 1}) {Order.Surname} {Order.Name};\n" +
                             $"{Order.Email}; {Order.City};\n" +
                             $"{Order.Operation.Name};";

            if (Order.Done)
            {
                InfoLabel.Text += "\nDONE";
            }
        }
        public EditOrderForm(PlatformApiInfo[] platforms, ReservationOrder order)
        {
            Order = order;

            InitializeComponent();

            PlatformSelector.Items.AddRange(platforms);
            PlatformSelector.SelectedIndexChanged += (sender, e) =>
            {
                OperationSelector.Items.Clear();

                CitySelector.Items.Clear();
                CitySelector.Items.AddRange((PlatformSelector.SelectedItem as PlatformApiInfo).CityPlatforms);
            };

            CitySelector.SelectedIndexChanged += (sender, e) =>
            {
                OperationSelector.Items.Clear();
                OperationSelector.Items.AddRange((CitySelector.SelectedItem as CityPlatformInfo).Operations);
            };

            SurnameInput.InputText = Order.Surname;
            NameInput.InputText    = Order.Name;
            EmailInput.InputText   = Order.Email;

            PlatformSelector.SelectedIndex = PlatformSelector.Items.Cast <PlatformApiInfo>().ToList().FindIndex(
                platform => platform.Name == Order.Platform
                );

            CitySelector.SelectedIndex = CitySelector.Items.Cast <CityPlatformInfo>().ToList().FindIndex(
                city => city.Name == Order.City
                );

            OperationSelector.SelectedIndex = OperationSelector.Items.Cast <OperationInfo>().ToList().FindIndex(
                operation => operation.Position == Order.Operation.Position
                );
        }
        private ReservationOrder BuildOrder()
        {
            bool surnameInvalid = string.IsNullOrEmpty(SurnameInput.InputText);
            bool nameInvalid    = string.IsNullOrEmpty(NameInput.InputText);
            bool emailInvalid   = string.IsNullOrEmpty(EmailInput.InputText);
            bool typeInvalid    = OperationSelector.SelectedIndex == -1;

            if (surnameInvalid || nameInvalid || emailInvalid || typeInvalid)
            {
                MessageBox.Show("Invalid data");
                return(null);
            }

            PlatformApiInfo  platform  = PlatformSelector.SelectedItem as PlatformApiInfo;
            CityPlatformInfo city      = CitySelector.SelectedItem as CityPlatformInfo;
            OperationInfo    operation = OperationSelector.SelectedItem as OperationInfo;

            ReservationOrder order = new ReservationOrder(
                SurnameInput.InputText, NameInput.InputText, EmailInput.InputText,
                platform.Name, city.Name, city.BaseUrl, operation
                );

            return(order);
        }
Exemplo n.º 10
0
 public ReservationOrder AddOrder(ReservationOrder newOrder)
 {
     newOrder.ReservationId = orders.Max(r => r.ReservationId) + 1;
     orders.Add(newOrder);
     return(newOrder);
 }
 public ReservedEventArgs(string url, ReservationOrder order)
 {
     Url   = url;
     Order = order;
 }
Exemplo n.º 12
0
 private DateChecker FindDateCheckerByOrder(ReservationOrder order)
 {
     return(DateCheckers[order.Platform][order.City][order.Operation.Position]);
 }
Exemplo n.º 13
0
 public OrderEventArgs(ReservationOrder order)
 {
     Order = order;
 }