Ejemplo n.º 1
0
            public async Task Handle(DeleteGroupCommand message)
            {
                if (!_database.IsOpen)
                {
                    throw new DatabaseClosedException();
                }

                var isRecycleBin = message.GroupId.Equals(_database.RecycleBinId);

                if (_database.IsRecycleBinEnabled && (string.IsNullOrEmpty(_database.RecycleBinId) || _database.RecycleBinId.Equals(Constants.EmptyId)))
                {
                    _database.CreateGroup(_database.RootGroupId, message.RecycleBinName, true);
                }

                if (!_database.IsRecycleBinEnabled || message.ParentGroupId.Equals(_database.RecycleBinId) || isRecycleBin)
                {
                    _database.DeleteEntity(message.GroupId);
                }
                else
                {
                    await _database.AddGroup(_database.RecycleBinId, message.GroupId);
                }

                await _database.RemoveGroup(message.ParentGroupId, message.GroupId);

                if (isRecycleBin)
                {
                    _database.RecycleBinId = Constants.EmptyId;
                }
            }
Ejemplo n.º 2
0
            public GroupVm Handle(CreateGroupCommand message)
            {
                if (!_database.IsOpen)
                {
                    throw new DatabaseClosedException();
                }

                var group   = _database.CreateGroup(message.ParentGroup.Id, message.Name, message.IsRecycleBin);
                var groupVm = _mapper.Map <GroupVm>(group);

                message.ParentGroup.Groups.Add(groupVm);
                return(groupVm);
            }
Ejemplo n.º 3
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);
                }
            }