Example #1
0
        public ActionResult AssignProjectsToUser(string UserId)
        {
            string myUser;

            if (UserId == null || UserId == "")
            {
                myUser = User.Identity.GetUserId();
            }
            else
            {
                myUser = UserId;
            }
            var userList      = new List <ApplicationUser>();
            var helperProject = new UserProjectHelper();

            var ListOfProjects = db.Projects.OrderBy(p => p.Name).ToList().Select(pp => pp.Name.ToString()).ToList();

            ProjectToUser projectToUser = new ProjectToUser();

            projectToUser.availableProjects   = new MultiSelectList(ListOfProjects);
            projectToUser.assignedProjects    = new MultiSelectList(helperProject.ListProjectsAssignedToUser(myUser).Select(n => n.Name));
            projectToUser.notAssignedProjects = new MultiSelectList(helperProject.ListProjectsNotAssignedToUser(myUser).Select(n => n.Name));

            projectToUser.UserId = myUser;
            //               projectToUser.UserName = (db.Users.Find(myUser).Email == null) ? "NoEmail" : db.Users.Find(myUser).Email;
            projectToUser.UserName = "******";

            return(View("AssignProjectsToUser", projectToUser));
        }
Example #2
0
        public ActionResult ListProjectsAndUsers()
        {
            var userList      = new List <ApplicationUser>();
            var helperProject = new UserProjectHelper();
            var helperRole    = new UserRolesHelper();

            //var selectListOfRoles = db.Roles.OrderBy(r => r.Name).ToList().Select(rr => new SelectListItem { Value = rr.Name.ToString(), Text = rr.Name }).ToList();
            // same as above but just string array than selected list array
            //        var ListOfUsers = db.Users.OrderBy(r => r.LastName).ToList().Select(rr => rr.LastName.ToString()).ToList();

            var ListOfProjects = db.Projects.OrderBy(p => p.Name).ToList().Select(pp => pp.Name.ToString()).ToList();


            //    var listOfRoles = UserDb.Roles.OrderBy(r => r.Name).ToList().Select(rr => rr.Name.ToString());


            foreach (var user in db.Users)
            {
                var currentUser = new ProjectViewModels();

                // Result converts Task<Ilist> to IList
                var ListOfProjectsForUser = helperProject.ListProjectsAssignedToUser(user.Id);

                currentUser.Projects = ListOfProjectsForUser;
                currentUser.UserId   = user.Id;
                currentUser.UserName = user.FirstName + " " + user.LastName;
                currentUser.Role     = helperRole.ListUserRoles(user.Id);

                projectInfo.Add(currentUser);
            }
            return(View("ListProjectsAndUsers", projectInfo));
        }
Example #3
0
        public async Task <PaginatedList <ActiveUserProjectsPreviewResponse> > GetActiveUserProjectsAsync(
            string userName,
            PageInfo page)
        {
            var result = new PaginatedList <ActiveUserProjectsPreviewResponse>();

            var userId = await _userRepository.GetUserIdByNameAsync(userName);

            if (userId != "")
            {
                page = PageVerificator.AdjustPage(page);

                var userProjects = await _userProjectRepository.GetActiveUserProjectsAsync(userId, page);

                var projectsCount = await _userProjectRepository.GetActiveUserProjectsCountAsync(userId);

                result = UserProjectHelper.AssignActiveUserProjectValues(userProjects, page, projectsCount, _mapper);
            }
            else
            {
                _logger.LogInformation("GetActiveUserProjectsAsync user was not found. ", userName);
            }

            return(result);
        }
Example #4
0
        public ActionResult RemoveUsersFromProject(int pid, [Bind(Include = "usersOnProject,selectedUsersOnProject")] UserToProject model,
                                                   string removeButton)
        {
            var helperProject = new UserProjectHelper();

            foreach (var p in model.selectedUsersOnProject)
            {
                string userId = db.Users.FirstOrDefault(n => n.Id == p).Id;
                helperProject.RemoveUserFromProject(userId, pid);
            }

            return(RedirectToAction("ListProjectsAndUsers"));
        }
Example #5
0
        public ActionResult AssignUsersToProject(int pid, [Bind(Include = "usersNotOnProjects,selectedUsersNotOnProjects")] UserToProject model,
                                                 string addButton)
        {
            var userList       = new List <ApplicationUser>();
            var helperProject  = new UserProjectHelper();
            var ListOfProjects = db.Projects.OrderBy(p => p.Name).ToList().Select(pp => pp.Name.ToString()).ToList();


            foreach (var p in model.selectedUsersNotOnProjects)
            {
                string userId = db.Users.FirstOrDefault(n => n.Id == p).Id;
                helperProject.AddUserToProject(userId, pid);
            }
            return(RedirectToAction("ListProjectsAndUsers"));
        }
Example #6
0
        public ActionResult RemoveProjectsFromUser(string UserId, [Bind(Include = "assignedProjects,selectedAssignedProjects")] ProjectToUser model,
                                                   string removeButton)
        {
            var userList       = new List <ApplicationUser>();
            var helperProject  = new UserProjectHelper();
            var ListOfProjects = db.Projects.OrderBy(p => p.Name).ToList().Select(pp => pp.Name.ToString()).ToList();


            foreach (var p in model.selectedAssignedProjects)
            {
                int pId = db.Projects.FirstOrDefault(n => n.Name == p).Id;
                helperProject.RemoveUserFromProject(UserId, pId);
            }

            return(RedirectToAction("ListProjectsAndUsers"));
        }
Example #7
0
        public ActionResult AssignUsersToProject(int pid)
        {
            var userList      = new List <ApplicationUser>();
            var helperProject = new UserProjectHelper();

            var ListOfProjects = db.Projects.OrderBy(p => p.Name).ToList().Select(pp => pp.Name.ToString()).ToList();

            UserToProject userToProject = new UserToProject();

            userToProject.ProjectId         = pid;
            userToProject.availableProjects = new MultiSelectList(ListOfProjects);

            userToProject.usersOnProject = new MultiSelectList(helperProject.UsersOnProject(pid).OrderBy(u => u.DisplayName), "Id", "DisplayName", null);

            var usersNotOnProject = helperProject.UsersNotOnProject(pid).OrderBy(u => u.DisplayName);

            userToProject.usersNotOnProjects = new MultiSelectList(usersNotOnProject, "Id", "DisplayName", null);


            return(View("AssignUsersToProject", userToProject));
        }
Example #8
0
        protected override void Seed(Wray_Tracker.Models.ApplicationDbContext context)
        {
            #region Create roles
            var roleManager = new RoleManager <IdentityRole>(
                new RoleStore <IdentityRole>(context));

            if (!context.Roles.Any(r => r.Name == "Admin"))
            {
                roleManager.Create(new IdentityRole {
                    Name = "Admin"
                });
            }

            if (!context.Roles.Any(r => r.Name == "Manager"))
            {
                roleManager.Create(new IdentityRole {
                    Name = "Manager"
                });
            }

            if (!context.Roles.Any(r => r.Name == "Developer"))
            {
                roleManager.Create(new IdentityRole {
                    Name = "Developer"
                });
            }

            if (!context.Roles.Any(r => r.Name == "Submitter"))
            {
                roleManager.Create(new IdentityRole {
                    Name = "Submitter"
                });
            }
            #endregion

            #region Add Users and Assign Roles

            var userStore    = new UserStore <ApplicationUser>(context);
            var userManager  = new UserManager <ApplicationUser>(userStore);
            var demoPassword = WebConfigurationManager.AppSettings["DemoPassword"];

            // Assigning Roles of the Admin and Manager
            if (!context.Users.Any(u => u.Email == "*****@*****.**"))
            {
                var user = new ApplicationUser
                {
                    UserName    = "******",
                    Email       = "*****@*****.**",
                    FirstName   = "Ashton",
                    LastName    = "Wray",
                    DisplayName = "Ashton"
                };

                // This line creates the User in the DB
                userManager.Create(user, "M@urice1");

                // This line attaches the Role of Admin to this specific user
                userManager.AddToRoles(user.Id, "Admin");
            }

            // Same thing goes for the Manager
            if (!context.Users.Any(u => u.Email == "*****@*****.**"))
            {
                var user = new ApplicationUser
                {
                    UserName    = "******",
                    Email       = "*****@*****.**",
                    FirstName   = "Jason",
                    LastName    = "Twichell",
                    DisplayName = "Prof"
                };

                // This line creates the User in the DB
                userManager.Create(user, "Abc&123!");

                // This line attaches the Role of Manager to this specific user
                userManager.AddToRoles(user.Id, "Manager");
            }

            // And for now since I don't know if this right
            // This will be for the Developer
            if (!context.Users.Any(u => u.Email == "*****@*****.**"))
            {
                var user = new ApplicationUser
                {
                    UserName    = "******",
                    Email       = "*****@*****.**",
                    FirstName   = "Andrew",
                    LastName    = "Russell",
                    DisplayName = "Stache"
                };

                // This line creates the User in the DB
                userManager.Create(user, "Abc&123!");

                // This line attaches the Role of Developer to this specific user
                userManager.AddToRoles(user.Id, "Developer");
            }

            // Also for the Submitter
            if (!context.Users.Any(u => u.Email == "*****@*****.**"))
            {
                var user = new ApplicationUser
                {
                    UserName    = "******",
                    Email       = "*****@*****.**",
                    FirstName   = "Ashton",
                    LastName    = "Wray",
                    DisplayName = "Ash"
                };

                // This line creates the User in the DB
                userManager.Create(user, "M@urice1");

                // This line attaches the Role of Submitter to this specific user
                userManager.AddToRoles(user.Id, "Submitter");
            }

            // Demo Users
            if (!context.Users.Any(u => u.Email == "*****@*****.**"))
            {
                var user = new ApplicationUser
                {
                    UserName       = "******",
                    Email          = "*****@*****.**",
                    FirstName      = "Bob",
                    LastName       = "Tester",
                    DisplayName    = "Bob",
                    EmailConfirmed = true
                };

                // This line creates the User in the DB
                userManager.Create(user, demoPassword);

                // This line attaches the Role of Submitter to this specific user
                userManager.AddToRoles(user.Id, "Admin");
            }

            if (!context.Users.Any(u => u.Email == "*****@*****.**"))
            {
                var user = new ApplicationUser
                {
                    UserName       = "******",
                    Email          = "*****@*****.**",
                    FirstName      = "Dave",
                    LastName       = "Tester",
                    DisplayName    = "Dave",
                    EmailConfirmed = true
                };

                // This line creates the User in the DB
                userManager.Create(user, demoPassword);

                // This line attaches the Role of Submitter to this specific user
                userManager.AddToRoles(user.Id, "Manager");
            }

            if (!context.Users.Any(u => u.Email == "*****@*****.**"))
            {
                var user = new ApplicationUser
                {
                    UserName       = "******",
                    Email          = "*****@*****.**",
                    FirstName      = "Mary",
                    LastName       = "Tester",
                    DisplayName    = "Mary",
                    EmailConfirmed = true
                };

                // This line creates the User in the DB
                userManager.Create(user, demoPassword);

                // This line attaches the Role of Submitter to this specific user
                userManager.AddToRoles(user.Id, "Developer");
            }

            if (!context.Users.Any(u => u.Email == "*****@*****.**"))
            {
                var user = new ApplicationUser
                {
                    UserName       = "******",
                    Email          = "*****@*****.**",
                    FirstName      = "Jamie",
                    LastName       = "Tester",
                    DisplayName    = "Jamie",
                    EmailConfirmed = true
                };

                // This line creates the User in the DB
                userManager.Create(user, demoPassword);

                // This line attaches the Role of Submitter to this specific user
                userManager.AddToRoles(user.Id, "Submitter");
            }
            #endregion


            #region Load up Ticket Types

            context.TicketTypes.AddOrUpdate(
                t => t.Name,
                new TicketType {
                Name = "Defect"
            },
                new TicketType {
                Name = "Software"
            },
                new TicketType {
                Name = "Hardware"
            },
                new TicketType {
                Name = "UI"
            },
                new TicketType {
                Name = "Other"
            }

                );


            #endregion

            #region Load up Ticket Priorities

            context.TicketPriorities.AddOrUpdate(
                t => t.Name,
                new TicketPriority {
                Name = "Immediate"
            },
                new TicketPriority {
                Name = "High"
            },
                new TicketPriority {
                Name = "Medium"
            },
                new TicketPriority {
                Name = "Low"
            },
                new TicketPriority {
                Name = "On Hold"
            }
                );


            #endregion

            #region Load up Ticket Status

            context.TicketStatus.AddOrUpdate(
                t => t.Name,
                new TicketStatus {
                Name = "New"
            },
                new TicketStatus {
                Name = "Assigned"
            },
                new TicketStatus {
                Name = "Resolved"
            },
                new TicketStatus {
                Name = "Reopened"
            },
                new TicketStatus {
                Name = "Archived"
            }
                );


            #endregion

            #region Seed a Demo Project

            context.Projects.AddOrUpdate(
                t => t.Name,
                new Project {
                Name        = "Seeded Project",
                Description = "Seeded project to make sure to always have a Project in place ",
                Created     = DateTime.Now
            });

            context.SaveChanges();
            #endregion

            #region Seed a Demo Ticket
            // Store the newly created Project in a variable in case we need properties from it
            var seededProjectId = context.Projects.FirstOrDefault(p => p.Name == "Seeded Project").Id;

            // I have made the decision that this Seeded Ticket will be a Type of 'Defect'
            var seededTicketTypeId = context.TicketTypes.FirstOrDefault(t => t.Name == "Defect").Id;

            // I have decided that this weeded Ticket will be an Immediate priority
            var seededTicketPriorityId = context.TicketPriorities.FirstOrDefault(t => t.Name == "Immediate").Id;

            var seededTicketStatusId = context.TicketStatus.FirstOrDefault(t => t.Name == "New").Id;

            var seededSubmitterId = context.Users.FirstOrDefault(u => u.Email == "*****@*****.**").Id;

            // I have to associate this submitter with the project
            var projHelper = new UserProjectHelper();
            projHelper.AddUserToProject(seededSubmitterId, seededProjectId);


            context.Tickets.AddOrUpdate(
                t => t.Title,
                new Ticket()
            {
                Title            = "Seeded Ticket 1",
                Description      = "A well formed description of some defect",
                Created          = DateTime.Now,
                ProjectId        = seededProjectId,
                TicketTypeId     = seededTicketTypeId,
                TicketPriorityId = seededTicketPriorityId,
                TicketStatusId   = seededTicketStatusId,
                SubmitterId      = seededSubmitterId
            });

            #endregion


            //  This method will be called after migrating to the latest version.

            //  You can use the DbSet<T>.AddOrUpdate() helper extension method
            //  to avoid creating duplicate seed data.
        }