Exemplo n.º 1
0
        public async Task <APIResponse> RegisterAsync(RegistrationRequest request)
        {
            ApplicationUser exsistingUserFoundByEmail = await _userManager.FindByEmailAsync(request.Email);

            if (exsistingUserFoundByEmail != null)
            {
                throw new BusinessException(ErrorCodes.ExsitingEmail);
            }

            ApplicationUser exsistingUserFoundByPhoneNumber = _userManager.Users.Where(u => u.PhoneNumber == request.PhoneNumber).FirstOrDefault();

            if (exsistingUserFoundByPhoneNumber != null)
            {
                throw new BusinessException(ErrorCodes.ExsitingPhoneNumber);
            }

            ApplicationUser newUser = new ApplicationUser
            {
                Email       = request.Email,
                UserName    = request.Email,
                FullName    = request.FullName,
                PhoneNumber = request.PhoneNumber
            };

            var creationResult = await _userManager.CreateAsync(newUser, request.Password);

            if (!creationResult.Succeeded)
            {
                return(new FailedAPIResponse(ErrorCodes.IdentityError, creationResult));
            }

            var response = _mapper.Map <RegistrationResponse>(newUser);

            response.Token = GenerateAuthenticationResult(newUser);

            return(SuccessAPIResponseWrapper.Wrap(response));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Login([FromBody] LoginRequest request)
        {
            var authResponse = await _accountService.LoginAsync(request);

            return(Ok(SuccessAPIResponseWrapper.Wrap(authResponse)));
        }