Esempio n. 1
0
        public async Task <RegisterUserResponse> Register(CreateUserRegisterCommand createUserRegisterCommand)
        {
            try
            {
                createUserRegisterCommand.Email = createUserRegisterCommand.Email.ToLower();

                if (await _authRepository.UserExists(createUserRegisterCommand.Email))
                {
                    return(new RegisterUserResponse("Email is already taken"));
                }

                var userToCreate = new User
                {
                    Id    = Guid.NewGuid(),
                    Email = createUserRegisterCommand.Email
                };

                _authRepository.Register(userToCreate, createUserRegisterCommand.Password);
                await _unitOfWork.Commit();

                return(new RegisterUserResponse());
            }
            catch (Exception ex)
            {
                return(new RegisterUserResponse($"An error occurred when registering the user: {ex.Message}"));
            }
        }
        public async Task <IActionResult> Register([FromBody] CreateUserRegisterCommand createUserRegisterCommand)
        {
            var registerResult = await _mediator.Send(createUserRegisterCommand);

            if (!registerResult.Success)
            {
                return(BadRequest(new ErrorResource(registerResult.Message)));
            }

            var loginUserResource = _mapper.Map <CreateUserRegisterCommand, LoginUserCommand>(createUserRegisterCommand);

            var loginResult = await _mediator.Send(loginUserResource);

            if (!loginResult.Success)
            {
                return(BadRequest(new ErrorResource(loginResult.Message)));
            }

            Response.Headers.Add(Authorization, loginResult.Token);
            return(Ok());
        }