mirror of
https://github.com/wismna/ModernKeePass.git
synced 2025-10-03 23:50:18 -04:00
Moved application code to the Application layer
Imported Win10 project Code cleanup WIP - Use common UWP services for Win8.1 and Win10
This commit is contained in:
@@ -9,15 +9,19 @@ namespace ModernKeePass.Application.Database.Commands.CloseDatabase
|
||||
public class CloseDatabaseCommandHandler : IRequestHandler<CloseDatabaseCommand>
|
||||
{
|
||||
private readonly IDatabaseProxy _database;
|
||||
private readonly IFileProxy _file;
|
||||
|
||||
public CloseDatabaseCommandHandler(IDatabaseProxy database)
|
||||
public CloseDatabaseCommandHandler(IDatabaseProxy database, IFileProxy file)
|
||||
{
|
||||
_database = database;
|
||||
_file = file;
|
||||
}
|
||||
public void Handle(CloseDatabaseCommand message)
|
||||
{
|
||||
if (_database.IsOpen) _database.CloseDatabase();
|
||||
else throw new DatabaseClosedException();
|
||||
if (!_database.IsOpen) throw new DatabaseClosedException();
|
||||
_database.CloseDatabase();
|
||||
_file.ReleaseFile(_database.FileAccessToken);
|
||||
_database.FileAccessToken = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -15,26 +15,26 @@ namespace ModernKeePass.Application.Database.Commands.CreateDatabase
|
||||
public class CreateDatabaseCommandHandler : IAsyncRequestHandler<CreateDatabaseCommand>
|
||||
{
|
||||
private readonly IDatabaseProxy _database;
|
||||
private readonly IFileProxy _file;
|
||||
|
||||
public CreateDatabaseCommandHandler(IDatabaseProxy database)
|
||||
public CreateDatabaseCommandHandler(IDatabaseProxy database, IFileProxy file)
|
||||
{
|
||||
_database = database;
|
||||
_file = file;
|
||||
}
|
||||
|
||||
public async Task Handle(CreateDatabaseCommand message)
|
||||
{
|
||||
if (_database.IsOpen) throw new DatabaseOpenException();
|
||||
|
||||
await _database.Create(
|
||||
new FileInfo
|
||||
{
|
||||
Path = message.FilePath
|
||||
},
|
||||
var file = await _file.OpenBinaryFile(message.FilePath);
|
||||
await _database.Create(file,
|
||||
new Credentials
|
||||
{
|
||||
KeyFilePath = message.KeyFilePath,
|
||||
KeyFileContents = await _file.OpenBinaryFile(message.KeyFilePath),
|
||||
Password = message.Password
|
||||
});
|
||||
_database.FileAccessToken = message.FilePath;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -12,18 +12,34 @@ namespace ModernKeePass.Application.Database.Commands.SaveDatabase
|
||||
public class SaveDatabaseCommandHandler : IAsyncRequestHandler<SaveDatabaseCommand>
|
||||
{
|
||||
private readonly IDatabaseProxy _database;
|
||||
private readonly IFileProxy _file;
|
||||
|
||||
public SaveDatabaseCommandHandler(IDatabaseProxy database)
|
||||
public SaveDatabaseCommandHandler(IDatabaseProxy database, IFileProxy file)
|
||||
{
|
||||
_database = database;
|
||||
_file = file;
|
||||
}
|
||||
|
||||
public async Task Handle(SaveDatabaseCommand message)
|
||||
{
|
||||
if (!_database.IsOpen) throw new DatabaseClosedException();
|
||||
|
||||
if (string.IsNullOrEmpty(message.FilePath)) await _database.SaveDatabase();
|
||||
else await _database.SaveDatabase(message.FilePath);
|
||||
byte[] contents;
|
||||
if (string.IsNullOrEmpty(message.FilePath))
|
||||
{
|
||||
contents = await _database.SaveDatabase();
|
||||
await _file.WriteBinaryContentsToFile(_database.FileAccessToken, contents);
|
||||
}
|
||||
else
|
||||
{
|
||||
var newFileContents = await _file.OpenBinaryFile(message.FilePath);
|
||||
contents = await _database.SaveDatabase(newFileContents);
|
||||
await _file.WriteBinaryContentsToFile(message.FilePath, contents);
|
||||
|
||||
_file.ReleaseFile(_database.FileAccessToken);
|
||||
_database.FileAccessToken = message.FilePath;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -14,23 +14,22 @@ namespace ModernKeePass.Application.Database.Commands.UpdateCredentials
|
||||
public class UpdateCredentialsCommandHandler : IAsyncRequestHandler<UpdateCredentialsCommand>
|
||||
{
|
||||
private readonly IDatabaseProxy _database;
|
||||
private readonly IFileProxy _file;
|
||||
|
||||
public UpdateCredentialsCommandHandler(IDatabaseProxy database)
|
||||
public UpdateCredentialsCommandHandler(IDatabaseProxy database, IFileProxy file)
|
||||
{
|
||||
_database = database;
|
||||
_file = file;
|
||||
}
|
||||
|
||||
public async Task Handle(UpdateCredentialsCommand message)
|
||||
{
|
||||
if (_database.IsOpen)
|
||||
if (!_database.IsOpen) throw new DatabaseClosedException();
|
||||
_database.UpdateCredentials(new Credentials
|
||||
{
|
||||
await _database.UpdateCredentials(new Credentials
|
||||
{
|
||||
KeyFilePath = message.KeyFilePath,
|
||||
Password = message.Password
|
||||
});
|
||||
}
|
||||
else throw new DatabaseClosedException();
|
||||
KeyFileContents = await _file.OpenBinaryFile(message.KeyFilePath),
|
||||
Password = message.Password
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user