2020-03-27 18:45:13 +01:00
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using Windows.Storage;
|
|
|
|
|
using Windows.Storage.AccessCache;
|
|
|
|
|
using MediatR;
|
2020-04-06 20:20:45 +02:00
|
|
|
|
using Microsoft.Extensions.DependencyInjection;
|
2020-03-27 18:45:13 +01:00
|
|
|
|
using ModernKeePass.Application.Database.Commands.CloseDatabase;
|
|
|
|
|
using ModernKeePass.Application.Database.Commands.SaveDatabase;
|
2017-10-10 15:00:31 +02:00
|
|
|
|
|
|
|
|
|
namespace ModernKeePass.ViewModels
|
|
|
|
|
{
|
2017-10-13 11:48:58 +02:00
|
|
|
|
public class SaveVm
|
2017-10-10 15:00:31 +02:00
|
|
|
|
{
|
2020-03-27 18:45:13 +01:00
|
|
|
|
private readonly IMediator _mediator;
|
2020-04-09 19:43:06 +02:00
|
|
|
|
public SaveVm() : this(App.Services.GetRequiredService<IMediator>()) { }
|
2017-11-23 15:26:57 +01:00
|
|
|
|
|
2020-03-27 18:45:13 +01:00
|
|
|
|
public SaveVm(IMediator mediator)
|
2017-11-23 15:26:57 +01:00
|
|
|
|
{
|
2020-03-27 18:45:13 +01:00
|
|
|
|
_mediator = mediator;
|
2017-11-23 15:26:57 +01:00
|
|
|
|
}
|
|
|
|
|
|
2020-03-27 18:45:13 +01:00
|
|
|
|
public async Task Save(bool close = true)
|
2017-10-10 15:00:31 +02:00
|
|
|
|
{
|
2020-03-27 18:45:13 +01:00
|
|
|
|
await _mediator.Send(new SaveDatabaseCommand());
|
2020-04-09 19:43:06 +02:00
|
|
|
|
if (close) await Close();
|
2017-10-10 15:00:31 +02:00
|
|
|
|
}
|
2017-10-12 11:45:00 +02:00
|
|
|
|
|
2020-03-27 18:45:13 +01:00
|
|
|
|
public async Task Save(StorageFile file)
|
2017-10-12 11:45:00 +02:00
|
|
|
|
{
|
2020-03-27 18:45:13 +01:00
|
|
|
|
var token = StorageApplicationPermissions.FutureAccessList.Add(file);
|
|
|
|
|
await _mediator.Send(new SaveDatabaseCommand { FilePath = token });
|
2017-10-12 11:45:00 +02:00
|
|
|
|
}
|
2020-04-09 19:43:06 +02:00
|
|
|
|
|
|
|
|
|
public async Task Close()
|
|
|
|
|
{
|
|
|
|
|
await _mediator.Send(new CloseDatabaseCommand());
|
|
|
|
|
}
|
2017-10-10 15:00:31 +02:00
|
|
|
|
}
|
|
|
|
|
}
|