WIP removing global databaseFile property

This commit is contained in:
BONNEVILLE Geoffroy
2018-06-19 18:47:37 +02:00
parent b456e56789
commit 408b4eed90
18 changed files with 166 additions and 123 deletions

View File

@@ -3,6 +3,7 @@ using System.Text;
using System.Threading.Tasks;
using Windows.Storage;
using ModernKeePass.Common;
using ModernKeePass.Exceptions;
using ModernKeePass.Interfaces;
using ModernKeePass.Services;
using ModernKeePassLib.Cryptography;
@@ -120,12 +121,12 @@ namespace ModernKeePass.ViewModels
Database = database;
}
public async Task<bool> OpenDatabase(bool createNew)
public async Task<bool> OpenDatabase(StorageFile databaseFile, bool createNew)
{
try
{
_isOpening = true;
Database.Open(CreateCompositeKey(), createNew);
Database.Open(databaseFile, CreateCompositeKey(), createNew);
await Task.Run(() => RootGroup = Database.RootGroup);
return true;
}

View File

@@ -27,17 +27,7 @@ namespace ModernKeePass.ViewModels
Name = metadata;
DatabaseFile = file as StorageFile;
}
public void OpenDatabaseFile()
{
OpenDatabaseFile(DatabaseService.Instance);
}
public void OpenDatabaseFile(IDatabaseService database)
{
database.DatabaseFile = DatabaseFile;
}
public void UpdateAccessTime()
{
UpdateAccessTime(RecentService.Instance);

View File

@@ -60,8 +60,7 @@ namespace ModernKeePass.ViewModels
PageType = typeof(OpenDatabasePage),
Destination = destinationFrame,
Parameter = referenceFrame,
SymbolIcon = Symbol.Page2,
IsSelected = database != null && database.IsFileOpen && !database.IsOpen
SymbolIcon = Symbol.Page2
},
new MainMenuItemVm
{
@@ -89,7 +88,7 @@ namespace ModernKeePass.ViewModels
Parameter = referenceFrame,
SymbolIcon = Symbol.Copy,
IsSelected =
(database == null || database.IsClosed) &&
(database == null || !database.IsOpen) &&
recent.EntryCount > 0,
IsEnabled = recent.EntryCount > 0
},

View File

@@ -7,19 +7,18 @@ namespace ModernKeePass.ViewModels
{
public class OpenVm: NotifyPropertyChangedBase
{
public bool ShowPasswordBox => _database.IsFileOpen;
public bool IsFileSelected => DatabaseFile != null;
public string Name => _database?.Name;
public string Name => DatabaseFile.DisplayName;
private readonly IDatabaseService _database;
public StorageFile DatabaseFile { get; private set; }
public OpenVm() : this(DatabaseService.Instance) { }
public OpenVm() : this(null) { }
public OpenVm(IDatabaseService database)
public OpenVm(StorageFile file)
{
_database = database;
if (database == null || !database.IsFileOpen) return;
OpenFile(database.DatabaseFile);
if (!IsFileSelected) return;
OpenFile(file);
}
public void OpenFile(StorageFile file)
@@ -29,9 +28,9 @@ namespace ModernKeePass.ViewModels
public void OpenFile(StorageFile file, IRecentService recent)
{
_database.DatabaseFile = file;
DatabaseFile = file;
OnPropertyChanged("Name");
OnPropertyChanged("ShowPasswordBox");
OnPropertyChanged("IsFileSelected");
AddToRecentList(file, recent);
}