public OutputDtoAddUser Create(InputDtoAddUser inputDtoAddUser) { //DTO --> Domain var userFromDto = _userFactory.CreateUserFromValues(inputDtoAddUser.Name, inputDtoAddUser.Password, inputDtoAddUser.Email, "user"); //Repository demande un element du domain var usersInDb = _userRepository.Query(); foreach (var user in usersInDb) { if (user.Email == userFromDto.Email || user.Name == userFromDto.Name) { throw new Exception("User already in database"); } } //On crée l'utilisateur var userInDb = _userRepository.Create(userFromDto); //Domain -> DTO return(new OutputDtoAddUser { Id = userInDb.Id, Name = userInDb.Name, Role = userInDb.Role, Email = userInDb.Email, Password = userInDb.Password }); }
public void Create_InputDtoAddUser_ThrowsAlreadyInDBException() { var input = new InputDtoAddUser("name", "password", "email"); _userFactory.CreateUserFromValues(input.Name, input.Password, input.Email, "user").Returns(new User(input.Name, input.Password, input.Email, "user")); _userRepository.Query().Returns(getUserList()); var exception = Assert.Throws <Exception>(() => _userService.Create(input)); Assert.AreEqual("User already in database", exception.Message); }
public ActionResult <OutputDtoAuthenticateUser> Post( [FromBody] InputDtoAddUser user) { try { var response = _userService.Create(user); return(Ok(response)); } catch (DuplicateSqlPrimaryException e) { return(BadRequest(new { message = e.Message })); } }
public OutputDtoAuthenticateUser Create(InputDtoAddUser user) { var userFromDb = _userRepository.Create(new User { Firstname = user.Firstname, Lastname = user.Lastname, Birthdate = user.Birthdate, Email = user.Email, EncryptedPassword = _passwordEncryption.HashPassword(new User(), user.PasswordUser), Gender = user.Gender[0] }); var token = GenerateJwtToken(userFromDb); return(new OutputDtoAuthenticateUser(userFromDb, token)); }
public void Create_InputDtoAddUser_AreSame() { var input = new InputDtoAddUser("nameUser", "password", "emailUser"); _userFactory.CreateUserFromValues(input.Name, input.Password, input.Email, "user").Returns(new User(input.Name, input.Password, input.Email, "user")); var iuser = _userFactory.CreateUserFromValues(input.Name, input.Password, input.Email, "user"); _userRepository.Query().Returns(getUserList()); _userRepository.Create(iuser).Returns(new User(input.Name, input.Password, input.Email, "user")); var res = _userService.Create(input); var expected = new OutputDtoAddUser("nameUser", "password", "emailUser", "user"); Assert.AreEqual(expected, res); }