public ActionResult Details([Bind(Include = "SelectedProjects,ProjectsList")] UserProjectsViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user         = (ApplicationUser)TempData["CurrentUser"];
                var userProjects = helper.ListProjectsForUser(user.Id);

                //DELETE current Projects)
                foreach (var project in userProjects)
                {
                    helper.RemoveUserFromProject(user.Id, project.Id);
                }

                //ADD the whole list of new Projects)
                if (model.SelectedProjects != null)
                {
                    foreach (var projectid in model.SelectedProjects)
                    {
                        int projectId = Convert.ToInt32(projectid);
                        helper.AddUserToProject(user.Id, projectId);
                    }
                }

                db.SaveChanges();
            }
            return(RedirectToAction("Index"));
        }
        public ActionResult Index()
        {
            List <UserProjectsViewModel> userList = new List <UserProjectsViewModel>();

            foreach (var user in db.Users.OrderBy(p => p.DisplayName).ToList())
            {
                UserProjectsViewModel uservm = new UserProjectsViewModel();
                uservm.User     = user;
                uservm.Projects = helper.ListProjectsForUser(user.Id);
                userList.Add(uservm);
            }
            return(View(userList));
        }
        public async Task <IActionResult> MyProjects(string id)//here i get User.Identity.Name
        {
            var user = service.FindUser(id);

            if (user == null)
            {
                return(NotFound());
            }
            var list = new UserProjectsViewModel
            {
                UserProjects = await service.UserProjects(id)
            };

            return(View(list));
        }
        public ActionResult CustomerProfile()
        {
            int userId = Convert.ToInt32(Session["UserId"]);

            UserProjectsViewModel UserProjectsVM = new UserProjectsViewModel();

            UserProjectsVM.User = _context.Users.Find(userId);

            var ProjectIds = _context.UserProjects.Where(up => up.UserId == userId).Select(up => up.ProjectId).ToList();
            var Projects   = _context.Projects.Where(p => ProjectIds.Contains(p.ProjectId)).ToList();

            UserProjectsVM.Projects = Projects;

            return(View(UserProjectsVM));
        }
        public ActionResult Details(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            UserProjectsViewModel uservm = new UserProjectsViewModel();
            ApplicationUser       user   = db.Users.Find(id);

            uservm.User             = user;
            TempData["CurrentUser"] = user;
            uservm.Projects         = helper.ListProjectsForUser(id);
            uservm.SelectedProjects = uservm.Projects.Select(p => p.Id).ToArray();
            uservm.ProjectsList     = new MultiSelectList(db.Projects.OrderBy(p => p.Name), "Id", "Name", uservm.SelectedProjects);

            if (uservm == null)
            {
                return(HttpNotFound());
            }
            return(View(uservm));
        }
Beispiel #6
0
        // GET: Projects with authorization
        public ActionResult UserProjects() //Based off of user tickets in the ticket controller. UserProjectsViewModel is based off UserRolesViewModel
        {
            var userProjectsViewModel = new UserProjectsViewModel();
            var userId = User.Identity.GetUserId();

            if (User.IsInRole("Admin"))
            {
                var projects = db.Projects.Where(p => p.Users.Any(u => u.Id == userId)).ToList();
                var model    = new List <ProjectIndexDetails>();

                foreach (var project in projects)
                {
                    ProjectIndexDetails newProject = new ProjectIndexDetails();


                    newProject.Project = project;
                    if (project.ProjectManagerId != null)
                    {
                        string firstName = db.Users.FirstOrDefault(u => u.Id == project.ProjectManagerId).FirstName;
                        string lastName  = db.Users.FirstOrDefault(u => u.Id == project.ProjectManagerId).LastName;
                        newProject.ProjectManagerName = $"{firstName} {lastName}";
                    }
                    else
                    {
                        newProject.ProjectManagerName = "Unassigned";
                    }


                    model.Add(newProject);
                }


                userProjectsViewModel.AdminProjs = model;
            }

            if (User.IsInRole("ProjectManager"))
            {
                var projects = db.Projects.Where(p => p.ProjectManagerId == userId).ToList();
                var model    = new List <ProjectIndexDetails>();

                foreach (var project in projects)
                {
                    ProjectIndexDetails newProject = new ProjectIndexDetails();


                    newProject.Project = project;
                    if (project.ProjectManagerId != null)
                    {
                        string firstName = db.Users.FirstOrDefault(u => u.Id == project.ProjectManagerId).FirstName;
                        string lastName  = db.Users.FirstOrDefault(u => u.Id == project.ProjectManagerId).LastName;
                        newProject.ProjectManagerName = $"{firstName} {lastName}";
                    }
                    else
                    {
                        newProject.ProjectManagerName = "Unassigned";
                    }


                    model.Add(newProject);
                }

                userProjectsViewModel.ProjectManProjs = model;
            }

            if (User.IsInRole("Developer"))
            {
                var projects = db.Projects.Where(p => p.Users.Any(u => u.Id == userId)).ToList();
                var model    = new List <ProjectIndexDetails>();

                foreach (var project in projects)
                {
                    ProjectIndexDetails newProject = new ProjectIndexDetails();


                    newProject.Project = project;
                    if (project.ProjectManagerId != null)
                    {
                        string firstName = db.Users.FirstOrDefault(u => u.Id == project.ProjectManagerId).FirstName;
                        string lastName  = db.Users.FirstOrDefault(u => u.Id == project.ProjectManagerId).LastName;
                        newProject.ProjectManagerName = $"{firstName} {lastName}";
                    }
                    else
                    {
                        newProject.ProjectManagerName = "Unassigned";
                    }


                    model.Add(newProject);
                }

                userProjectsViewModel.DeveloperProjs = model;
            }

            if (User.IsInRole("Submitter"))
            {
                var projects = db.Projects.Where(p => p.Users.Any(u => u.Id == userId)).ToList();
                var model    = new List <ProjectIndexDetails>();

                foreach (var project in projects)
                {
                    ProjectIndexDetails newProject = new ProjectIndexDetails();


                    newProject.Project = project;
                    if (project.ProjectManagerId != null)
                    {
                        string firstName = db.Users.FirstOrDefault(u => u.Id == project.ProjectManagerId).FirstName;
                        string lastName  = db.Users.FirstOrDefault(u => u.Id == project.ProjectManagerId).LastName;
                        newProject.ProjectManagerName = $"{firstName} {lastName}";
                    }
                    else
                    {
                        newProject.ProjectManagerName = "Unassigned";
                    }


                    model.Add(newProject);
                }

                userProjectsViewModel.SubmitterProjs = model;
            }

            return(View(userProjectsViewModel));
        }