Example #1
0
        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));
        }
Example #2
0
        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));
 }