示例#1
0
        /// <summary>
        /// Откритытие окна согласования заказа
        /// </summary>
        private void OpenDialogForOrderAgreement(RecivedOrder currentOrder)
        {
            this._sendOrder = new RecivedOrder(currentOrder.CustomerName, currentOrder.Time, currentOrder.Order, null);

            if (this.RecivedStackOrders.Value.FirstOrDefault(o => o.Order.ID == _sendOrder.Order.ID) != null)
            {
                this.RecivedStackOrders.Value.RemoveAll(o => o.Order.ID == _sendOrder.Order.ID);

                UpdateStackOrderList();
            }

            currentOrder.IsAlive = true;

            this.RecivedOrderTime.Value   = TimeSpan.Parse(currentOrder.Time);
            this.RecivedOrderNumber.Value = currentOrder.Order.RowNumber;

            currentOrder.Order.OrderedFood = currentOrder.Order.OrderedFood.OrderBy(f => f.ProductInfo.Name).ToList();

            var indexFood = 0;

            foreach (var item in currentOrder.Order.OrderedFood)
            {
                indexFood++;
                item.index = indexFood;
            }

            //indexFood = 0;

            this.ListCurentOrderProductItem.Value = currentOrder.Order.OrderedFood;

            IsOrderDialogOpen.Value = true;
        }
示例#2
0
 /// <summary>
 /// Событие для  открытия следующего заказа
 /// </summary>
 private void HomeViewModel_OpenNexStackOrder(object sender, RecivedOrder deleteOrder)
 {
     this.ClearOrder(deleteOrder);
     //IsDelayFive.Value = false;
     if (!this._recivedStackOrders.IsNullOrEmpty())
     {
         var curerntOrder = this._recivedStackOrders.FirstOrDefault();
         this.OpenDialogForOrderAgreement(curerntOrder);
     }
 }
示例#3
0
        /// <summary>
        /// Очистка обработаного заказа после отправке пользовтелю
        /// </summary>
        private void ClearOrder(RecivedOrder deleteOrder)
        {
            if (deleteOrder != null)
            {
                this._recivedStackOrders.Find(o => o.Order.ID == deleteOrder.Order.ID).CloseOrderTimer.StopTimer();
                this._recivedStackOrders.RemoveAll(o => o.Order.ID == deleteOrder.Order.ID);
            }

            this.ListCurentOrderProductItem.Value = new List <ProductForOrder>();
            IsOrderDialogOpen.Value = false;
            this._sendOrder         = new RecivedOrder();
        }
示例#4
0
        private async void InitSignalRForAgreement()
        {
            var user = await this._loginService.GetProfile();

            if (user != null)
            {
                this._orderController.HubConnection(user.ID);
                this._orderController.OnReceiveOrder(async(customer, reciveOrder, time) =>
                {
                    var deserializeOrder = JsonConvert.DeserializeObject <OrderItem>(reciveOrder);

                    _dialogService.Notification(new NotificaiosModel($"Пришел на обработку заказ №{deserializeOrder.RowNumber}"
                                                                     , $"Необходимо приготовить его за {TimeSpan.Parse(time).Minutes} минут")
                                                );

                    var stackOrder = new RecivedOrder(customer.ToString(), time, deserializeOrder, (order) =>
                    {
                        order.CloseOrderTimer = new Timer(new TimeSpan(0, 0, 75), (_) =>
                        {
                            order.CloseOrderTimer.WaitTime.Value -= new TimeSpan(0, 0, 1);

                            // UpdateStackOrderList();

                            if (order.IsAlive)
                            {
                                this.RecivedOrderTimer.Value = order.CloseOrderTimer.WaitTime.Value;
                            }

                            if (order.CloseOrderTimer.WaitTime.Value >= TimeSpan.Zero)
                            {
                                return;
                            }

                            order.CloseOrderTimer.StopTimer();
                            this._recivedStackOrders.RemoveAll(o => o.Order.ID == order.Order.ID);

                            if (this.IsOrderDialogOpen.Value)
                            {
                                this.OpenNexStackOrder.Invoke(null, null);
                            }
                        });
                    });

                    stackOrder.StartTimer();

                    this._recivedStackOrders.Add(stackOrder);

                    if (this._recivedStackOrders.Count > 1)
                    {
                        this.RecivedStackOrders.Value.Add(stackOrder);
                        UpdateStackOrderList();
                    }

                    if (this._recivedStackOrders.Count == 1)
                    {
                        this.OpenDialogForOrderAgreement(stackOrder);
                    }

                    this.CurentPayedOrders.Value = await _sellerOrderService.GetOrders();
                });
            }
        }