public ActionResult Register(RegistrationData registrationData) { ActionResult actionResult; var validationResult = registrationDataValidator.Validate(registrationData); if (validationResult.IsValid) { var email = registrationData.Email; var password = registrationData.Password; var firstName = registrationData.FirstName; var lastName = registrationData.LastName; if (registrationService.CheckIfEmailExists(email)) { actionResult = BadRequest(new ErrorData() { ErrorMessages = new string[] { ErrorMessages.EmailAlreadyExists } }); } else { var hashedPassword = BCrypt.Net.BCrypt.HashPassword(password); var account = Account.Create(email, hashedPassword, firstName, lastName); registrationService.CreateAccount(account); actionResult = Ok(); } } else { actionResult = BadRequest(new ErrorData() { ErrorMessages = validationResult.Errors.ConvertToErrorMessages() }); } return(actionResult); }