コード例 #1
0
        private void UpdatePayedOrderList(PayedOrder addingOrder)
        {
            this.CurentPayedOrders.Value.Add(addingOrder);
            var tempList = this.CurentPayedOrders.Value.Select(item => item.Clone(item)).ToList();

            this.CurentPayedOrders.Value = tempList;
        }
コード例 #2
0
ファイル: HomeViewModel.cs プロジェクト: anyarik/Seller
        public void OrderClick(PayedOrder order)
        {
            this.IsClikedOrderDialogOpen.Value = true;

            this.OpenOrderNumber.Value            = order.Order.RowNumber.ToString();
            this.ListCurentOrderProductItem.Value = order.Order.OrderedFood;
        }
コード例 #3
0
ファイル: HomeViewModel.cs プロジェクト: anyarik/Seller
        private void _sellerOrderService_OnNewPayedOrder(object sender, PayedOrder addOrder)
        {
            _dialogService.Notification(new NotificaiosModel($"Заказ №{addOrder.Order.RowNumber} оплачен"
                                                             , "Начинайте готовить"));

            MvxMainThreadDispatcher.Instance.RequestMainThreadAction(() => this.ListOrderItem.Add(addOrder));
        }
コード例 #4
0
ファイル: SellerOrderService.cs プロジェクト: anyarik/Seller
        private async Task InitActiveOrder()
        {
            var seller = await _sellerAuthService.GetProfile();

            var token = await _sellerAuthService.GetToken();

            var recivedActiveOrdrers = await Policy.Handle <Exception>(_ => true)
                                       .WaitAndRetryForeverAsync
                                       (
                sleepDurationProvider: retry => TimeSpan.FromSeconds(10)
                                       )
                                       .ExecuteAsync(async() => await _orderController.GetActiveOrders(seller.ID, token));

            foreach (var item in recivedActiveOrdrers)
            {
                var activeOrder = new PayedOrder("", item, item.Timer,
                                                 (orderInProcess) =>
                {
                    orderInProcess.CloseOrderTimer = new Timer(orderInProcess.OrderTime,
                                                               (_) =>
                    {
                        orderInProcess.CloseOrderTimer.WaitTime.Value -= new TimeSpan(0, 0, 1);

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

                        try
                        {
                            _dialogService.Notification(
                                new NotificaiosModel($"Время приготовления заказа №{orderInProcess.Order.RowNumber} закончилось"
                                                     , "")
                                );
                            orderInProcess.CloseOrderTimer.WaitTime.Value = TimeSpan.Zero;
                            orderInProcess.StopTimer();

                            orderInProcess.IsOrderFinished.Value = true;
                        }
                        catch (Exception exp)
                        {
                            var a = exp.Message;
                        }
                    });
                });
                activeOrder.StartTimer();
                activeOrder.Order.OrderedFood.OrderBy(f => f.ProductInfo.Name).ToList();

                this.AddActiveOrder(activeOrder);
            }
        }
コード例 #5
0
ファイル: SellerOrderService.cs プロジェクト: anyarik/Seller
        private void AddActiveOrder(PayedOrder payedOrder)
        {
            var item = this._activeOrders.Count > 0
                ? this._activeOrders.FirstOrDefault((o) => o.Order.ID == payedOrder.Order.ID)
                : null;

            if (item != null)
            {
                return;
            }

            _activeOrders.Add(payedOrder);
            ChangeExitText?.Invoke(null, "Остановить прием заказов");
        }
コード例 #6
0
ファイル: GenericExtentions.cs プロジェクト: anyarik/Seller
        public static ObservableCollection <PayedOrder> RemoveItem(this ObservableCollection <PayedOrder> list, PayedOrder deleteItem)
        {
            PayedOrder tempItem = null;

            foreach (var item in list)
            {
                if (item.Order.ID == deleteItem.Order.ID)
                {
                    tempItem = item;
                }
            }

            list.Remove(tempItem);
            return(list);
        }
コード例 #7
0
ファイル: SellerOrderService.cs プロジェクト: anyarik/Seller
        private void Init()
        {
            CurentStatus = "";

            _orderController.OnGettingPurchasedOrders((customer, order) =>
            {
                var deserializeOrder = JsonConvert.DeserializeObject <OrderItem>(order);

                var payedOrder = new PayedOrder(deserializeOrder.WhoSold, deserializeOrder, deserializeOrder.Timer,
                                                (orderInProcess) =>
                {
                    orderInProcess.CloseOrderTimer = new Timer(orderInProcess.OrderTime,
                                                               (_) =>
                    {
                        orderInProcess.CloseOrderTimer.WaitTime.Value -= new TimeSpan(0, 0, 1);
                        if (orderInProcess.CloseOrderTimer.WaitTime.Value > TimeSpan.Zero)
                        {
                            return;
                        }
                        try
                        {
                            _dialogService.Notification(new NotificaiosModel($"Время приготовления заказа №{orderInProcess.Order.RowNumber} закончилось"
                                                                             , "")
                                                        );
                            orderInProcess.CloseOrderTimer.WaitTime.Value = TimeSpan.Zero;
                            orderInProcess.StopTimer();
                            orderInProcess.IsOrderFinished.Value = true;
                        }
                        catch (Exception exp)
                        {
                            var a = exp.Message;
                        }
                    });
                });
                payedOrder.StartTimer();

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

                this.AddActiveOrder(payedOrder);

                onNewPayedOrder?.Invoke(null, payedOrder);
            });

            this._orderController.OnChangeStatusSeller((_, status) =>
            {
                CurentStatus = status;
            });
        }
コード例 #8
0
 private void _sellerOrderService_OnNewPayedOrder(object sender, PayedOrder e)
 {
     this.UpdatePayedOrderList(e);
 }