Exemplo n.º 1
0
        public async Task <IActionResult> DemoteUser([FromBody] UserDemotionDto dto)
        {
            User user = await _accountBl.GetUserById(dto.UserId);

            if (user == null)
            {
                return(BadRequest($"User with id: {dto.UserId} not found"));
            }

            if (!await _accountBl.RoleExistsAsync(dto.Role))
            {
                return(BadRequest($"Role \"{dto.Role}\" not found"));
            }

            if (!await _accountBl.IsInRoleAsync(user, dto.Role))
            {
                return(BadRequest($"User already Demoted from Role \"{dto.Role}\""));
            }

            await _accountBl.RemoveFromRoleAsync(user, dto.Role);

            await _accountBl.UpdateAsync(user);

            return(Ok($"User \"{dto.UserId}\" successfully demoted from Role \"{dto.Role}\""));
        }