// 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)); }
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)); }
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)); }