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());
        }