public List <Tickets> GetUserTickets(string userId) { var user = db.Users.Find(userId); UserRoleAssignHelper userHelper = new UserRoleAssignHelper(db); ProjectsHelper projectHelper = new ProjectsHelper(db); var userRoles = userHelper.ListMyRoles(userId); var tickets = new List <Tickets>(); if (userRoles.Contains("Admin")) { tickets = user.Projects.SelectMany(p => p.Tickets).ToList(); } else if (userRoles.Contains("ProjectManager")) { tickets = user.Projects.SelectMany(p => p.Tickets).ToList(); } else if (userRoles.Contains("Developer") && userRoles.Contains("Submitter")) { tickets = db.Tickets.Where(t => t.AssignedUserId == userId || t.OwnerId == userId).Include(t => t.AssignedUser).Include(t => t.Owner).Include(t => t.Project).ToList(); } else if (userRoles.Contains("Developer")) { tickets = db.Tickets.Where(t => t.AssignedUserId == userId).Include(t => t.AssignedUser).Include(t => t.Owner).Include(t => t.Project).ToList(); } else if (userRoles.Contains("Submitter")) { tickets = db.Tickets.Where(t => t.OwnerId == userId).Include(t => t.AssignedUser).Include(t => t.Owner).Include(t => t.Project).ToList(); } return(tickets); }
public ActionResult UserProfile(string userId) { var user = manager.FindById(User.Identity.GetUserId()); userId = User.Identity.GetUserId(); UserViewModel model = new UserViewModel(); UserRoleAssignHelper helper = new UserRoleAssignHelper(db); model.Name = user.FullName; model.Roles = helper.ListMyRoles(userId); model.ProjectCount = db.Projects.Count(); model.Email = user.Email; var tickets = user.Projects.SelectMany(p => p.Tickets).ToList(); model.TicketsAssigned = tickets.Where(t => t.AssignedUserId == user.Id).Count(); model.TicketsSubmitted = tickets.Where(t => t.OwnerId == user.Id).Count(); return(View(model)); }
public bool HasTicketPermission(string userId, int ticketId) { var user = db.Users.Find(userId); var ticket = db.Tickets.Find(ticketId); UserRoleAssignHelper helper = new UserRoleAssignHelper(); var userRoles = helper.ListMyRoles(userId); if (userRoles.Contains("Admin")) { return(true); } else if (userRoles.Contains("ProjectManager") && user.Projects.SelectMany(p => p.Tickets).ToList().Contains(ticket)) { return(true); } else if (userRoles.Contains("Submitter") && userRoles.Contains("Developer")) { if (ticket.AssignedUserId == userId || ticket.OwnerId == userId) { return(true); } else { return(false); } } else if (userRoles.Contains("Developer") && ticket.AssignedUserId == userId) { return(true); } else if (userRoles.Contains("Submitter") && ticket.OwnerId == userId) { return(true); } else { return(false); } }