WIP ViewModelLocator - Messenger and Recent issues

Refactoring
Code cleanup
This commit is contained in:
Geoffroy BONNEVILLE
2020-04-23 19:00:38 +02:00
parent 2b8f9bd5f0
commit d211453553
59 changed files with 309 additions and 934 deletions

View File

@@ -8,6 +8,7 @@ namespace ModernKeePass.Application.Common.Interfaces
{
public interface IDatabaseProxy
{
// PW Database properties
bool IsOpen { get; }
string Name { get; }
string RootGroupId { get; }
@@ -16,6 +17,8 @@ namespace ModernKeePass.Application.Common.Interfaces
string KeyDerivationId { get; set; }
string Compression { get; set; }
bool IsRecycleBinEnabled { get; set; }
// Custom properties
string FileAccessToken { get; set; }
int Size { get; set; }
bool IsDirty { get; set; }

View File

@@ -21,7 +21,11 @@ namespace ModernKeePass.Application.Database.Commands.CloseDatabase
if (!_database.IsOpen) throw new DatabaseClosedException();
_database.CloseDatabase();
_file.ReleaseFile(_database.FileAccessToken);
// Cleanup
_database.FileAccessToken = null;
_database.IsDirty = false;
_database.Size = 0;
}
}
}

View File

@@ -29,7 +29,7 @@ namespace ModernKeePass.Application.Database.Commands.CreateDatabase
public async Task Handle(CreateDatabaseCommand message)
{
if (_database.IsOpen) throw new DatabaseOpenException();
if (_database.IsDirty) throw new DatabaseOpenException();
var version = DatabaseVersion.V2;
switch (message.Version)
@@ -48,8 +48,6 @@ namespace ModernKeePass.Application.Database.Commands.CreateDatabase
Password = message.Password
}, message.Name, version);
_database.FileAccessToken = message.FilePath;
var contents = await _database.SaveDatabase();
await _file.WriteBinaryContentsToFile(_database.FileAccessToken, contents);
if (message.CreateSampleData)
{

View File

@@ -34,8 +34,7 @@ namespace ModernKeePass.Application.Database.Commands.SaveDatabase
// Test DB integrity before writing changes to file
_database.CloseDatabase();
var file = await _file.OpenBinaryFile(_database.FileAccessToken);
await _database.ReOpen(file);
await _database.ReOpen(contents);
await _file.WriteBinaryContentsToFile(_database.FileAccessToken, contents);
}

View File

@@ -25,18 +25,19 @@ namespace ModernKeePass.Application.Database.Queries.OpenDatabase
public async Task Handle(OpenDatabaseQuery message)
{
if (_database.IsOpen) throw new DatabaseOpenException();
if (_database.IsDirty) throw new DatabaseOpenException();
var file = await _file.OpenBinaryFile(message.FilePath);
var hasKeyFile = !string.IsNullOrEmpty(message.KeyFilePath);
await _database.Open(file, new Credentials
{
KeyFileContents = !string.IsNullOrEmpty(message.KeyFilePath) ? await _file.OpenBinaryFile(message.KeyFilePath): null,
KeyFileContents = hasKeyFile ? await _file.OpenBinaryFile(message.KeyFilePath): null,
Password = message.Password
});
if (hasKeyFile) _file.ReleaseFile(message.KeyFilePath);
_database.Size = file.Length;
_database.FileAccessToken = message.FilePath;
}
}
}
}