示例#1
0
        protected virtual void EnsureRoles()
        {
            UserRepository        repo         = new UserRepository();
            ProjectRoleRepository projRoleRepo = new ProjectRoleRepository();

            User user = repo.GetAll().Where(p => p.Username == _identity.Name).Single();

            IList <Role>        userRoles = new List <Role>();
            IList <ProjectRole> projRoles = projRoleRepo.GetAll().Where(p => p.User.Id == user.Id).ToList();

            foreach (ProjectRole projRole in projRoles)
            {
                if (!userRoles.Contains(projRole.Role))
                {
                    userRoles.Add(projRole.Role);
                }
            }

            _roles = new string[userRoles.Count()];

            for (int i = 0; i < _roles.Length; i++)
            {
                _roles[i] = userRoles[i].RoleName;
            }
        }
示例#2
0
        public IList <Project> GetProjectsAssignedTo(User user)
        {
            ProjectRoleRepository projRoleRepo = new ProjectRoleRepository();

            return(projRoleRepo.GetAll().Where(p => p.User.Id == user.Id)
                   .Select(c => c.Project).Distinct().ToList());
        }
示例#3
0
        public IList <Project> GetProjectsManagedBy(User user)
        {
            ProjectRoleRepository projRoleRepo = new ProjectRoleRepository();
            RoleRepository        roleRepo     = new RoleRepository();

            Role manager = roleRepo.GetAll().Where(r => r.RoleName == "Project Manager").SingleOrDefault();

            return(projRoleRepo.GetAll().Where(p => p.User.Id == user.Id && p.Role.Id == manager.Id).Select(c => c.Project).Distinct().ToList());
        }
示例#4
0
        public IList <User> GetAssignedUsersByProject(Project proj)
        {
            ProjectRoleRepository projRoleRepo = new ProjectRoleRepository();
            RoleRepository        roleRepo     = new RoleRepository();

            Role projMgr = roleRepo.GetAll().Where(p => p.RoleName == "Project Manager").SingleOrDefault();

            return(projRoleRepo.GetAll().Where(p => p.Project.Id == proj.Id && p.Role.Id != projMgr.Id)
                   .Select(p => p.User).Distinct().ToList());
        }
示例#5
0
        public void LeaveProject(Project project, User user)
        {
            ProjectRoleRepository projRoleRepo = new ProjectRoleRepository();

            var associations = projRoleRepo.GetAll().Where(p => p.User.Id == user.Id && p.Project.Id == project.Id);

            foreach (var ass in associations)
            {
                projRoleRepo.Delete(ass);
            }
        }
示例#6
0
        public List <User> GetUsersByProject(Project proj)
        {
            ProjectRoleRepository projRoleRepo = new ProjectRoleRepository();

            List <User>        userList     = new List <User>();
            List <ProjectRole> projRoleList = projRoleRepo.GetAll().Where(p => p.Project.Id == proj.Id).ToList();

            foreach (ProjectRole projRole in projRoleList)
            {
                if (!userList.Contains(projRole.User))
                {
                    userList.Add(projRole.User);
                }
            }

            return(userList);
        }
示例#7
0
        public Project AddProject(Project project)
        {
            ProjectRepository     projRepo     = new ProjectRepository();
            ProjectRoleRepository projRoleRepo = new ProjectRoleRepository();
            RoleRepository        roleRepo     = new RoleRepository();

            Project addedProj = projRepo.Create(project);

            int ManagerId     = roleRepo.GetAll().Where(x => x.RoleName == "Project Manager").Select(c => c.Id).SingleOrDefault();
            int CurrentUserId = GetMyUser().Id;

            // Make the user who added the project, a project manager
            projRoleRepo.Create(new ProjectRole {
                ProjectId = addedProj.Id, RoleId = ManagerId, UserId = CurrentUserId
            });

            return(addedProj);
        }