Example #1
0
        private async Task <IActionResult> AddHelpDeskAnswer()
        {
            try
            {
                HelpNumber = Convert.ToInt32(OriginalMessage.Substring(AddCommentForceReply.Length));

                HelpDesk = HelpDeskFunction.HelpDeskFindByNumber(HelpNumber);

                if (HelpDesk != null)
                {
                    HelpDesk   = HelpDeskFunction.AddAnswerComment(HelpDesk.Id, FollowerId, ReplyToMessageText);
                    BotMessage = new AdminHelpDeskMessage(HelpDesk, FollowerId);
                    await SendMessage(BotMessage.BuildMsg());

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

                return(OkResult);
            }

            catch
            {
                return(OkResult);
            }
        }
Example #2
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);
            }
        }
Example #3
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);
        }
Example #4
0
        private async Task <IActionResult> SendHelpDesk()
        {
            try
            {
                if (HelpDeskId == 0)
                {
                    HelpNumber = Convert.ToInt32(CommandName.Substring(7));
                    HelpDesk   = HelpDeskFunction.HelpDeskFindByNumber(HelpNumber);
                }

                if (HelpDeskId > 0)
                {
                    HelpDesk = HelpDeskFunction.GetHelpDesk(HelpDeskId);
                }

                if (HelpDesk != null)
                {
                    AdminHelpDeskMessage adminHelpDesk = new AdminHelpDeskMessage(HelpDesk, FollowerId);
                    await SendMessage(adminHelpDesk.BuildMsg());
                }

                return(OkResult);
            }

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

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

            return(OkResult);
        }
Example #6
0
        private async Task <IActionResult> SendHelpDesk(int Id)
        {
            if (Id > 0)
            {
                HelpDesk = HelpDeskFunction.GetHelpDesk(Id);
            }

            if (HelpDesk != null)
            {
                AdminHelpDeskMessage adminHelpDesk = new AdminHelpDeskMessage(HelpDesk, FollowerId);
                await SendMessage(adminHelpDesk.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);
        }
Example #8
0
        public override BotMessage BuildMsg()
        {
            if (this.HelpDesk == null)
            {
                this.HelpDesk = HelpDeskFunction.GetHelpDesk(HelpDeskId);
            }

            string HelpAnswerText = "";

            if (HelpDesk != null && HelpDesk.Send == true)
            {
                base.TextMessage = Bold("Номер заявки: ") + HelpDesk.Number.ToString() + NewLine()
                                   + Bold("Пользователь: ") + Bot.GeneralFunction.FollowerFullName(HelpDesk.Follower) + NewLine()
                                   + Bold("Дата: ") + HelpDesk.Timestamp.ToString() + NewLine()
                                   + Bold("Описание проблемы: ") + HelpDesk.Text + NewLine() + Bold("Прикрепленных файлов: ") + HelpDesk.HelpDeskAttachment.Count.ToString() + NewLine() +
                                   "Что бы быстро открыть эту заявку введите команду /ticket" + HelpDesk.Number;

                if (HelpDesk.HelpDeskAnswer != null && HelpDesk.HelpDeskAnswer.Count > 0)
                {
                    int counter = 1;
                    foreach (HelpDeskAnswer answer in HelpDesk.HelpDeskAnswer)
                    {
                        HelpAnswerText += counter.ToString() + ") Комментарий:" + " " + answer.Text + " | "
                                          + " Время:" + " " + answer.Timestamp.ToString() + " | " + " Пользователь:" + " "
                                          + HrefUrl("https://t.me/" + answer.Follower.UserName, Bot.GeneralFunction.FollowerFullName(answer.Follower))
                                          + NewLine() + NewLine();

                        counter++;
                    }
                }

                // Узнаем у кого в обработке
                InWorkNow = HelpDesk.HelpDeskInWork.LastOrDefault();

                base.TextMessage += NewLine() + NewLine() + HelpAnswerText;

                CreateBtn();
                base.MessageReplyMarkup = SetInlineKeyBoard();
            }

            return(this);
        }
        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);
        }
Example #10
0
        public override Stream BuildReport()
        {
            HelpDeskList = HelpDeskFunction.GetAllHelpDeskList();

            HelpWorksheet = Excel.Workbook.Worksheets.Add("Заявки");

            // шапка
            HelpWorksheet.Cells[1, 1].Value = "Номер заявки";
            HelpWorksheet.Cells[1, 2].Value = "Дата";
            HelpWorksheet.Cells[1, 3].Value = "Пользователь";
            HelpWorksheet.Cells[1, 4].Value = "Описание проблемы";
            HelpWorksheet.Cells[1, 5].Value = "Комментарий оператора";
            HelpWorksheet.Cells[1, 6].Value = "Время";
            HelpWorksheet.Cells[1, 7].Value = "Оператор";

            int row = 2;

            foreach (var help in HelpDeskList)
            {
                foreach (var answer in help.HelpDeskAnswer)
                {
                    HelpWorksheet.Cells[row, 1].Value = help.Number;

                    HelpWorksheet.Cells[row, 2].Value = help.Timestamp.ToString();

                    HelpWorksheet.Cells[row, 3].Value = help.Follower.FirstName + " " + help.Follower.LastName;

                    HelpWorksheet.Cells[row, 4].Value = help.Text;

                    HelpWorksheet.Cells[row, 5].Value = answer.Text;

                    HelpWorksheet.Cells[row, 6].Value = answer.Timestamp.ToString();

                    HelpWorksheet.Cells[row, 7].Value = answer.Follower.FirstName + " " + answer.Follower.LastName;

                    row++;
                }
            }

            return(new MemoryStream(Excel.GetAsByteArray()));
        }
Example #11
0
        public override InlineQueryResult[] GetResult()
        {
            list = HelpDeskFunction.GetHelpDeskList(Number).Take(MaxResult).ToList();


            InputTextMessageContent[]  textcontent = new InputTextMessageContent[list.Count];
            InlineQueryResultArticle[] article     = new InlineQueryResultArticle[list.Count];
            InlineQueryResult[]        result      = new InlineQueryResult[list.Count];

            int i = 0;

            foreach (var help in list)
            {
                textcontent[i]                       = new InputTextMessageContent();
                textcontent[i].ParseMode             = Telegram.Bot.Types.Enums.ParseMode.Html;
                textcontent[i].DisableWebPagePreview = true;
                textcontent[i].MessageText           = "/ticket" + help.Number.ToString();

                article[i]             = new InlineQueryResultArticle();
                article[i].HideUrl     = false;
                article[i].Id          = help.Id.ToString();
                article[i].Title       = "Заявка №" + help.Number.ToString();
                article[i].Description = help.Number + BotMessage.NewLine() +
                                         "Время:" + help.Timestamp;

                article[i].ThumbUrl            = "https://cdn2.iconfinder.com/data/icons/shop-payment-vol-6/128/shop-10-256.png";
                article[i].InputMessageContent = textcontent[i];

                result[i] = new InlineQueryResult();
                result[i] = article[i];

                i++;
            }

            return(result);
        }
Example #12
0
        private async Task <IActionResult> FreeHelpDesk()
        {
            var WhoItWorkNow = HelpDeskFunction.WhoItWorkNow(HelpDeskId);

            HelpDesk = HelpDeskFunction.GetHelpDesk(HelpDeskId);

            if (WhoItWorkNow.Follower.Id == FollowerId)
            {
                HelpDeskFunction.FreeHelpDesk(HelpDeskId, FollowerId);
                await SendHelpDesk(HelpDeskId);

                //уведомляем всех
                await SendMessageAllBotEmployeess(new BotMessage { TextMessage = "Заявка №" + HelpDesk.Number.ToString() + " Свободна. /ticket" + HelpDesk.Number.ToString() });

                return(OkResult);
            }

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

                return(OkResult);
            }
        }
Example #13
0
        private async Task <IActionResult> SendHelpDeskAttach()
        {
            var attach_list = HelpDeskFunction.GetHelpDeskAttachment(HelpDeskId);

            var help = HelpDeskFunction.GetHelpDesk(HelpDeskId);

            if (help != null && attach_list.Count > 0)
            {
                HelpDeskViewAttachMessage viewAttachMessage = new HelpDeskViewAttachMessage(help, attach_list, BotInfo.Id);
                var mess = viewAttachMessage.BuildMessage();

                foreach (var attach in mess)
                {
                    await SendMediaMessage(attach);
                }
            }

            else
            {
                await AnswerCallback();
            }

            return(OkResult);
        }