public async Task <IHttpActionResult> Register(RegisterUserTO registerUserTO)
        {
            if (registerUserTO.Password != registerUserTO.ConfirmPassword)
            {
                return(BadRequest(UserENUM.DIFFERENT_PASSWORDS.ToString()));
            }

            if (await _authService.CheckIfUserExists(registerUserTO.UserName))
            {
                return(BadRequest(UserENUM.USERNAME_ALREADY_TAKEN.ToString()));
            }

            bool emailExists = _authService.CheckIfEmailExists(registerUserTO.Email);

            if (emailExists)
            {
                return(BadRequest(UserENUM.EMAIL_ALREADY_TAKEN.ToString()));
            }

            bool result = await _authService.RegisterUser(registerUserTO);

            if (!result)
            {
                logger.Log(LogLevel.Error, "Unable to create user with name " + registerUserTO.UserName);
                return(BadRequest(UserENUM.UNABLE_REGISTER.ToString()));
            }

            logger.Log(LogLevel.Info, "User " + registerUserTO.UserName + " was created.\n");
            return(StatusCode(HttpStatusCode.Created));
        }
Example #2
0
        public async Task <bool> RegisterUser(RegisterUserTO registerUserTO)
        {
            using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
            {
                var userModel = new ApplicationUser
                {
                    UserName = registerUserTO.UserName,
                    Email    = registerUserTO.Email
                };

                var resultUserId = await _authRepository.RegisterUser(userModel, registerUserTO.Password);

                if (resultUserId != "")
                {
                    scope.Complete();

                    ApplicationCache <UserInfoTO> .AddCacheItem(new UserInfoTO()
                    {
                        Id       = resultUserId,
                        UserName = registerUserTO.UserName,
                        Email    = registerUserTO.Email,
                        Roles    = new List <string>()
                    });

                    return(true);
                }

                return(false);
            }
        }