public async Task <IActionResult> Register([FromBody] AuthRegisterForm registerForm)
        {
            var checkEmail = await _userService.CheckIfUserWithEmailExist(registerForm.Email);

            if (checkEmail)
            {
                throw new HttpStatusCodeException(HttpStatusCode.Conflict, "User with that email exist");
            }
            var registedUserInfo = await _authService.RegisterNewUser(registerForm);

            if (registedUserInfo == null)
            {
                return(StatusCode(500));
            }
            var accessToken = await _authService.GetAccessToken(registerForm.Email, registerForm.Password);

            var refreshToken = await _authService.GetRefreshToken(registerForm.Email, registerForm.Password);

            return(refreshToken != null && accessToken != null ? (IActionResult)StatusCode(201, new TokenResponse()
            {
                AccessToken = accessToken, RefreshToken = refreshToken
            }) : StatusCode(500));
        }
예제 #2
0
        public async Task <UserConfirmedRegistation> RegisterNewUser(AuthRegisterForm authRegisterForm)
        {
            var UserRegisterForm = Guard.Argument(authRegisterForm, nameof(authRegisterForm)).NotNull().Value;
            var user             = new User()
            {
                Email    = UserRegisterForm.Email,
                Password = PasswordHasher(UserRegisterForm.Password),
                Role     = "Client"
            };

            _context.Users.Add(user);

            var client = new Client()
            {
                UserId   = user.UserId,
                Address  = UserRegisterForm.Address,
                City     = UserRegisterForm.City,
                Name     = UserRegisterForm.Name,
                PostCode = int.Parse(UserRegisterForm.PostCode),
                State    = UserRegisterForm.State,
                NIP      = UserRegisterForm.NIP == "" && UserRegisterForm.NIP == null ? null : UserRegisterForm.NIP
            };

            _context.Clients.Add(client);


            if (await _context.SaveChangesAsync() != 0)
            {
                return(new UserConfirmedRegistation()
                {
                    Login = user.Email
                });
            }

            throw new HttpStatusCodeException(HttpStatusCode.InternalServerError, _localizer["User couldn't be registered"]);
        }