예제 #1
0
        private async Task <IActionResult> TakeToWork()
        {
            var WhoItWorkNow = HelpDeskFunction.WhoItWorkNow(HelpDeskId);

            HelpDesk = HelpDeskFunction.GetHelpDesk(HelpDeskId);

            if (WhoItWorkNow == null || WhoItWorkNow != null && WhoItWorkNow.Follower.Id == FollowerId)
            {
                var Inwork = HelpDeskFunction.TakeToWork(HelpDeskId, FollowerId);
                await SendHelpDesk(HelpDeskId);

                //уведомляем сотрудников о том что заявку взяли в работу
                BotMessage = new HelpDeskActionNotifiMessage(HelpDesk, Inwork);
                await SendMessageAllBotEmployeess(BotMessage.BuildMsg());

                return(OkResult);
            }

            if (WhoItWorkNow != null && WhoItWorkNow.Id != FollowerId) // заявка в обработке у другого пользователя. Отправляем сообщение с вопрос о переназначении
            {
                BotMessage = new OverridePerformerConfirmMessage(HelpDesk, WhoItWorkNow);
                await EditMessage(BotMessage.BuildMsg());
            }

            return(OkResult);
        }
        private async Task <IActionResult> TakeOrder()
        {
            var Order = OrderFunction.GetOrder(OrderId);


            //Заказ ни кем не обрабатывается
            if (Order != null && Order.OrdersInWork.Count == 0 ||
                Order != null && Order.OrdersInWork.Count > 0 && Order.OrdersInWork.LastOrDefault().InWork == false)
            {
                Order.OrdersInWork.Add(OrderFunction.InsertOrderInWork(OrderId, FollowerId));
                BotMessage = new AdminOrderMessage(Order, FollowerId);
                await EditMessage(BotMessage.BuildMsg());

                //уведомляем всех о том что кто-то взял заказ работу
                BotMessage = new OrderActionNotifiMessage(Order, Order.OrdersInWork.LastOrDefault());

                await SendMessageAllBotEmployeess(BotMessage.BuildMsg());

                return(OkResult);
            }

            //заявка в обработке у тек. пользователя
            if (Order != null && Order.OrdersInWork.Count > 0 && Order.OrdersInWork.LastOrDefault().InWork == true &&
                Order.OrdersInWork.LastOrDefault().FollowerId == FollowerId)
            {
                BotMessage = new AdminOrderMessage(Order, FollowerId);
                await EditMessage(BotMessage.BuildMsg());

                return(OkResult);
            }

            //заказ в обработке у кого то другого. Отправляем сообщение с вопрос о переназначении исполнителя
            if (Order != null && Order.OrdersInWork.Count > 0 && Order.OrdersInWork.LastOrDefault().InWork == true &&
                Order.OrdersInWork.LastOrDefault().FollowerId != FollowerId)
            {
                BotMessage = new OverridePerformerConfirmMessage(Order, Order.OrdersInWork.LastOrDefault());
                var mess = BotMessage.BuildMsg();
                await EditMessage(mess);

                return(OkResult);
            }

            else
            {
                return(OkResult);
            }
        }