public async Task <IActionResult> DisplayTicketAnswerTicket(int id) { var ticket = await service.FindTicket(id); if (ticket == null) { return(NotFound()); } if (ticket.ToReplyTicket == null) { string message = "The requested ticket is not yet answered!"; ViewBag.NotAnswered = message; return(View()); } var answer = await service.DisplayTicketAnswerTicket(id); var dispAnswer = new FindTicketViewModel(); dispAnswer.Id = answer.Id; dispAnswer.TicketId = answer.TicketId; dispAnswer.SendOn = answer.SendOn; dispAnswer.Descripton = answer.Descripton; dispAnswer.AgentId = answer.Agent.UserName;//here to dislay the UserName and not he Id I just give the value UserName to the prop Id dispAnswer.AuthorId = answer.Author.UserName; return(View(answer)); }
public async Task <IActionResult> Find(FindTicketViewModel model) { if (ModelState.IsValid) { var accountDetail = await CommonContext.CommonAccounts .Include(m => m.Partition) .Where(account => account.Number == model.AccountNumber) .SingleOrDefaultAsync(); //Check if this account exists if (accountDetail == null) { ModelState.AddModelError("AccountNumber", "Invalid Account Number"); return(View(model)); } else { var _accountCtx = ContextsUtility.CreateAccountContext(Cryptography.Decrypt(accountDetail.Partition.ConnectionString)); //Find violation var license = model.LicensePlate.Trim(); var state = model.State.Trim(); var citation = await _accountCtx.Citations.ForAccount(accountDetail.Id) .Where(m => m.CitationNumber == model.CitationNumber) .Where(m => m.LicenseState == state) .Where(m => m.LicensePlate == license) .OrderByDescending(m => m.CreateUtc) .FirstOrDefaultAsync(); if (citation == null) { ModelState.AddModelError("", "Cannot find Ticket. Please call 555-555-5555 for assitance"); } else { //Encrypt CitationID and Send user to Citation Page var encryptedCitationId = _dataProtector.Protect($"{accountDetail.Id}&{citation.Id.ToString()}"); return(RedirectToAction("Citation", new { id = encryptedCitationId })); } } } return(View(model)); }
public async Task <IActionResult> FindTicket(int id) { var findTicket = new FindTicketViewModel(); var foundTicket = await service.FindTicket(id); findTicket.Id = foundTicket.Id; findTicket.Title = foundTicket.Title; findTicket.Descripton = foundTicket.Descripton; findTicket.SendOn = foundTicket.SendOn; findTicket.ProjectId = foundTicket.ProjectId; findTicket.TicketId = foundTicket.TicketId; findTicket.Priority = foundTicket.Priority; findTicket.IsDeleted = foundTicket.IsDeleted; findTicket.IsComplete = foundTicket.IsComplete; findTicket.IsAnswered = foundTicket.IsAnswered; findTicket.AgentId = foundTicket.AgentId; findTicket.AuthorId = foundTicket.AuthorId; return(View(findTicket)); }
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())); }
public FindTicket() { InitializeComponent(); DataContext = new FindTicketViewModel(); }