public async Task AddAsync_UsernameNotExists_True()
        {
            //Arrange
            _userRepositoryMock.Setup(m => m.UsernameExistsAsync(It.IsAny <string>())).Returns(() => Task.FromResult(false));
            _userRepositoryMock.Setup(m => m.AddAsync(It.IsAny <User>())).Returns(() => Task.FromResult(User.Id));
            UserBusiness userBusiness = new UserBusiness(_userRepositoryMock.Object, _roleRepositoryMock.Object, _emailServiceMock.Object);

            //Act
            bool result = await userBusiness.AddAsync(User);

            //Assert
            Assert.True(result);
        }
        public async Task <ActionResult> Post([FromBody] User user)
        {
            try
            {
                if (await _userBusiness.AddAsync(user))
                {
                    UserDto userDto = _mapper.Map <UserDto>(user);

                    return(CreatedAtAction(nameof(GetById), new { id = user.Id }, userDto));
                }

                return(BadRequest());
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Ocorreu um erro ao salvar o usuário");
                return(StatusCode(500, $"Ocorreu um erro ao salvar o usuário. User: {user}"));
            }
        }