示例#1
0
        public ActionResult UserIndex(string userId, string CurrentRole, List <int> CurrentProjects)
        {
            // Remove user from whatever role they currently occupy
            foreach (var role in roleHelper.ListUserRoles(userId))
            {
                roleHelper.RemoveUserFromRole(userId, role);
            }

            if (!string.IsNullOrEmpty(CurrentRole))
            {
                // Then add them back to the selected role
                roleHelper.AddUserToRole(userId, CurrentRole);
            }

            if (CurrentProjects != null)
            {
                // Remove user from whatever projects they currently occupy
                foreach (var project in projectHelper.ListUserProjects(userId))
                {
                    projectHelper.RemoveUserFromProject(userId, project.Id);
                }
                // Then add them back to the selected role
                foreach (var project in CurrentProjects)
                {
                    projectHelper.AddUserToProject(userId, project);
                }
            }
            return(RedirectToAction("UserIndex"));
        }
示例#2
0
        public ActionResult ManageUserProjects(List <int> projects, string userId)
        {
            //First let's remove the user from all projects
            foreach (var project in projectHelper.ListUserProjects(userId).ToList())
            {
                projectHelper.RemoveUserFromProject(userId, project.Id);
                foreach (var ticket in project.Tickets)
                {
                    if (ticket.AssignedToUserId == userId)
                    {
                        ticket.AssignedToUserId = null;
                        ticket.TicketStatusId   = db.TicketStatuses.FirstOrDefault(s => s.Name == "New/Unassigned")?.Id ?? 1;
                    }
                }
            }

            //Then if the incoming list is not null we will reassign them.
            if (projects != null)
            {
                foreach (var projectId in projects)
                {
                    projectHelper.AddUserToProject(userId, projectId);
                }
            }

            return(RedirectToAction("Index", "Projects"));
        }
 public ActionResult ManageProjectAssignments(List <string> userIds, List <int> projectIds, bool addUser)
 {
     if (userIds != null || projectIds != null)
     {
         if (addUser)
         {
             foreach (var userId in userIds)
             {
                 foreach (var projectId in projectIds)
                 {
                     projHelper.RemoveUserFromProject(userId, projectId);
                 }
             }
             foreach (var userId in userIds)
             {
                 foreach (var projectId in projectIds)
                 {
                     projHelper.AddUserToProject(userId, projectId);
                 }
             }
         }
         else
         {
             foreach (var userId in userIds)
             {
                 foreach (var projectId in projectIds)
                 {
                     projHelper.RemoveUserFromProject(userId, projectId);
                 }
             }
         }
     }
     return(RedirectToAction("ManageProjectAssignments"));
 }
示例#4
0
        public ActionResult UserIndex(string userId, string CurrentRole, List <int> CurrentProjects)
        {
            foreach (var role in roleHelper.ListUserRoles(userId))
            {
                roleHelper.RemoveUserFromRole(userId, role);
            }

            if (!string.IsNullOrEmpty(CurrentRole))
            {
                roleHelper.AddUserToRole(userId, CurrentRole);
            }

            foreach (var proj in projectHelper.ListUserProjects(userId))
            {
                projectHelper.RemoveUserFromProject(userId, proj.Id);
            }

            if (CurrentProjects != null)

            {
                foreach (var projectId in CurrentProjects)
                {
                    projectHelper.AddUserToProject(userId, projectId);
                }
            }



            ////return RedirectToAction("EditProfile","Members", new { userId = userId });
            return(RedirectToAction("Manage", "Members", new { userId = userId }));
        }
示例#5
0
        public ActionResult AssignUsers(int projectId, string projectManagerId, List <string> submitterIds, List <string> developerIds)
        {
            if (User.IsInRole("Admin"))
            {
                //Dealing with Project Managers
                //Remove the current PM and then add the selected PM
                var project = db.Projects.Find(projectId);
                project.ProjectManagerId = projectManagerId;
                db.SaveChanges();
            }
            else
            {
                #region Handle Submitters Project association

                //Remove all Submitters on the Project
                foreach (var user in assignHelper.UsersOnProjectInRole(projectId, "Submitter"))
                {
                    projHelper.RemoveUserFromProject(user.Id, projectId);
                }

                //Add back all the selected Submitters
                if (submitterIds != null)
                {
                    foreach (var submitterid in submitterIds)
                    {
                        projHelper.AddUserToProject(submitterid, projectId);
                    }
                }
                #endregion

                #region Handle Developer Project association
                //Add back all the selected Developers

                foreach (var user in assignHelper.UsersOnProjectInRole(projectId, "Developer"))
                {
                    projHelper.RemoveUserFromProject(user.Id, projectId);
                }

                //Add back all the selected Submitters
                if (developerIds != null)
                {
                    foreach (var developerId in developerIds)
                    {
                        projHelper.AddUserToProject(developerId, projectId);
                    }
                }

                #endregion
            }

            return(RedirectToAction("Index", "Home"));
        }
示例#6
0
 public ActionResult ManageUserProjects(List <int> projects, string userId)
 {
     foreach (var project in projectHelper.ListUserProjects(userId).ToList())
     {
         projectHelper.RemoveUserFromProject(userId, project.Id);
     }
     if (projects != null)
     {
         foreach (var projectId in projects)
         {
             projectHelper.AddUserToProject(userId, projectId);
         }
     }
     return(RedirectToAction("UserIndex"));
 }
示例#7
0
 public ActionResult UnassignProjectManager(ProjectUsersView model)
 {
     if (ModelState.IsValid)
     {
         if (model.SelectedUsers != null)
         {
             foreach (string userId in model.SelectedUsers)
             {
                 helper.RemoveUserFromProject(userId, model.ProjectId);
             }
             return(RedirectToAction("Index", "ProjectManager"));
         }
     }
     return(View(model));
 }
示例#8
0
        public ActionResult ManageUsers(int projectId, string projectManagerId, List <string> developers, List <string> submitters)
        {
            foreach (var user in projHelper.UsersOnProject(projectId).ToList())
            {
                projHelper.RemoveUserFromProject(user.Id, projectId);
            }

            //In order to ensure that I always have the correct and current set of assign users
            //I will first remove all users from the project and then I will add back the selected users
            if (!string.IsNullOrEmpty(projectManagerId))
            {
                projHelper.AddUserToProject(projectManagerId, projectId);
            }

            if (developers != null)
            {
                foreach (var developerId in developers)
                {
                    projHelper.AddUserToProject(developerId, projectId);
                }
            }

            if (submitters != null)
            {
                foreach (var submitterId in submitters)
                {
                    projHelper.AddUserToProject(submitterId, projectId);
                }
            }
            return(RedirectToAction("ManageUsers", new { id = projectId }));
        }
        public ActionResult ManageUsers(int projectId, string projectManagerId, List <string> developers, List <string> submitters)
        {
            foreach (var user in projectHelper.UsersOnProject(projectId).ToList())
            {
                projectHelper.RemoveUserFromProject(user.Id, projectId);
            }

            if (!string.IsNullOrEmpty(projectManagerId))
            {
                projectHelper.AddUserToProject(projectManagerId, projectId);
            }

            if (developers != null)
            {
                foreach (var developerId in developers)
                {
                    projectHelper.AddUserToProject(developerId, projectId);
                }
            }

            if (submitters != null)
            {
                foreach (var submitterId in submitters)
                {
                    projectHelper.AddUserToProject(submitterId, projectId);
                }
            }

            return(RedirectToAction("ManageUsers", new { id = projectId }));
        }
示例#10
0
        public ActionResult ManageProjects(string userId, int Userproject)
        {
            foreach (var project in projectHelper.ListUserProjects(userId))
            {
                projectHelper.RemoveUserFromProject(userId, project.Id);
            }

            if (Userproject > 0)
            {
                projectHelper.AddUserToProject(userId, Userproject);
            }



            return(RedirectToAction("UserIndex"));
        }
示例#11
0
        public ActionResult RemoveUser(string id, int projectID)
        {
            projectHelper.RemoveUserFromProject(id, projectID);
            ViewBag.ProjecstIds = new MultiSelectList(db.Projects, "Id", "Name");

            var usersInfo = new List <IndexUsersViewModel>();
            var allUsers  = db.Users.ToList();

            foreach (var user in allUsers)
            {
                var userInfo = new IndexUsersViewModel();
                userInfo.User     = user;
                userInfo.Projects = projectHelper.ListUserProjects(user.Id);
                userInfo.role     = roleHelper.ListUserRoles(user.Id);
                usersInfo.Add(userInfo);
            }
            return(View("ManageUsersAndProjects", usersInfo.ToList()));
        }
示例#12
0
        public ActionResult ManageProjectUsers(List <int> projects, string projectManagerId, List <string> developers, List <string> submitters, string demoProjectManagerId, List <string> demoDevelopers, List <string> demoSubmitters)
        {
            // remove users from selected projects
            if (projects != null && !userRolesHelper.IsDemoUser(User.Identity.GetUserId()))
            {
                foreach (var projectId in projects)
                {
                    // remove from this project
                    foreach (var user in projectsHelper.UsersOnProject(projectId).ToList())
                    {
                        projectsHelper.RemoveUserFromProject(user.Id, projectId);
                    }

                    // add a PM back to projects if possible
                    if (!string.IsNullOrEmpty(projectManagerId))
                    {
                        projectsHelper.AddPMToProject(projectManagerId, projectId);
                    }
                    if (developers != null)
                    {
                        foreach (var developerId in developers)
                        {
                            projectsHelper.AddUserToProject(developerId, projectId);
                        }
                    }
                    if (submitters != null)
                    {
                        foreach (var submitterId in submitters)
                        {
                            projectsHelper.AddUserToProject(submitterId, projectId);
                        }
                    }

                    // demo users
                    if (!string.IsNullOrEmpty(demoProjectManagerId))
                    {
                        projectsHelper.AddUserToProject(demoProjectManagerId, projectId);
                    }
                    if (demoDevelopers != null)
                    {
                        foreach (var demoDeveloperId in demoDevelopers)
                        {
                            projectsHelper.AddUserToProject(demoDeveloperId, projectId);
                        }
                    }
                    if (demoSubmitters != null)
                    {
                        foreach (var demoSubmitterId in demoSubmitters)
                        {
                            projectsHelper.AddUserToProject(demoSubmitterId, projectId);
                        }
                    }
                }
            }

            return(RedirectToAction("ManageProjectUsers"));
        }
        public ActionResult ManageUserProjects(List <int> projects, string userId)
        {
            //First lets remove the user from all projects
            foreach (var project in projectHelper.ListUserProjects(userId).ToList())
            {
                projectHelper.RemoveUserFromProject(userId, project.Id);
            }

            //Then if the incoming list is not null we will reassign them to all that are selected
            if (projects != null)
            {
                foreach (var projectId in projects)
                {
                    projectHelper.AddUserToProject(userId, projectId);
                }
            }

            return(RedirectToAction("UserIndex"));
        }
 public ActionResult RemoveUserFromProject(string userId, int projectId)
 {
     //checks if user is in appropriate role.
     if (User.IsInRole("Admin") || User.IsInRole("ProjectManager"))
     {
         projHelper.RemoveUserFromProject(userId, projectId);
         return(RedirectToAction("ManageProjectAssignments"));
     }
     TempData["Alert"] = "You are not authorized to change user assignments";
     return(RedirectToAction("Index", "Projects"));
 }
 public ActionResult Edit([Bind(Include = "Id,Name,Description,Created")] Project project, List <string> users)
 {
     if (ModelState.IsValid)
     {
         foreach (var user in db.Users)
         {
             projHelper.RemoveUserFromProject(user.Id, project.Id);
         }
         // Then add them back to the selected role
         foreach (var user in users)
         {
             projHelper.AddUserToProject(user, project.Id);
         }
         project.Updated         = DateTimeOffset.Now;
         db.Entry(project).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(project));
 }
示例#16
0
        public ActionResult RemoveProject(string userId, int projectId)
        {
            if (helper.RemoveUserFromProject(userId, projectId))
            {
                return(RedirectToAction("Index", "Home"));
            }

            else
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
        }
示例#17
0
        public ActionResult Edit([Bind(Include = "Id,FirstName,LastName,DisplayName,Email")] ApplicationUser applicationUser, string Roles, List <int> Projects)
        {
            if (ModelState.IsValid)
            {
                applicationUser.UserName = applicationUser.Email;
                //Assign the user to the selected role
                //Determine if the user currently occupies a role and if so remove them from it

                if (User.IsInRole("Admin"))
                {
                    foreach (var role in rolesHelper.ListUserRoles(applicationUser.Id))
                    {
                        rolesHelper.RemoveUserFromRole(applicationUser.Id, role);
                    }

                    //Add them to the selected role
                    if (Roles != null)
                    {
                        rolesHelper.AddUserToRole(applicationUser.Id, Roles);
                    }
                }
                //Remove user from all projects
                foreach (var project in projHelper.ListUserProjects(applicationUser.Id))
                {
                    projHelper.RemoveUserFromProject(applicationUser.Id, project.Id);
                }

                //Add them to the selected projects
                if (Projects != null)
                {
                    foreach (var projectId in Projects)
                    {
                        projHelper.AddUserToProject(applicationUser.Id, projectId);
                    }
                }

                //Because we have removed several fields from the User Edit Form, we have to tell the SQL that only a few specific properties are eligible for modification
                //db.Entry(applicationUser).State = EntityState.Modified; <-- This tells SQL that ALL properties are eligible for modification
                db.Users.Attach(applicationUser);
                db.Entry(applicationUser).Property(x => x.FirstName).IsModified   = true;
                db.Entry(applicationUser).Property(x => x.LastName).IsModified    = true;
                db.Entry(applicationUser).Property(x => x.DisplayName).IsModified = true;
                db.Entry(applicationUser).Property(x => x.Email).IsModified       = true;
                db.Entry(applicationUser).Property(x => x.UserName).IsModified    = true;

                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(applicationUser));
        }
 public ActionResult ManageProjectAssignments(string userId, int projectId, bool addUser)
 {
     if (userId != null && projectId > 0)
     {
         if (addUser)
         {
             projectsHelper.AddUserToProject(userId, projectId);
         }
         else
         {
             projectsHelper.RemoveUserFromProject(userId, projectId);
         }
     }
     return(RedirectToAction("ManageProjectAssignments"));
 }
示例#19
0
 public ActionResult RemoveProjectUsers(List <string> userIds, List <int> projectIds)
 {
     if (userIds != null && projectIds != null)
     {
         foreach (var userId in userIds)
         {
             foreach (var projectId in projectIds)
             {
                 notificationHelper.RemovedProjectNotification(projectId, userId);
                 projHelper.RemoveUserFromProject(userId, projectId);
             }
         }
     }
     return(RedirectToAction("AssignProjectUsers"));
 }
示例#20
0
        public ActionResult Details(string userId, List <int> UserProject)
        {
            foreach (var project in projectHelper.ListUserProjects(userId))
            {
                projectHelper.RemoveUserFromProject(userId, project.Id);
            }

            if (UserProject != null)
            {
                foreach (var projectId in UserProject)
                {
                    projectHelper.AddUserToProject(userId, projectId);
                }
            }
            return(RedirectToAction("UserIndex", "Admin"));
        }
        public ActionResult ManageProjects(List <string> userIds, int project, string projectManager)
        {
            foreach (var user in db.Users)
            {
                projectsHelper.RemoveUserFromProject(user.Id, project);
            }

            foreach (var userId in userIds)
            {
                projectsHelper.AddUserToProject(userId, project);
            }

            projectsHelper.AddPMToProject(projectManager, project);

            return(RedirectToAction("ManageProjects", "Admin"));
        }
示例#22
0
        public ActionResult Edit([Bind(Include = "Id,Name,Description")] Project project, List <string> projectManagers, List <string> projectDevelopers, List <string> projectSubmitters)
        {
            //var pUsers = projectManagers.Union(projectDevelopers);
            //var addProjectUsersIds = pUsers.Union(projectSubmitters);

            var oldProjectUsers = projectsHelper.UsersOnProject(project.Id).ToList();

            //var projectUsers = project.ProjectUsers.ToList();

            if (ModelState.IsValid)
            {
                foreach (var user in oldProjectUsers)
                {
                    projectsHelper.RemoveUserFromProject(user.Id, project.Id);
                }

                if (projectManagers != null && projectManagers.Count > 0)
                {
                    foreach (var userId in projectManagers)
                    {
                        projectsHelper.AddUserToProject(userId, project.Id);
                    }
                }

                if (projectDevelopers != null && projectDevelopers.Count > 0)
                {
                    foreach (var userId in projectDevelopers)
                    {
                        projectsHelper.AddUserToProject(userId, project.Id);
                    }
                }

                if (projectSubmitters != null && projectSubmitters.Count > 0)
                {
                    foreach (var userId in projectSubmitters)
                    {
                        projectsHelper.AddUserToProject(userId, project.Id);
                    }
                }


                db.Entry(project).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(project));
        }
        public ActionResult ProjectAssign(string UserId, List <int> AllProjects)
        {
            //First use the Project helper to remove this user from all Project
            foreach (var project in projectHelper.ListUserProjects(UserId))
            {
                projectHelper.RemoveUserFromProject(UserId, project.Id);
            }

            //Next add the user to the selected Projects (AllProject)
            if (AllProjects != null)
            {
                foreach (var projectId in AllProjects)
                {
                    projectHelper.AddUserToProject(UserId, projectId);
                }
            }
            return(RedirectToAction("UserIndex"));
        }
示例#24
0
        public ActionResult ProjectAssignment(int projects, List <string> users)
        {
            //Remove any and all current role assignment
            var projectUsers = projectsHelper.ListUsersOnProject(projects);

            if (projectUsers.Count > 0)
            {
                foreach (var user in projectUsers.ToList())
                {
                    projectsHelper.RemoveUserFromProject(user.Id, projects);
                }
            }
            foreach (var userId in users)
            {
                projectsHelper.AddUserToProject(userId, projects);
            }
            return(RedirectToAction("Index", "Projects"));
        }
        public ActionResult ProjectAssign(string userId, List <int> AllProjects)
        {
            //Remove user from all projects
            foreach (var proj in projHelper.ListUserProjects(userId))
            {
                projHelper.RemoveUserFromProject(userId, proj.Id);//need to specify Id here because passing in entire project in foreach loop
            }

            //Add user to projects
            if (AllProjects != null)
            {
                foreach (var projId in AllProjects) //already using Id's here for variable projId so don't need to denote proj.Id below
                {
                    projHelper.AddUserToProject(userId, projId);
                }
            }

            return(RedirectToAction("UserIndex"));
        }
        public ActionResult ManageProjectLevelUsers(List <string> userIds, int projectId)
        {
            var projMemberIds = projHelper.UsersOnProject(projectId).Select(u => u.Id).ToList();

            foreach (var memberId in projMemberIds)
            {
                projHelper.RemoveUserFromProject(memberId, projectId);
            }

            if (userIds != null)
            {
                foreach (var userId in userIds)
                {
                    projHelper.AddUserToProject(userId, projectId);
                }
            }

            return(RedirectToAction("ManageProjectLevelUsers", new { id = projectId }));
        }
示例#27
0
        public ActionResult ManageProjectUsers(List <int> projects, string adminId, string projectManagerId, List <string> developers, List <string> submitters)
        {
            if (projects != null)
            {
                foreach (var projectId in projects)
                {
                    foreach (var user in projHelper.UsersOnProject(projectId).ToList())
                    {
                        projHelper.RemoveUserFromProject(user.Id, projectId);
                    }

                    if (!string.IsNullOrEmpty(adminId))
                    {
                        projHelper.AddUserToProject(adminId, projectId);
                    }

                    if (!string.IsNullOrEmpty(projectManagerId))
                    {
                        projHelper.AddUserToProject(projectManagerId, projectId);
                    }

                    if (developers != null)
                    {
                        foreach (var developerId in developers)
                        {
                            projHelper.AddUserToProject(developerId, projectId);
                        }
                    }

                    if (submitters != null)
                    {
                        foreach (var submitterId in submitters)
                        {
                            projHelper.AddUserToProject(submitterId, projectId);
                        }
                    }
                }
            }

            return(RedirectToAction("ManageProjectUsers"));
        }
示例#28
0
        public ActionResult Edit([Bind(Include = "Id,FirstName,LastName,Email,PhoneNumber")] ApplicationUser applicationUser, string Roles, List <int> Projects)
        {
            if (ModelState.IsValid)
            {
                applicationUser.UserName = applicationUser.Email;
                foreach (var role in roleHelp.ListUserRoles(applicationUser.Id))
                {
                    roleHelp.RemoveUserFromRole(applicationUser.Id, role);
                }

                if (Roles != null)
                {
                    roleHelp.AddUserToRole(applicationUser.Id, Roles);
                }


                foreach (var project in proj.ListUserProjects(applicationUser.Id))
                {
                    proj.RemoveUserFromProject(applicationUser.Id, project.ID);
                }

                if (Projects != null)
                {
                    foreach (var projectID in Projects)
                    {
                        proj.AddUserToProject(applicationUser.Id, projectID);
                    }
                }

                db.Users.Attach(applicationUser);
                db.Entry(applicationUser).Property(a => a.FirstName).IsModified   = true;
                db.Entry(applicationUser).Property(a => a.LastName).IsModified    = true;
                db.Entry(applicationUser).Property(a => a.PhoneNumber).IsModified = true;
                db.Entry(applicationUser).Property(a => a.Email).IsModified       = true;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(applicationUser));
        }
示例#29
0
        public ActionResult Edit([Bind(Include = "Id,Name,Description,Created,Updated")] Project project, List <string> AllUsers)
        {
            if (ModelState.IsValid)
            {
                foreach (var user in projectHelper.UsersOnProject(project.Id).ToList())
                {
                    projectHelper.RemoveUserFromProject(user.Id, project.Id);
                }


                foreach (var userId in AllUsers)
                {
                    projectHelper.AddUserToProject(userId, project.Id);
                }


                db.Entry(project).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            return(View(project));
        }
示例#30
0
        public PartialViewResult AddUsers(int id, List <string> SelectedUsers)
        {
            ProjectsHelper helper = new ProjectsHelper();
            var            prj    = db.Projects.Find(id);

            foreach (var usr in prj.Users)
            {
                helper.RemoveUserFromProject(usr.Id, id);
            }

            foreach (var dev in SelectedUsers)
            {
                helper.AddUserToProject(dev, prj.Id);
            }

            ProjectsHelper         phelper = new ProjectsHelper();
            ProjectDetailViewModel model   = new ProjectDetailViewModel();

            model.Developers = phelper.ProjectUsersByRole(id, "Submitter");
            model.Submitters = phelper.ProjectUsersByRole(id, "Developer");
            return(PartialView("_TeamMembers", model));
        }