コード例 #1
0
        public async Task <ActionResult <IEnumerable <RoleUserResponse> > > GetRoleUsers(string id)
        {
            var identityRole = await _roleManager.Roles.AsNoTracking().FirstOrDefaultAsync(r => r.Id == id);

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

            var roleUserResponses = new List <RoleUserResponse>();
            var users             = await _userManager.Users.AsNoTracking().ToListAsync();

            foreach (var user in users)
            {
                var roleUserResponse = new RoleUserResponse
                {
                    Id     = user.Id,
                    Name   = user.UserName,
                    OnRule = await _userManager.IsInRoleAsync(user, identityRole.Name)
                };

                roleUserResponses.Add(roleUserResponse);
            }

            return(roleUserResponses);
        }
コード例 #2
0
        public async Task <IActionResult> Get(string id)
        {
            try
            {
                IdentityRole identityRole = await _roleManager.FindByIdAsync(id);

                if (identityRole == null)
                {
                    throw new Exception("Role not found");
                }

                List <RoleUserResponse> roleUserResponses = new List <RoleUserResponse>();
                foreach (var user in await _userManager.Users.ToListAsync())
                {
                    var roleUserResponse = new RoleUserResponse
                    {
                        Id     = user.Id,
                        Name   = $"{user.FirstName} {user.LastName}",
                        OnRule = await _userManager.IsInRoleAsync(user, identityRole.Name)
                    };
                    roleUserResponses.Add(roleUserResponse);
                }

                return(Ok(roleUserResponses));
            }
            catch (Exception ex)
            {
                _logger.LogError($"Get error: {ex.Message} - Id: {id}");
                return(BadRequest());
            }
        }