Database files are added to the mru instead of the fal

Simplify opening database workflow
Corrected opening from recent bug
This commit is contained in:
Geoffroy BONNEVILLE
2020-04-24 13:58:30 +02:00
parent d211453553
commit eacb3b182e
9 changed files with 25 additions and 58 deletions

View File

@@ -7,9 +7,8 @@ namespace ModernKeePass.Application.Common.Interfaces
public interface IRecentProxy
{
int EntryCount { get; }
Task<FileInfo> Get(string token, bool updateAccessTime = false);
Task<byte[]> Get(string token, bool updateAccessTime = true);
IEnumerable<FileInfo> GetAll();
Task Add(FileInfo recentItem);
void ClearAll();
}
}

View File

@@ -9,18 +9,15 @@ namespace ModernKeePass.Application.Database.Commands.CloseDatabase
public class CloseDatabaseCommandHandler : IRequestHandler<CloseDatabaseCommand>
{
private readonly IDatabaseProxy _database;
private readonly IFileProxy _file;
public CloseDatabaseCommandHandler(IDatabaseProxy database, IFileProxy file)
public CloseDatabaseCommandHandler(IDatabaseProxy database)
{
_database = database;
_file = file;
}
public void Handle(CloseDatabaseCommand message)
{
if (!_database.IsOpen) throw new DatabaseClosedException();
_database.CloseDatabase();
_file.ReleaseFile(_database.FileAccessToken);
// Cleanup
_database.FileAccessToken = null;

View File

@@ -16,18 +16,20 @@ namespace ModernKeePass.Application.Database.Queries.OpenDatabase
{
private readonly IDatabaseProxy _database;
private readonly IFileProxy _file;
private readonly IRecentProxy _recent;
public OpenDatabaseQueryHandler(IDatabaseProxy database, IFileProxy file)
public OpenDatabaseQueryHandler(IDatabaseProxy database, IFileProxy file, IRecentProxy recent)
{
_database = database;
_file = file;
_recent = recent;
}
public async Task Handle(OpenDatabaseQuery message)
{
if (_database.IsDirty) throw new DatabaseOpenException();
var file = await _file.OpenBinaryFile(message.FilePath);
var file = await _recent.Get(message.FilePath);
var hasKeyFile = !string.IsNullOrEmpty(message.KeyFilePath);
await _database.Open(file, new Credentials
{