public IActionResult DeskClose(int DeskId) { try { DbContext = new BotMngmntDbContext(); var desk = DbContext.HelpDesk.Find(DeskId); if (desk != null && !desk.Closed) { HelpDeskAnswer deskAnswer = new HelpDeskAnswer { Closed = true, ClosedTimestamp = DateTime.Now, FollowerId = 1, HelpDeskId = DeskId, Text = "Заявка закрыта", Timestamp = DateTime.Now }; desk.Closed = true; DbContext.HelpDeskAnswer.Add(deskAnswer); DbContext.SaveChanges(); return(Json("Сохранено")); } if (desk != null && desk.Closed) { return(Json("Заявка уже закрыта")); } else { return(Json("Ошибка")); } } catch (Exception e) { return(Json(e.Message)); } finally { DbContext.Dispose(); } }
/// <summary> /// Закрыть заявку /// </summary> /// <param name="HelpDeskId"></param> /// <param name="FollowerId"></param> /// <returns></returns> public static HelpDesk HelpDeskClosed(int HelpDeskId, int FollowerId) { MarketBotDbContext db = new MarketBotDbContext(); try { var Help = db.HelpDesk.Where(h => h.Id == HelpDeskId).Include(h => h.Follower).Include(h => h.HelpDeskAttachment) .Include(h => h.HelpDeskInWork) .FirstOrDefault(); var AnswerList = db.HelpDeskAnswer.Where(a => a.HelpDeskId == HelpDeskId).Include(a => a.Follower).ToList(); HelpDeskAnswer helpDeskAnswer = new HelpDeskAnswer { Closed = true, ClosedTimestamp = DateTime.Now, FollowerId = FollowerId, HelpDeskId = HelpDeskId, Timestamp = DateTime.Now, Text = "Заявка закрыта", }; db.HelpDeskAnswer.Add(helpDeskAnswer); Help.Closed = true; db.Update <HelpDesk>(Help); db.SaveChanges(); Help.HelpDeskAnswer = AnswerList; helpDeskAnswer.Follower = db.Follower.Find(FollowerId); Help.HelpDeskAnswer.Add(helpDeskAnswer); return(Help); } catch { return(null); } finally { db.Dispose(); } }
public IActionResult AddAnswer(int DeskId, string Text) { DbContext = new BotMngmntDbContext(); try { var Desk = DbContext.HelpDesk.Find(DeskId); if (Text != null && Text != "" && Desk != null && !Desk.Closed) { HelpDeskAnswer deskAnswer = new HelpDeskAnswer { HelpDeskId = DeskId, Closed = false, FollowerId = 1, Text = Text, Timestamp = DateTime.Now }; DbContext.HelpDeskAnswer.Add(deskAnswer); DbContext.SaveChanges(); return(Json("Добавлено")); } if (Desk != null && Desk.Closed) { return(Json("Заявка уже закрыта")); } else { return(Json("Ошибка")); } } catch (Exception e) { return(Json(e.Message)); } finally { DbContext.Dispose(); } }
private async Task <IActionResult> AddHelpDeskAnswer() { try { int number = Convert.ToInt32(OriginalMessage.Substring(AddCommentForceReply.Length)); using (MarketBotDbContext db = new MarketBotDbContext()) { var Help = db.HelpDesk.Where(h => h.Number == number).Include(h => h.HelpDeskInWork) .Include(h => h.HelpDeskAnswer).FirstOrDefault(); //Проверяем находится ли заявка в обработке у этого пользователя и не является ли она закрытой if (Help != null && await Processing.CheckInWork(Help) && !await Processing.CheckIsDone(Help)) { HelpDeskAnswer deskAnswer = new HelpDeskAnswer { HelpDeskId = Help.Id, FollowerId = FollowerId, Timestamp = DateTime.Now, Text = ReplyToMessageText }; db.HelpDeskAnswer.Add(deskAnswer); if (db.SaveChanges() > 0) { Help.HelpDeskAnswer.Add(deskAnswer); AdminHelpDeskMsg = new AdminHelpDeskMessage(Help, FollowerId); await SendMessage(await AdminHelpDeskMsg.BuldMessage()); await Processing.NotifyChanges("К заявке №" + Help.Number.ToString() + " добавлен комментарий.Пользователь: " + GeneralFunction.FollowerFullName(FollowerId), Help.Id); } return(OkResult); } else { return(NotFoundResult); } } } catch { return(NotFoundResult); } }
/// <summary> /// Добавить ответ на заявку /// </summary> /// <param name="HelpDeskId"></param> /// <param name="FollowerId"></param> /// <param name="Text"></param> /// <returns></returns> public static HelpDesk AddAnswerComment(int HelpDeskId, int FollowerId, string Text) { MarketBotDbContext db = new MarketBotDbContext(); try { var Help = db.HelpDesk.Where(h => h.Id == HelpDeskId) .Include(h => h.Follower) .Include(h => h.HelpDeskAnswer) .Include(h => h.HelpDeskAttachment) .Include(h => h.HelpDeskInWork).FirstOrDefault(); HelpDeskAnswer helpDeskAnswer = new HelpDeskAnswer { Timestamp = DateTime.Now, Closed = false, FollowerId = FollowerId, Text = Text, HelpDeskId = HelpDeskId }; db.HelpDeskAnswer.Add(helpDeskAnswer); db.SaveChanges(); helpDeskAnswer.Follower = db.Follower.Find(FollowerId); Help.HelpDeskAnswer.Add(helpDeskAnswer); return(Help); } catch { return(null); } finally { db.Dispose(); } }
public HelpDeskActionNotifiMessage(HelpDesk helpDesk, HelpDeskAnswer deskAnswer) { this.HelpDesk = helpDesk; this.HelpDeskAnswer = deskAnswer; }
private async Task <IActionResult> CloseHelpDesk() { try { using (MarketBotDbContext db = new MarketBotDbContext()) { var Help = db.HelpDesk.Where(h => h.Id == HelpDeskId).Include(h => h.HelpDeskInWork) .Include(h => h.HelpDeskAnswer).FirstOrDefault(); var in_work = Help.HelpDeskInWork.OrderByDescending(h => h.Id).FirstOrDefault(); //Проверяем находится ли заявка в обработке у этого пользователя и не является ли она закрытой if (Help != null && await Processing.CheckInWork(Help) && !await Processing.CheckIsDone(Help)) { int Save = 0; // 1- данные сохранены. 0-нет //ищем последний комментарий пользователя где поле Closed равно НУЛЛ. //Т.е мы хотим к изменить этот коммент добавив инф. о том что пользователь заявку закрывает var answer = Help.HelpDeskAnswer.Where(h => h.FollowerId == FollowerId && h.Closed == null).OrderByDescending(h => h.Id).FirstOrDefault(); if (answer != null) { Help.Closed = true; answer.Closed = true; answer.ClosedTimestamp = DateTime.Now; Save = db.SaveChanges(); FreeHelpDeskDb(Help, in_work); } /// ситуация когда Добавлял комментарии один сотурдник, А потом этоу заявку "Отжал" и Взял себе другой, /// что бы просто закрыть ее без добавления комментариеВ else { answer = new HelpDeskAnswer { Text = String.Empty, FollowerId = FollowerId, HelpDeskId = Help.Id, Timestamp = DateTime.Now, ClosedTimestamp = DateTime.Now, Closed = true }; db.HelpDeskAnswer.Add(answer); Help.Closed = true; Save = db.SaveChanges(); // освобождаем заявку FreeHelpDeskDb(Help, in_work); if (Save > 0) { Help.HelpDeskAnswer.Add(answer); } } if (Save > 0) // Если новые данные сохранилсь в БД то создаем сообещние и отправляем { AdminHelpDeskMsg = new AdminHelpDeskMessage(Help, FollowerId); await EditMessage(await AdminHelpDeskMsg.BuldMessage()); await Processing.NotifyChanges("Заявка №" + Help.Number.ToString() + " закрыта. Пользователь: " + GeneralFunction.FollowerFullName(FollowerId), Help.Id); //Отправляем сообщение пользователю о том что его заявка закрыта long ChatId = db.Follower.Where(f => f.Id == Help.FollowerId).FirstOrDefault().ChatId; string text = "Заявка №" + Help.Number.ToString() + " Закрыта" + Bot.BotMessage.NewLine() + "Комментарий:" + answer.Text; await SendMessage(ChatId, new BotMessage { TextMessage = text }); } return(OkResult); } else { return(NotFoundResult); } } } catch { return(NotFoundResult); } }