public async Task <AddUserExternalLoginResponse> Handle(AddUserExternalLoginCommand command, CancellationToken token) { var userExternalLoginInfo = await _userExternalLoginService.GetUserExternalLoginInfo(command.User); if (userExternalLoginInfo == null) { return(new AddUserExternalLoginResponse() { IdentityResult = IdentityResult.Failed(new IdentityError() { Description = $"Unexpected error occurred loading external login info for user with ID '{command.User.Id}'." }) }); } var identityResult = await _userExternalLoginService.AddUserExternalLogin(command.User, userExternalLoginInfo); return(new AddUserExternalLoginResponse() { IdentityResult = identityResult }); }
public async Task <LoginExternalResponse> Handle(LoginExternalCommand command, CancellationToken token) { var info = await _userExternalLoginService.GetUserExternalLoginInfo(); if (info == null) { return(new LoginExternalResponse() { ExternalLoginInfo = null }); } var result = await _externalLoginService.ExternalLoginSignIn(info.LoginProvider, info.ProviderKey, isPersistent : false); return(new LoginExternalResponse() { ExternalLoginInfo = info, LoginResult = new LoginResult() { SignInResult = result } }); }