예제 #1
0
        /// <summary>
        /// После того как пользователь нажал на кнопку "Отправить", информация о заказе пересылается Операторам в личку и в общий чат (если он есть)
        /// </summary>
        /// <param name="OrderId"></param>
        /// <returns></returns>
        private async Task <IActionResult> OrderRedirectToAdmins(int OrderId, Orders order = null)
        {
            using (MarketBotDbContext db = new MarketBotDbContext())
            {
                try
                {
                    var admins = db.Admin.Include(a => a.Follower).ToList();

                    if (order == null)
                    {
                        OrderAdminMsg = new AdminOrderMessage(OrderId);
                    }

                    else
                    {
                        OrderAdminMsg = new AdminOrderMessage(order);
                    }

                    var message = OrderAdminMsg.BuildMessage();

                    await SendMessageAllBotEmployeess(message);

                    return(base.OkResult);
                }

                catch
                {
                    return(base.NotFoundResult);
                }
            }
        }
예제 #2
0
        /// <summary>
        /// Выполнить заказ
        /// </summary>
        /// <returns></returns>
        private async Task <IActionResult> OrderDone()
        {
            using (MarketBotDbContext db = new MarketBotDbContext())
            {
                //Проверяем согласован ли заказ и не удален ли он и не был ли выполнен ранее
                if (this.Order != null && this.Order.OrderDeleted.Count == 0 && this.Order.OrderConfirm.Count > 0 && this.Order.OrderDone.Count == 0 &&
                    await Processing.CheckInWork(this.Order) && !await Processing.CheckIsDone(this.Order))
                {
                    OrderDone orderDone = new OrderDone
                    {
                        DateAdd    = DateTime.Now,
                        FollowerId = FollowerId,
                        Done       = true,
                        OrderId    = OrderId
                    };

                    OrdersInWork inWork = new OrdersInWork
                    {
                        FollowerId = FollowerId,
                        Timestamp  = DateTime.Now,
                        InWork     = false,
                        OrderId    = this.Order.Id
                    };


                    db.OrdersInWork.Add(inWork);
                    db.OrderDone.Add(orderDone);
                    db.SaveChanges();
                    StockChangesMsg = new StockChangesMessage(UpdateStock(this.Order));
                }
            }

            if (OrderAdminMsg != null)
            {
                var message = OrderAdminMsg.BuildMessage();
                await EditMessage(message); // Редакатруем текущее сообщение на новое

                string notify = "Заказ №" + this.Order.Number.ToString() + " выполнен. Пользователь " + GeneralFunction.FollowerFullName(base.FollowerId);
                await Processing.NotifyChanges(notify, this.Order.Id);             // уведомляем сотрудников о выполненом заказе
                await SendMessageAllBotEmployeess(StockChangesMsg.BuildMessage()); //уведомляем сотрудников об изменениях остатков

                return(await SendFeedBackOffer());                                 // предлагаем пользователю оставить отзыв
            }
            else
            {
                return(base.NotFoundResult);
            }
        }
예제 #3
0
        private async Task <IActionResult> GetOrderAdmin()
        {
            if (OrderAdminMsg == null)
            {
                OrderAdminMsg = new AdminOrderMessage(OrderId, FollowerId);
            }

            if (await SendMessage(OrderAdminMsg.BuildMessage()) != null)
            {
                return(base.OkResult);
            }


            else
            {
                return(base.NotFoundResult);
            }
        }
예제 #4
0
        /// <summary>
        /// Назад
        /// </summary>
        /// <returns></returns>
        private async Task <IActionResult> BackToOrder()
        {
            if (OrderAdminMsg != null && await EditMessage(OrderAdminMsg.BuildMessage()) != null)
            {
                return(base.OkResult);
            }

            if (OrderAdminMsg == null && this.OrderId > 0)
            {
                OrderAdminMsg = new AdminOrderMessage(this.OrderId);
                await EditMessage(OrderAdminMsg.BuildMessage());

                return(OkResult);
            }

            else
            {
                OrderId       = Argumetns[0];
                OrderAdminMsg = new AdminOrderMessage(this.OrderId);
                await EditMessage(OrderAdminMsg.BuildMessage());

                return(OkResult);
            }
        }