Files
modernkeepass/ModernKeePass/ViewModels/DatabaseVm.cs

38 lines
1.1 KiB
C#
Raw Normal View History

2017-09-15 11:24:14 +02:00
using System.ComponentModel;
using Windows.Storage;
using ModernKeePassLib;
using ModernKeePassLib.Keys;
using ModernKeePassLib.Serialization;
using ModernKeePassLib.Interfaces;
namespace ModernKeePass.ViewModels
{
2017-09-15 11:24:14 +02:00
public class DatabaseVm : INotifyPropertyChanged
{
private PwDatabase _database = new PwDatabase();
public string Name { get; set; }
public GroupVm RootGroup { get; set; }
2017-09-15 11:24:14 +02:00
public event PropertyChangedEventHandler PropertyChanged;
public async void Open(StorageFile databaseFile, string password)
{
var key = new CompositeKey();
key.AddUserKey(new KcpPassword(password));
try
{
await _database.Open(IOConnectionInfo.FromFile(databaseFile), key, new NullStatusLogger());
if (!_database.IsOpen) return;
Name = databaseFile.DisplayName;
RootGroup = new GroupVm (_database.RootGroup);
}
finally
{
_database.Close();
}
}
}
}