Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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);
            }
        }