Example #1
0
        private async Task <string> GetToolbarText()
        {
            var seller = await this._authService.GetProfile();

            var curentSeller = seller as SellerAccountModel;

            var orders = await _sellerOrderService.GetOrders();

            if (curentSeller != null && (curentSeller.Busyness && !orders.IsNullOrEmpty()))
            {
                return("Возобновить прием заказов");
            }
            else if (curentSeller != null && curentSeller.Busyness)
            {
                return("Возобносить прием заказов");
            }
            else if (orders.Count > 0)
            {
                return("Остановить прием заказов");
            }
            else
            {
                return("Выйти");
            }
        }
Example #2
0
        /// <summary>
        /// Метод, который говорит нам о том, что наша ViewModel отобразилась на экране
        /// </summary>
        public override async void Start()
        {
            var orders = new List <PayedOrder>();

            if (this.ListOrderItem.IsNullOrEmpty())
            {
                orders = await _sellerOrderService.GetOrders();
            }

            if (!orders.IsNullOrEmpty())
            {
                foreach (var item in orders)
                {
                    MvxMainThreadDispatcher.Instance.RequestMainThreadAction(() => this.ListOrderItem.Add(item));
                }
            }
            base.Start();
        }
Example #3
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();
                });
            }
        }