public ActionResult Update(string ticketIdLocal, TicketHistoryViewModel ticketHistoryViewModel) { if (!ModelState.IsValid) { return(View(ticketHistoryViewModel)); } ViewBag.status = _viewUtilityServices.GetListOfStatus(); var ticketId = Encrypt.Unprotect(ticketIdLocal); var currentPeople = (people)Session["User"]; ticketHistoryViewModel.idPeople = currentPeople.id; var result = _ticketCommandsService.UpdateTicket(ticketHistoryViewModel, ticketId); if (result == false) { var encryptedTicketId = Encrypt.Protect(ticketId); ViewBag.TicketIdEncrypt = encryptedTicketId; ViewBag.Error = "E R R O R al actualizando el ticket"; return(View(ticketHistoryViewModel)); } _mailerService.NotifyUpdatedTicket(ticketHistoryViewModel, ticketId); TempData["Successful"] = "Ticket editado correctamente!"; return(RedirectToAction("Index", "Home")); }
public bool UpdateTicket(TicketHistoryViewModel baseTicket, string ticketIdLocal) { var entityTicketId = _searchQueriesService.SearchTicketId(ticketIdLocal); if (!UpdateTicketStatus(baseTicket.idStatus, entityTicketId)) { return(false); } _database = new dbSIACEntities(); var updateTicket = new ticketHistory { date = DateTime.Now, idPeople = baseTicket.idPeople, idStatus = baseTicket.idStatus, idTicket = entityTicketId, note = baseTicket.note }; try { using (_database) { _database.ticketHistory.Add(updateTicket); _database.SaveChanges(); } } catch (Exception) { return(false); } return(true); }
// GET: Tickets public ActionResult Index() { TicketHistoryViewModel model = new TicketHistoryViewModel(); var tickets = db.Tickets.Include(t => t.Developer).Include(t => t.Project).Include(t => t.Submitter); return(View(tickets.ToList())); }
public ActionResult Update() { var internalId = (string)TempData["internalId"]; var ticketId = Encrypt.Unprotect(internalId); var ticketHistoryView = new TicketHistoryViewModel(); ViewBag.status = _viewUtilityServices.GetListOfStatus(); var encryptedTicketId = Encrypt.Protect(ticketId); ViewBag.TicketIdEncrypt = encryptedTicketId; return(View(ticketHistoryView)); }
public ActionResult CreateTicketFollow(TicketHistoryViewModel ticket) { try { var ticketHistoryRequest = Mapper.Map <TicketHistoryRequest>(ticket); this.TicketService.CreateTicketHistory(ticketHistoryRequest); return(Redirect(string.Format("/Backlog/UpdateTicketById/{0}", ticket.TicketId))); } catch (Exception ex) { return(View("../Shared/Error")); } }
public void NotifyUpdatedTicket(TicketHistoryViewModel updatedTicket, string ticketIdLocal) { if (int.TryParse(ticketIdLocal, out var ticketId)) { var emailStrings = new string[2]; var peopleData = new string[2]; var ticketView = _ticketQueriesService.GeTicketViewModel(ticketId); var originalTicket = _searchQueriesService.SearchTicketByNumber(ticketId); if (ticketView.idAssignedTechnician != null) { emailStrings[0] = _searchQueriesService.SearchEmailPeople((int)ticketView.idAssignedTechnician); peopleData[0] = GetNameAndIdString((int)ticketView.idAssignedTechnician, originalTicket.assignedTechnician, originalTicket.assignedTechnicianLastname); } emailStrings[1] = _searchQueriesService.SearchEmailPeople(ticketView.idClient); peopleData[1] = GetNameAndIdString(ticketView.idClient, originalTicket.client, originalTicket.clientLastname); var email = new UpdateTicketEmail { to = emailStrings[1], cc = emailStrings[0], technicianName = peopleData[0], userName = peopleData[1], baseComment = originalTicket.description, updateComment = updatedTicket.note, idTicket = originalTicket.idLocal }; email.Send(); } }
// GET: Tickets/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Ticket ticket = db.Tickets.Find(id); if (ticket == null) { return(HttpNotFound()); } var userId = User.Identity.GetUserId(); if (!URManager.UserIsInRole(userId, "Administrator")) { if (!(ticket.Project.InChargeOfId == userId)) { if (!(ticket.AssignedToId == userId)) { if (!(ticket.SubmitterId == userId)) { return(RedirectToAction("Login", "Account")); } } } } if (ticket.TicketStatus.Name == "Resolved" && !User.IsInRole("Administrator")) { return(RedirectToAction("Login", "Account")); } ViewBag.NumberOfComments = ticket.TicketComments.Count; //definitely a better way to do this part. doesn't need to be stored in a database RelativeTime relativeTime = new RelativeTime(); if (ticket.TicketComments != null && ticket.TicketComments.Any()) { foreach (var comment in ticket.TicketComments) { comment.TimeSincePosted = relativeTime.TimeAgo(comment.Created); db.Entry(comment).Property("TimeSincePosted").IsModified = true; db.SaveChanges(); } } ViewBag.NumberOfAttachments = ticket.TicketAttachments.Count; if (ticket.TicketAttachments != null && ticket.TicketAttachments.Any()) { foreach (var attachment in ticket.TicketAttachments) { attachment.TimeSincePosted = relativeTime.TimeAgo(attachment.Created); db.Entry(attachment).Property("TimeSincePosted").IsModified = true; db.SaveChanges(); } } ViewBag.NumberOfChanges = ticket.TicketHistoryEvents.Count - 4; TicketHistoryViewModel vm = new TicketHistoryViewModel(); vm.Ticket = ticket; vm.CreatedBy = db.Users.Find(ticket.TicketHistoryEvents.ToList()[0].UserId); vm.CreatedId = ticket.TicketHistoryEvents.ToList()[0].NewValue; vm.CreatedDescription = ticket.TicketHistoryEvents.ToList()[1].NewValue; vm.CreatedPriority = ticket.TicketHistoryEvents.ToList()[2].NewValue; vm.CreatedStatus = ticket.TicketHistoryEvents.ToList()[3].NewValue; return(View(vm)); }