Пример #1
0
            public void Handle(UpdateGroupCommand message)
            {
                if (!_database.IsOpen)
                {
                    throw new DatabaseClosedException();
                }

                var group = new GroupEntity
                {
                    Id   = message.Group.Id,
                    Name = message.Title,
                    Icon = message.Icon
                };

                _database.UpdateGroup(group);
                message.Group.Title = message.Title;
                message.Group.Icon  = message.Icon;
            }
Пример #2
0
            public async Task Handle(CreateDatabaseCommand message)
            {
                if (_database.IsDirty)
                {
                    throw new DatabaseOpenException();
                }

                var version = DatabaseVersion.V2;

                switch (message.Version)
                {
                case "4":
                    version = DatabaseVersion.V4;
                    break;

                case "3":
                    version = DatabaseVersion.V3;
                    break;
                }

                await _database.Create(new Credentials
                {
                    KeyFileContents = !string.IsNullOrEmpty(message.KeyFilePath) ? await _file.ReadBinaryFile(message.KeyFilePath) : null,
                    Password        = message.Password
                }, message.Name, version);

                _database.FileAccessToken = message.FilePath;

                if (message.CreateSampleData)
                {
                    var bankingGroup = _database.CreateGroup(_database.RootGroupId, "Banking");
                    bankingGroup.Icon = Icon.Shop;
                    _database.UpdateGroup(bankingGroup);

                    var emailGroup = _database.CreateGroup(_database.RootGroupId, "Email");
                    emailGroup.Icon = Icon.Mail;
                    _database.UpdateGroup(emailGroup);

                    var internetGroup = _database.CreateGroup(_database.RootGroupId, "Internet");
                    internetGroup.Icon = Icon.World;
                    _database.UpdateGroup(internetGroup);

                    var sample1 = _database.CreateEntry(_database.RootGroupId);
                    await _database.UpdateEntry(sample1.Id, EntryFieldName.Title, "Sample Entry", false);

                    await _database.UpdateEntry(sample1.Id, EntryFieldName.UserName, "Username", false);

                    await _database.UpdateEntry(sample1.Id, EntryFieldName.Password, "Password", true);

                    await _database.UpdateEntry(sample1.Id, EntryFieldName.Url, "https://keepass.info/", false);

                    await _database.UpdateEntry(sample1.Id, EntryFieldName.Notes, "You may safely delete this sample", false);

                    var sample2 = _database.CreateEntry(_database.RootGroupId);
                    await _database.UpdateEntry(sample2.Id, EntryFieldName.Title, "Sample Entry #2", false);

                    await _database.UpdateEntry(sample2.Id, EntryFieldName.UserName, "Michael321", false);

                    await _database.UpdateEntry(sample2.Id, EntryFieldName.Password, "12345", true);

                    await _database.UpdateEntry(sample2.Id, EntryFieldName.Url, "https://keepass.info/help/kb/testform.html", false);
                }
            }