public async Task <T> FindAsync(UserLoginInfo login) { login.ThrowIfNull("login"); _log.DebugFormat("Finding user by external login: {0}, {1}", login.LoginProvider, login.ProviderKey); var indexItem = new UserExternalLoginIndex(login); var index = await _identityTables.RetrieveUserExternalLoginIndexAsync(indexItem); _log.DebugFormat("REsult of finding user by external login: {0}", index); return(index == null ? null : await FindByIdAsync(index.UserId)); }
private async Task CreateExternalLoginIndex(T user, UserLoginInfo login) { var loginIndex = new UserExternalLoginIndex(login, user.Id); try { _log.DebugFormat("Creating external login index for user: {0} [{1}, {2}]", user, login.LoginProvider, login.ProviderKey); await _identityTables.InsertUserExternalLoginIndexTableEntity(loginIndex); } catch (StorageException ex) { if (ex.RequestInformation.HttpStatusCode == 409) { throw new DuplicateExternalLoginException(); } _log.Error(ex.Message, ex); throw; } }
public async Task <UserExternalLoginIndex> RetrieveUserExternalLoginIndexAsync(UserExternalLoginIndex entity) { return(await RetrieveAsync(_userExternalLoginsIndexTable, entity)); }
public Task <TableResult> DeleteUserExternalLoginIndexTableEntity(UserExternalLoginIndex entity) { return(DeleteAsync(_userExternalLoginsIndexTable, entity)); }
public Task <TableResult> InsertUserExternalLoginIndexTableEntity(UserExternalLoginIndex entity) { return(InsertAsync(_userExternalLoginsIndexTable, entity)); }