public IActionResult ViewTicket(int id) { HelpdeskTicket ticket = _helpdeskProvider.GetTicket(id); if (ticket == null) { GrowlAdd(Languages.LanguageStrings.TicketNotFound); return(RedirectToAction(nameof(FindTicket), Name)); } return(View(GetTicketViewModel(ticket))); }
private ViewTicketViewModel GetTicketViewModel(HelpdeskTicket ticket) { List <ViewTicketResponseViewModel> messages = new List <ViewTicketResponseViewModel>(); foreach (HelpdeskTicketMessage item in ticket.Messages) { messages.Add(new ViewTicketResponseViewModel(item.DateCreated, item.UserName, FormatTextForDisplay(item.Message))); } return(new ViewTicketViewModel(GetModelData(), ticket.Id, ticket.Priority.Description, ticket.Department.Description, ticket.Status.Description, ticket.Key, ticket.Subject, ticket.DateCreated, ticket.DateLastUpdated, ticket.CreatedBy, ticket.LastReplier, messages)); }
public IActionResult ViewTicket(string email, string ticketKey) { if (!_settings.ShowTickets) { return(RedirectToAction(nameof(Index), Name)); } HelpdeskTicket ticket = _helpdeskProvider.GetTicket(email, ticketKey); if (ticket == null) { GrowlAdd(Languages.LanguageStrings.TicketNotFound); return(RedirectToAction(nameof(FindTicket), Name)); } return(View(GetTicketViewModel(ticket))); }
private async Task <Unit> AddHelpdeskHistory(HelpdeskTicket TicketDetails, UserModel request) { await _mediator.Send(new CreateTicketHistoryCommand { TicketHistory = new TicketHistoryCreateModel { Response = Constants.NewTicketHistoryResponse, Status = TicketDetails.StatusId, TicketId = TicketDetails.TicketId, TicketNumber = TicketDetails.TicketNumber, ElapsedTime = 0, }, User = request }); return(Unit.Value); }
public IActionResult TicketRespond(TicketResponseViewModel model) { if (!_settings.ShowTickets) { return(RedirectToAction(nameof(Index), Name)); } HelpdeskTicket ticket = _helpdeskProvider.GetTicket(model.Id); if (ticket == null) { return(RedirectToAction(nameof(FindTicket), Name)); } _helpdeskProvider.TicketRespond(ticket, model.Name, model.Message); return(RedirectToAction(nameof(ViewTicket), Name, new { id = model.Id })); }
public IActionResult FindTicket(FindTicketViewModel model) { if (model == null) { throw new ArgumentNullException(nameof(model)); } if (!_settings.ShowTickets) { return(RedirectToAction(nameof(Index), Name)); } if (!Shared.Utilities.IsValidEmail(model.Email)) { ModelState.AddModelError(nameof(model.Email), Languages.LanguageStrings.InvalidEmailAddress); } HelpdeskCacheItem helpdeskCache = GetCachedHelpdeskItem(true); if (_settings.ShowCaptchaText && helpdeskCache.Requests > 1) { if (!model.CaptchaText.Equals(helpdeskCache.CaptchaText, StringComparison.CurrentCultureIgnoreCase)) { ModelState.AddModelError(nameof(model.CaptchaText), Languages.LanguageStrings.CodeNotValid); } } if (ModelState.IsValid) { HelpdeskTicket ticket = _helpdeskProvider.GetTicket(model.Email, model.Key); if (ticket != null) { return(RedirectToAction(nameof(ViewTicket), Name, new { ticket.Id })); } GrowlAdd(Languages.LanguageStrings.TicketNotFound); } return(View(GetFindTicketViewModel())); }