// GET: Tickets/Create
        public async Task <IActionResult> Create(int?id)
        {
            TempData["InTicketsPage"] = true;
            if (id != null)
            {
                // Instanciate a new ticket and set the project id there
                ViewData["ProjectIdGET"] = id.Value;
                var model = new Ticket();
                model.ProjectId = id.Value;
                model.Project   = _context.Projects.Find(id.Value);
                var users      = _context.Users.ToList();
                var developers = new List <BTUser>();
                foreach (var developer in users)
                {
                    if (await _rolesService.IsUserInRole(developer, "Developer"))
                    {
                        developers.Add(developer);
                    }
                }
                if (User.IsInRole("Admin") || User.IsInRole("ProjectManager"))
                {
                    ViewData["DeveloperUserId"]  = new SelectList(developers, "Id", "FullName");
                    ViewData["TicketPriorityId"] = new SelectList(_context.TicketPriorities, "Id", "Name");
                    ViewData["TicketStatusId"]   = new SelectList(_context.TicketStatuses, "Id", "Name");
                    ViewData["TicketTypeId"]     = new SelectList(_context.TicketTypes, "Id", "Name");
                }
                if (User.IsInRole("Developer"))
                {
                    ViewData["TicketPriorityId"] = new SelectList(_context.TicketPriorities, "Id", "Name");
                    ViewData["TicketStatusId"]   = new SelectList(_context.TicketStatuses, "Id", "Name");
                    ViewData["TicketTypeId"]     = new SelectList(_context.TicketTypes, "Id", "Name");
                }

                return(View(model));
            }
            if (User.IsInRole("Submitter"))
            {
                ViewData["ProjectId"]        = new SelectList(_context.Projects, "Id", "Name");
                ViewData["TicketPriorityId"] = new SelectList(_context.TicketPriorities, "Id", "Name");
                ViewData["DeveloperUserId"]  = new SelectList(_context.Users, "Id", "FullName");
            }
            return(View());
        }
예제 #2
0
        // GET: ManageUserRoles
        public async Task <IActionResult> SetRoles()
        {
            TempData["InSetRolesPage"] = true;
            //List<ManageUserRolesViewModel> model = new List<ManageUserRolesViewModel>();
            //List<BTUser> users = _context.Users.ToList();

            //foreach(var user in users)
            //{
            //  ManageUserRolesViewModel vm = new ManageUserRolesViewModel();
            //  vm.User = user;
            //  var selected = await _BTRoles.ListUserRoles(user);
            //  vm.Roles = new MultiSelectList(_context.Roles, "Name", "Name", selected);
            //  model.Add(vm);
            //}

            List <ManageUserRolesViewModel> model = new List <ManageUserRolesViewModel>();
            List <BTUser> users = _context.Users.ToList();

            foreach (var user in users)
            {
                ManageUserRolesViewModel vm = new ManageUserRolesViewModel();
                if (!await _BTRoles.IsUserInRole(user, "Demo") && !await _BTRoles.IsUserInRole(user, "Admin"))
                {
                    vm.UserId   = user.Id;
                    vm.UserName = user.FullName;
                    var selected = await _BTRoles.ListUserRoles(user);

                    // Figure out how to limit the selectList
                    vm.Roles    = new SelectList(_context.Roles, "Name", "Name", selected);
                    vm.UserRole = await _BTRoles.ListUserRoles(user);

                    model.Add(vm);
                }
            }

            return(View(model));
        }
        // GET: ManageProjectUsers/projectId
        public async Task <IActionResult> ManageProjectUsers()
        {
            //// Display a list of users
            //var model = new ManageProjectUsersViewModel();
            //// Set vm's Project property to the currently selected project
            //model.Project = _context.Projects.Find(id);
            //// Get a list of users for the selectList
            //List<BTUser> users = await _context.Users.ToListAsync();
            //// Get a list of current members for the selectList
            //List<BTUser> members = (List<BTUser>)await _projectService.UsersOnProject(id);
            //// Set our Users property on the vm
            //model.Users = new MultiSelectList(users, "Id", "FullName", members);
            //// send the vm to the view
            ///

            TempData["InUserAssignmentsPage"] = true;

            // New Version - Display a list of users
            // For each user display a list of projects
            // Assign project to user button

            // Have a viewmodel for each user project assignment
            var model = new List <ManageProjectUsersViewModel>();
            // Get all users
            var users = await _context.Users.ToListAsync();

            foreach (var user in users)
            {
                var vm = new ManageProjectUsersViewModel();
                if (!await _rolesService.IsUserInRole(user, "Demo"))
                {
                    vm.User     = user;
                    vm.UserRole = await _rolesService.ListUserRoles(user);

                    vm.CurrentProjects = await _projectService.ListUserProjects(user.Id);

                    var projects = await _context.Projects.ToListAsync();

                    vm.Projects = new SelectList(projects, "Id", "Name");
                    model.Add(vm);
                }
            }



            return(View(model));
        }