public async Task <ActionResult> Edit([Bind(Include = "Id,Title,Created,Updated,ProjectId,TicketTypeId,TicketPriorityId,TicketStatusId,OwnerUserId,AssignedToUserId")] Ticket ticket) { if (ModelState.IsValid) { HistoryHelper historyHelper = new HistoryHelper(); StringBuilder updateMessage = new StringBuilder(); var oldTicketInfo = db.Tickets.AsNoTracking().FirstOrDefault(t => t.Id == ticket.Id); if (oldTicketInfo.Title != ticket.Title) { historyHelper.AddHistory(ticket.Id, "Title", oldTicketInfo.Title, ticket.Title, User.Identity.GetUserId()); updateMessage.AppendFormat("Ticket Title: {0}, ", ticket.Title); } if (oldTicketInfo.TicketTypeId != ticket.TicketTypeId) { var oldTicketType = db.TicketTypes.Find(oldTicketInfo.TicketTypeId).Name; var newTicketType = db.TicketTypes.Find(ticket.TicketTypeId).Name; historyHelper.AddHistory(ticket.Id, "Ticket Type", oldTicketType, newTicketType, User.Identity.GetUserId()); updateMessage.AppendFormat("Ticket Type: {0}, ", ticket.TicketTypeId); } if (oldTicketInfo.TicketPriorityId != ticket.TicketPriorityId) { var oldTicketPriority = db.TicketPriorities.Find(oldTicketInfo.TicketPriorityId).Name; var newTicketPriority = db.TicketPriorities.Find(ticket.TicketPriorityId).Name; historyHelper.AddHistory(ticket.Id, "Ticket Type", oldTicketPriority, newTicketPriority, User.Identity.GetUserId()); updateMessage.AppendFormat("Ticket Priority: {0}, ", ticket.TicketTypeId); } ticket.Updated = DateTime.Now; db.SaveChanges(); // Add Notifcations var developer = db.Users.Find(ticket.AssignedToUserId); if (developer != null && developer.Email != null) { var svc = new EmailService(); var msg = new IdentityMessage(); msg.Destination = developer.Email; msg.Subject = " Aj Bug Tracker Update:" + ticket.Title; msg.Body = ("The following items have been updated the :" + ticket.Title + updateMessage); await svc.SendAsync(msg); } return(RedirectToAction("Index")); } ViewBag.AssignedToUserId = new SelectList(db.Users, "Id", "FirstName", ticket.AssignedToUserId); ViewBag.OwnerUserId = new SelectList(db.Users, "Id", "FirstName", ticket.OwnerUserId); ViewBag.ProjectId = new SelectList(db.Projects, "Id", "Name", ticket.ProjectId); ViewBag.TicketPriorityId = new SelectList(db.TicketPriorities, "Id", "Name", ticket.TicketPriorityId); ViewBag.TicketStatusId = new SelectList(db.TicketStatuses, "Id", "Name", ticket.TicketStatusId); ViewBag.TicketTypeId = new SelectList(db.TicketTypes, "Id", "Name", ticket.TicketTypeId); return(View(ticket)); }
public async Task <ActionResult> EditDash([Bind(Include = "Id,Title,Description,Created,ProjectId,TicketTypeId,TicketPriorityId,TicketStatusId,OwnerUserId,AssignedToUserId")] Ticket ticket) { if (ModelState.IsValid) { var notificationHelper = new NotificationHelper(); var historyHelper = new HistoryHelper(); var currentStatus = ticket.TicketStatusId; if (currentStatus == 0) { ticket.TicketStatusId = db.TicketStatuses.FirstOrDefault(t => t.Name == "In Progress").Id; } //reference old Ticket var oldTicket = db.Tickets.AsNoTracking().FirstOrDefault(t => t.Id == ticket.Id); if (User.Identity.GetUserId() == "db9a774b-807c-4b9b-9b22-34c191872996") { if (ticket.AssignedToUserId == "5f84068f-4213-4d02-81a4-21936ae10cdc" || ticket.OwnerUserId == "60f316c5-536c-4f06-83d3-38a555febc29") { ticket.Updated = DateTime.Now; db.Entry(ticket).State = EntityState.Modified; db.SaveChanges(); //compare to the incoming Ticket (ticket) notificationHelper.Notify2(oldTicket, ticket); historyHelper.AddHistory(oldTicket, ticket); return(RedirectToAction("TicketsDashboard")); } else { return(RedirectToAction("InvalidAttempt", "Home")); } } ticket.Updated = DateTime.Now; db.Entry(ticket).State = EntityState.Modified; db.SaveChanges(); //compare to the incoming Ticket (ticket) notificationHelper.Notify2(oldTicket, ticket); historyHelper.AddHistory(oldTicket, ticket); return(RedirectToAction("TicketsDashboard")); } ViewBag.AssignedToUserId = new SelectList(db.Users, "Id", "FirstName", ticket.AssignedToUserId); ViewBag.OwnerUserId = new SelectList(db.Users, "Id", "FirstName", ticket.OwnerUserId); ViewBag.ProjectId = new SelectList(db.Projects, "Id", "Name", ticket.ProjectId); ViewBag.TicketPriorityId = new SelectList(db.TicketPriorities, "Id", "Name", ticket.TicketPriorityId); ViewBag.TicketStatusId = new SelectList(db.TicketStatuses, "Id", "Name", ticket.TicketStatusId); ViewBag.TicketTypeId = new SelectList(db.TicketTypes, "Id", "Name", ticket.TicketTypeId); return(View(ticket)); }
public async System.Threading.Tasks.Task <ActionResult> Delete(int id) { Ticket ticket = db.Tickets.Find(id); var strLoginUser = User.Identity.GetUserId(); HistoryHelper audit = new HistoryHelper(); audit.AddHistory(ticket.Id, "Status", ticket.TicketStatus.Name, "Resolved", strLoginUser); ticket.TicketStatusId = 4; // Sends a notification var developer = db.Users.Find(ticket.AssignedToUserId); if (developer != null && developer.Email != null) { var svc = new EmailService(); var msg = new IdentityMessage(); msg.Destination = developer.Email; msg.Subject = " Aj's Bug Tracker Update: " + ticket.Title; msg.Body = ("Ticket ID: " + ticket.Id + " - " + ticket.Title + "has been resolved"); await svc.SendAsync(msg); } db.Tickets.Attach(ticket); db.Entry(ticket).Property("TicketStatusId").IsModified = true; db.SaveChanges(); return(RedirectToAction("Index", new { Id = ticket.Id })); }
public ActionResult Edit([Bind(Include = "Id,ProjectId,Title,Description,Created,TicketTypeId,TicketPriorityId,TicketStatusId,OwnerUserId,AssignedToUserId")] Ticket ticket) { if (ModelState.IsValid) { //getting a reference to the old ticket somehow var oldTicket = db.Tickets.AsNoTracking().FirstOrDefault(t => t.Id == ticket.Id); ticket.Updated = DateTime.Now; db.Entry(ticket).State = EntityState.Modified; db.SaveChanges(); var notificationHelper = new NotificationHelper(); notificationHelper.Notify(oldTicket, ticket); var historyHelper = new HistoryHelper(); historyHelper.AddHistory(oldTicket, ticket); return(RedirectToAction("Index", "Tickets")); } ViewBag.AssignedToUserId = new SelectList(db.Users, "Id", "FirstName", ticket.AssignedToUserId); ViewBag.OwnerUserId = new SelectList(db.Users, "Id", "FirstName", ticket.OwnerUserId); ViewBag.ProjectId = new SelectList(db.Projects, "Id", "Name", ticket.ProjectId); ViewBag.TicketPriorityId = new SelectList(db.TicketPriorities, "Id", "Name", ticket.TicketPriorityId); ViewBag.TicketStatusId = new SelectList(db.TicketStatuses, "Id", "Name", ticket.TicketStatusId); ViewBag.TicketTypeId = new SelectList(db.TicketTypes, "Id", "Name", ticket.TicketTypeId); return(View(ticket)); }