Beispiel #1
0
        private async Task <IActionResult> CloseHelpDesk()
        {
            var WhoItWorkNow = HelpDeskFunction.WhoItWorkNow(HelpDeskId);

            if (WhoItWorkNow.Follower.Id == FollowerId)
            {
                HelpDesk   = HelpDeskFunction.HelpDeskClosed(HelpDeskId, FollowerId);
                BotMessage = new AdminHelpDeskMessage(HelpDesk);
                await EditMessage(BotMessage.BuildMsg());

                //уведомляем всех сотрудников
                BotMessage = new HelpDeskActionNotifiMessage(HelpDesk, HelpDesk.HelpDeskAnswer.LastOrDefault());
                await SendMessageAllBotEmployeess(BotMessage.BuildMsg());

                //уведомляем пользователя который создал заявку о том что заявка закрыта
                BotMessage = new HelpDeskEditorMessage(HelpDesk);
                await SendMessage(HelpDesk.Follower.ChatId, BotMessage.BuildMsg());

                return(OkResult);
            }

            else
            {
                await SendMessage(new BotMessage { TextMessage = "Заявка в обработке у " + WhoItWorkNow.Follower.FirstName + " " + WhoItWorkNow.Follower.LastName });

                return(OkResult);
            }
        }
Beispiel #2
0
        private async Task <IActionResult> AddTextToHelpDesk()
        {
            using (MarketBotDbContext db = new MarketBotDbContext())
            {
                var NoSendHelp = db.HelpDesk.Where(h => h.Send == false && FollowerId == FollowerId).Include(h => h.HelpDeskAttachment).FirstOrDefault();

                //У пользователя есть не отправленная заявка. Работаем с ней
                if (NoSendHelp != null && ReplyToMessageText != null || NoSendHelp != null && ReplyToMessageText != null)
                {
                    NoSendHelp.Text = ReplyToMessageText;
                    db.SaveChanges();
                    AddAttachToHelpDesk(await CheckAttach(), NoSendHelp.Id);

                    if (NoSendHelp.Id > 0)
                    {
                        HelpDeskEditorMsg = new HelpDeskEditorMessage(NoSendHelp);
                        await SendMessage(HelpDeskEditorMsg.BuildMessage());
                    }

                    return(OkResult);
                }

                //У пользователя нет не отправленных заявок. Создаем новую, но не даем Номер и делам статус не отправлена
                if (NoSendHelp == null && ReplyToMessageText != null || NoSendHelp == null && ReplyToMessageText != null)
                {
                    HelpDesk help = new HelpDesk
                    {
                        FollowerId = FollowerId,
                        Text       = ReplyToMessageText,
                        Send       = false
                    };

                    db.HelpDesk.Add(help);
                    db.SaveChanges();
                    AddAttachToHelpDesk(await CheckAttach(), help.Id);

                    if (help.Id > 0)
                    {
                        HelpDeskEditorMsg = new HelpDeskEditorMessage(help);
                        await SendMessage(HelpDeskEditorMsg.BuildMessage());
                    }

                    return(OkResult);
                }

                if (ReplyToMessageText == null && Caption == null)
                {
                    await SendMessage(new BotMessage { TextMessage = "Вы должны описать вашу проблему!" });

                    return(OkResult);
                }

                else
                {
                    return(NotFoundResult);
                }
            }
        }
        private async Task <IActionResult> AddTextToHelpDesk()
        {
            var NoSendHelp = HelpDeskFunction.InsertHelpDesk(FollowerId, BotInfo.Id, ReplyToMessageText);

            BotMessage = new HelpDeskEditorMessage(NoSendHelp);
            await SendMessage(BotMessage.BuildMsg());

            return(OkResult);
        }
        /// <summary>
        /// Прикрепить еще вложения к заявке
        /// </summary>
        /// <returns></returns>
        private async Task <IActionResult> GetHelpDeskNoSendAndAddAttach()
        {
            int AttachId = await CheckAttach();

            var NoSendHelp = HelpDeskFunction.GetHelpDesk(FollowerId, BotInfo.Id);

            var attach = HelpDeskFunction.AddAttachToHelpDesk(AttachId, NoSendHelp.Id);

            if (attach != null)
            {
                NoSendHelp.HelpDeskAttachment.Add(attach);
            }

            BotMessage = new HelpDeskEditorMessage(NoSendHelp);
            await SendMessage(BotMessage.BuildMsg());

            return(OkResult);
        }
Beispiel #5
0
        /// <summary>
        /// Прикрепить еще вложения к заявке
        /// </summary>
        /// <returns></returns>
        private async Task <IActionResult> GetHelpDeskNoSendAndAddAttach()
        {
            using (MarketBotDbContext db = new MarketBotDbContext())
            {
                var NoSendHelp = db.HelpDesk.Where(h => h.Send == false && FollowerId == FollowerId).Include(h => h.HelpDeskAttachment).FirstOrDefault();
                var attach     = AddAttachToHelpDesk(await CheckAttach(), NoSendHelp.Id);

                if (attach != null)
                {
                    NoSendHelp.HelpDeskAttachment.Add(attach);
                }

                HelpDeskEditorMsg = new HelpDeskEditorMessage(NoSendHelp);
                await SendMessage(HelpDeskEditorMsg.BuildMessage());

                return(OkResult);
            }
        }
        private async Task <IActionResult> SaveHelpDesk(int HelpDeskId)
        {
            if (!FollowerFunction.IsBlocked(FollowerId))
            {
                var Help = HelpDeskFunction.SaveHelpDesk(HelpDeskId);

                BotMessage = new HelpDeskEditorMessage(Help);
                await EditMessage(BotMessage.BuildMsg());

                AdminHelpDeskMessage adminHelpDesk = new AdminHelpDeskMessage(Help);
                await base.SendMessageAllBotEmployeess(adminHelpDesk.BuildMsg());
            }

            else
            {
                await SendMessage(new BotMessage { TextMessage = "Пользователь заблокирован!" });
            }

            return(OkResult);
        }
Beispiel #7
0
        private async Task <IActionResult> SaveHelpDesk(int HelpDeskId)
        {
            using (MarketBotDbContext db = new MarketBotDbContext())
            {
                var Help = db.HelpDesk.Where(h => h.Id == HelpDeskId && h.Send == false).FirstOrDefault();

                var LastHelp = db.HelpDesk.Where(h => h.Send == true).OrderByDescending(h => h.Number).Include(h => h.HelpDeskAttachment).FirstOrDefault();

                if (Help != null)
                {
                    int number = 1;

                    if (LastHelp != null)
                    {
                        number = Convert.ToInt32(LastHelp.Number) + 1;
                    }

                    Help.Number    = number;
                    Help.Send      = true;
                    Help.Timestamp = DateTime.Now;
                    Help.InWork    = false;
                    Help.Closed    = false;

                    db.SaveChanges();

                    HelpDeskEditorMsg = new HelpDeskEditorMessage(Help);
                    var message = HelpDeskEditorMsg.BuildMessage();
                    await EditMessage(message);

                    AdminHelpDeskMessage adminHelpDesk = new AdminHelpDeskMessage(Help.Id);
                    await base.SendMessageAllBotEmployeess(await adminHelpDesk.BuldMessage());

                    return(OkResult);
                }

                else
                {
                    return(NotFoundResult);
                }
            }
        }