public async Task <IKeePassDatabase> UnlockAsync(KeePassId id, ICredentialProvider credentialProvider) { Log.Info("Unlock {Database}", id); var dbFile = await _fileAccess.GetDatabaseAsync(id); Debug.Assert(dbFile != null); var credentials = await credentialProvider.GetCredentialsAsync(dbFile); if (credentials.Equals(default(KeePassCredentials))) { Log.Warning("Failed to retrieve credentials for {Database}", id); return(null); } Log.Info("Successfully retrieved credentials for {Database}", id); return(await UnlockAsync(dbFile, credentials)); }