private async Task <User> RegisterUserFromExternalService(ExternalRegisterUserDto externalUser, LoginProvider loginProvider) { var user = Mapper.Map <User>(externalUser); user.RegisteredWith = loginProvider; var result = await UserManager.CreateAsync(user); return(result.Succeeded ? user : null); }
private async Task <Result <TokenDto> > Login(ExternalRegisterUserDto externalUser, LoginProvider loginProvider) { var user = await UserManager.GetByAsync(x => x.Email == externalUser.Email); if (user == null) { user = await RegisterUserFromExternalService(externalUser, loginProvider); } if (user == null) { return(Result <TokenDto> .Failure()); } return(CreateTokenResponse(user, loginProvider, externalUser.AccessToken)); }