public async Task TestOpen() { var file = await _fileProxy.OpenBinaryFile(Path.Combine(Directory.GetCurrentDirectory(), "Data", "TestDatabase.kdbx")); await _database.Open(file, _credentials); var rootGroup = _database.GetGroup(_database.RootGroupId); Assert.That(_database.Name, Is.EqualTo("TestDatabase")); Assert.That(rootGroup.Entries.Count, Is.EqualTo(2)); }
public async Task Handle(OpenDatabaseQuery message) { if (_database.IsDirty) { throw new DatabaseOpenException(); } var file = await _file.ReadBinaryFile(message.FilePath); var hasKeyFile = !string.IsNullOrEmpty(message.KeyFilePath); await _database.Open(file, new Credentials { KeyFileContents = hasKeyFile ? await _file.ReadBinaryFile(message.KeyFilePath): null, Password = message.Password }); if (hasKeyFile) { _file.ReleaseFile(message.KeyFilePath); } _database.Size = file.Length; _database.FileAccessToken = message.FilePath; }