public ActionResult AllTickets() { userId = User.Identity.GetUserId(); var isSubmitter = User.IsInRole("Submitter"); var isDeveloper = User.IsInRole("Developer"); var isAdminManager = User.IsInRole("Admin") || User.IsInRole("ProjectManager"); var model = new List <AllTicketsViewModel>(); if (isAdminManager) { model = bugTrackerHelper.ActiveTickets().ProjectTo <AllTicketsViewModel>().ToList(); model.ForEach(t => t.EditAvailable = true); foreach (var ticket in model) { ticket.OffNotification = notificationHelper.GetNotificationByTicketUserIds(ticket.Id, userId) != null; } return(View(model)); } if (isDeveloper && isSubmitter) { model = bugTrackerHelper.GetTicketsForDevSubmitters(userId).ProjectTo <AllTicketsViewModel>().ToList(); model.ForEach(t => t.EditAvailable = bugTrackerHelper.IsAssigned(t, userId) || bugTrackerHelper.IsOwned(t, userId)); return(View(model)); } if (isDeveloper) { model = bugTrackerHelper.GetTicketsForDeveloper(userId).ProjectTo <AllTicketsViewModel>().ToList(); model.ForEach(t => t.EditAvailable = bugTrackerHelper.IsAssigned(t, userId)); return(View(model)); } if (isSubmitter) { model = bugTrackerHelper.GetTicketsForSubmitters(userId).ProjectTo <AllTicketsViewModel>().ToList(); model.ForEach(t => t.EditAvailable = bugTrackerHelper.IsOwned(t, userId)); return(View(model)); } return(View()); }