mirror of
https://github.com/wismna/ModernKeePass.git
synced 2025-10-03 23:50:18 -04:00
Removed half-baked import feature for now
No views depend on services anymore Dirty status fully handled by behavior
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
using MediatR;
|
||||
using ModernKeePass.Application.Common.Interfaces;
|
||||
using ModernKeePass.Application.Database.Commands.CloseDatabase;
|
||||
using ModernKeePass.Application.Database.Commands.SaveDatabase;
|
||||
|
||||
namespace ModernKeePass.Application.Common.Behaviors
|
||||
{
|
||||
public class DirtyStatusBehavior<TRequest, TResponse> : IPipelineBehavior<TRequest, TResponse>
|
||||
{
|
||||
private readonly List<string> _excludedCommands = new List<string>
|
||||
{nameof(SaveDatabaseCommand), nameof(CloseDatabaseCommand)};
|
||||
|
||||
private readonly IDatabaseProxy _database;
|
||||
|
||||
public DirtyStatusBehavior(IDatabaseProxy database)
|
||||
{
|
||||
_database = database;
|
||||
}
|
||||
|
||||
public async Task<TResponse> Handle(TRequest request, RequestHandlerDelegate<TResponse> next)
|
||||
{
|
||||
var response = await next();
|
||||
var queryName = typeof(TRequest).Name;
|
||||
if (queryName.Contains("Command"))
|
||||
{
|
||||
_database.IsDirty = !_excludedCommands.Contains(queryName);
|
||||
}
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user