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)); }
public async Task <IActionResult> Login([FromBody] LoginRequest request) { var authResponse = await _accountService.LoginAsync(request); return(Ok(SuccessAPIResponseWrapper.Wrap(authResponse))); }