// GET: Tickets/Details/5 public ActionResult Details(int?id) { TicketDetailsVM ticketDetailsVM = new TicketDetailsVM(); ticketDetailsVM.Histories = db.TicketHistories.Where(th => th.TicketId == id).ToList(); if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Ticket ticket = db.Tickets.Find(id); if (ticket == null) { return(HttpNotFound()); } return(View(ticket)); }
// 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(); TicketDetailsVM ticketDetails = new TicketDetailsVM(); if (ticket.DeveloperId != null) { ticketDetails.Developer = db.Users.Find(ticket.DeveloperId).FullName; } if (ticket.Project.ProjectManagerId != null) { ticketDetails.ProjectManager = db.Users.Find(ticket.Project.ProjectManagerId).FullName; } ticketDetails.TicketPriority = db.TicketPriorities.Find(ticket.TicketPriorityId).Name; ticketDetails.TicketStatus = db.TicketStatuses.Find(ticket.TicketStatusId).Name; ticketDetails.TicketType = db.TicketTypes.Find(ticket.TicketTypeId).Name; ticketDetails.ProjectName = db.Projects.Find(ticket.ProjectId).Name; ticketDetails.Submitter = db.Users.Find(ticket.SubmitterId).FullName; ticketDetails.Ticket = ticket; ticketDetails.TicketHistory = db.TicketHistories.Where(t => t.TicketId == ticket.Id).OrderByDescending(d => d.ChangedOn).ToList(); ticketDetails.ticketAttachments = db.TicketAttachments.Where(t => t.TicketId == ticket.Id).ToList(); if (User.IsInRole("Admin")) { return(View(ticketDetails)); } if (User.IsInRole("ProjectManager")) { if (ticket.Project.ProjectManagerId == userId) { return(View(ticketDetails)); } TempData["Alert"] = "You can only view tickets for your assigned projects"; return(RedirectToAction("Index", "Tickets", TempData)); } if (User.IsInRole("Developer")) { if (ticket.DeveloperId == userId) { return(View(ticketDetails)); } TempData["Alert"] = "You can only view tickets you've been assigned"; return(RedirectToAction("Index", "Tickets", TempData)); } if (User.IsInRole("Submitter")) { if (ticket.SubmitterId == userId) { return(View(ticketDetails)); } TempData["Alert"] = "You can only view tickets you've created"; return(RedirectToAction("Index", "Tickets", TempData)); } TempData["Alert"] = "You don't have access to ticket details"; return(RedirectToAction("Index", "Tickets", TempData)); }