Exemplo n.º 1
0
        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);
        }