Exemplo n.º 1
0
        // GET: Users
        public ActionResult Index()
        {
            var users = _repo.GetUsersTable();
            var vm    = new List <UserWithRolesViewModel>();

            foreach (var user in users)
            {
                var userVm = new UserWithRolesViewModel()
                {
                    User = user
                };
                var roleStr   = "";
                var userRoles = _repo.GetUserRoles(user.Id);

                // Only adding User if its not a customer or it has a role other than customer
                if (userRoles.Count >= 2 || userRoles.Any(ur => ur.RoleId == StaticVariables.CustomerRoleId) == false)
                {
                    for (var i = 0; i < userRoles.Count; i++)
                    {
                        var role = _repo.GetRole(userRoles[i].RoleId);
                        roleStr += $"{role.RoleNameLocal}";
                        if (i < userRoles.Count - 1)
                        {
                            roleStr += ", ";
                        }
                    }
                    userVm.Roles = roleStr;
                    vm.Add(userVm);
                }
            }
            return(View(vm));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Roles(string id)
        {
            var user = await this.userManager.FindByIdAsync(id);

            if (user == null)
            {
                return(NotFound());
            }

            var userRoles = await this.userManager.GetRolesAsync(user);

            var userWithRolew = new UserWithRolesViewModel()
            {
                Id       = user.Id,
                UserName = user.UserName,
                Roles    = userRoles
            };

            return(View(userWithRolew));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> UsersWithRoles(int pageNumber = 1)
        {
            var users = _unitOfWork.UserRepository
                        .GetAll()
                        .ToList();

            var itemsToSkip   = (pageNumber * AppConstants.ItemsPerPage) - AppConstants.ItemsPerPage;
            var dataToDisplay = users.Skip(itemsToSkip).Take(AppConstants.ItemsPerPage);

            var model = new List <UserWithRolesModel>();

            foreach (var user in dataToDisplay)
            {
                var roles = await _userManager.GetRolesAsync(user);

                if (roles.Contains(AppConstants.AdminUser))
                {
                    user.IsAdmin = true;
                }

                model.Add(new UserWithRolesModel()
                {
                    Roles = string.Join(", ", roles), ApplicationUser = user
                });
            }
            var pagingInfo = new PaginationDetails()
            {
                TotalItems   = users.Count(),
                CurrentPage  = pageNumber,
                ItemsPerPage = AppConstants.ItemsPerPage,
                Url          = "/Users/UsersWithRoles"
            };

            var viewModel = new UserWithRolesViewModel()
            {
                PageModel = pagingInfo, Users = model
            };

            return(View(viewModel));
        }