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("Выйти"); } }
/// <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(); }
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(); }); } }