mirror of
https://github.com/wismna/ModernKeePass.git
synced 2025-10-03 15:40: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
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -2,7 +2,6 @@
|
||||
using MediatR;
|
||||
using ModernKeePass.Application.Common.Interfaces;
|
||||
using ModernKeePass.Application.Database.Models;
|
||||
using ModernKeePass.Application.Group.Models;
|
||||
|
||||
namespace ModernKeePass.Application.Database.Queries.GetDatabase
|
||||
{
|
||||
|
@@ -15,26 +15,25 @@ namespace ModernKeePass.Application.Database.Queries.OpenDatabase
|
||||
public class OpenDatabaseQueryHandler : IAsyncRequestHandler<OpenDatabaseQuery>
|
||||
{
|
||||
private readonly IDatabaseProxy _database;
|
||||
private readonly IFileProxy _file;
|
||||
|
||||
public OpenDatabaseQueryHandler(IDatabaseProxy database)
|
||||
public OpenDatabaseQueryHandler(IDatabaseProxy database, IFileProxy file)
|
||||
{
|
||||
_database = database;
|
||||
_file = file;
|
||||
}
|
||||
|
||||
public async Task Handle(OpenDatabaseQuery request)
|
||||
{
|
||||
if (_database.IsOpen) throw new DatabaseOpenException();
|
||||
|
||||
await _database.Open(
|
||||
new FileInfo
|
||||
var file = await _file.OpenBinaryFile(request.FilePath);
|
||||
await _database.Open(file, new Credentials
|
||||
{
|
||||
Path = request.FilePath
|
||||
},
|
||||
new Credentials
|
||||
{
|
||||
KeyFilePath = request.KeyFilePath,
|
||||
KeyFileContents = await _file.OpenBinaryFile(request.KeyFilePath),
|
||||
Password = request.Password
|
||||
});
|
||||
_database.FileAccessToken = request.FilePath;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -10,17 +10,20 @@ namespace ModernKeePass.Application.Database.Queries.ReOpenDatabase
|
||||
public class ReOpenDatabaseQueryHandler : IAsyncRequestHandler<ReOpenDatabaseQuery>
|
||||
{
|
||||
private readonly IDatabaseProxy _database;
|
||||
private readonly IFileProxy _file;
|
||||
|
||||
public ReOpenDatabaseQueryHandler(IDatabaseProxy database)
|
||||
public ReOpenDatabaseQueryHandler(IDatabaseProxy database, IFileProxy file)
|
||||
{
|
||||
_database = database;
|
||||
_file = file;
|
||||
}
|
||||
|
||||
public async Task Handle(ReOpenDatabaseQuery request)
|
||||
{
|
||||
if (!_database.IsOpen) throw new DatabaseClosedException();
|
||||
|
||||
await _database.ReOpen();
|
||||
var file = await _file.OpenBinaryFile(_database.FileAccessToken);
|
||||
await _database.ReOpen(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user