Exemplo n.º 1
0
        private int FreeHelpDeskDb(HelpDesk help, HelpDeskInWork in_work)
        {
            try
            {
                using (MarketBotDbContext db = new MarketBotDbContext())
                {
                    if (help != null && in_work != null)
                    {
                        // освобождаем заявку
                        help.InWork = false;
                        //HelpDeskInWork inWork = new HelpDeskInWork { FollowerId = in_work.FollowerId, HelpDeskId = in_work.HelpDeskId, InWork = false, Timestamp = DateTime.Now };
                        // db.HelpDeskInWork.Add(inWork);
                        int save = db.SaveChanges();
                        return(save);
                    }

                    else
                    {
                        return(-1);
                    }
                }
            }

            catch (Exception exp)
            {
                return(-1);
            }
        }
        /// <summary>
        /// освободить заявку.
        /// </summary>
        /// <param name="HelpDeskId"></param>
        /// <param name="FollowerId"></param>
        /// <returns></returns>
        public static HelpDeskInWork FreeHelpDesk(int HelpDeskId, int FollowerId)
        {
            MarketBotDbContext db = new MarketBotDbContext();

            try
            {
                HelpDeskInWork helpDeskInWork = new HelpDeskInWork
                {
                    FollowerId = FollowerId,
                    HelpDeskId = HelpDeskId,
                    InWork     = false,
                    Timestamp  = DateTime.Now
                };

                db.HelpDeskInWork.Add(helpDeskInWork);
                db.SaveChanges();
                return(helpDeskInWork);
            }

            catch
            {
                return(null);
            }

            finally
            {
                db.Dispose();
            }
        }
Exemplo n.º 3
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);
        }
Exemplo n.º 4
0
 public OverridePerformerConfirmMessage(HelpDesk help, HelpDeskInWork helpDeskInWork)
 {
     HelpDesk       = help;
     HelpDeskInWork = helpDeskInWork;
 }
 public HelpDeskActionNotifiMessage(HelpDesk helpDesk, HelpDeskInWork deskInWork)
 {
     this.HelpDesk       = helpDesk;
     this.HelpDeskInWork = deskInWork;
 }
Exemplo n.º 6
0
        private async Task <IActionResult> TakeHelpDesk()
        {
            try
            {
                using (MarketBotDbContext db = new MarketBotDbContext())
                {
                    var Help = db.HelpDesk.Where(h => h.Id == HelpDeskId).Include(h => h.HelpDeskAnswer).
                               Include(h => h.HelpDeskAttachment).Include(h => h.HelpDeskInWork).FirstOrDefault();

                    if (Help != null && Help.Closed == false && Help.InWork == false) // Заявка не закрыта и не находится в обработке. Значит тек. пользвоателй берет ее в обработку
                    {
                        HelpDeskInWork work = new HelpDeskInWork {
                            FollowerId = FollowerId, HelpDeskId = Help.Id, Timestamp = DateTime.Now, InWork = true
                        };
                        Help.InWork = true;
                        db.HelpDeskInWork.Add(work);
                        db.SaveChanges();
                        AdminHelpDeskMsg = new AdminHelpDeskMessage(Help, FollowerId);
                        await EditMessage(await AdminHelpDeskMsg.BuldMessage());

                        await Processing.NotifyChanges("Заявку №" + Help.Number.ToString() + " взял в работу пользователей:" + GeneralFunction.FollowerFullName(FollowerId), Help.Id);

                        return(OkResult);
                    }

                    if (Help != null && Help.Closed == false && Help.InWork == true &&
                        Help.HelpDeskInWork.FirstOrDefault() != null && Help.HelpDeskInWork.OrderByDescending(h => h.Id).FirstOrDefault().FollowerId == FollowerId) // Заявка в обработке у пользователя который отправил сообщение
                    {
                        AdminHelpDeskMsg = new AdminHelpDeskMessage(Help, FollowerId);
                        await EditMessage(await AdminHelpDeskMsg.BuldMessage());

                        return(OkResult);
                    }

                    if (Help != null && Help.Closed == false && Help.InWork == true &&
                        Help.HelpDeskInWork.FirstOrDefault() != null && Help.HelpDeskInWork.OrderByDescending(h => h.Id).FirstOrDefault().FollowerId != FollowerId)
                    {
                        await SendMessage(
                            new BotMessage
                            { TextMessage = "Заявка в обработке у пользователя: " +
                                            GeneralFunction.FollowerFullName(Help.HelpDeskInWork.OrderByDescending(h => h.Id).FirstOrDefault().FollowerId) });

                        return(OkResult);
                    }

                    if (Help != null && Help.Closed == true)
                    {
                        AdminHelpDeskMsg = new AdminHelpDeskMessage(Help, FollowerId);
                        await EditMessage(await AdminHelpDeskMsg.BuldMessage());

                        return(OkResult);
                    }

                    else
                    {
                        return(OkResult);
                    }
                }
            }

            catch
            {
                return(NotFoundResult);
            }
        }