diff --git a/ModernKeePass.Application/Database/Commands/CreateDatabase/CreateDatabaseCommand.cs b/ModernKeePass.Application/Database/Commands/CreateDatabase/CreateDatabaseCommand.cs index 7df1c31..7deafe1 100644 --- a/ModernKeePass.Application/Database/Commands/CreateDatabase/CreateDatabaseCommand.cs +++ b/ModernKeePass.Application/Database/Commands/CreateDatabase/CreateDatabaseCommand.cs @@ -39,7 +39,7 @@ namespace ModernKeePass.Application.Database.Commands.CreateDatabase KeyFilePath = message.KeyFilePath, Password = message.Password }); - return _mapper.Map(rootGroup); + return GroupVm.BuildHierarchy(null, rootGroup, _mapper); } } diff --git a/ModernKeePass.Application/Database/Queries/GetDatabase/GetDatabaseQuery.cs b/ModernKeePass.Application/Database/Queries/GetDatabase/GetDatabaseQuery.cs index 5a1cefb..a52dd86 100644 --- a/ModernKeePass.Application/Database/Queries/GetDatabase/GetDatabaseQuery.cs +++ b/ModernKeePass.Application/Database/Queries/GetDatabase/GetDatabaseQuery.cs @@ -28,7 +28,7 @@ namespace ModernKeePass.Application.Database.Queries.GetDatabase if (database.IsOpen) { database.Name = _databaseProxy.Name; - database.RootGroup = _mapper.Map(_databaseProxy.RootGroup); + database.RootGroup = GroupVm.BuildHierarchy(null, _databaseProxy.RootGroup, _mapper); database.IsRecycleBinEnabled = _databaseProxy.IsRecycleBinEnabled; database.RecycleBin = _mapper.Map(_databaseProxy.RecycleBin); database.Compression = _databaseProxy.Compression; diff --git a/ModernKeePass.Application/Database/Queries/OpenDatabase/OpenDatabaseQuery.cs b/ModernKeePass.Application/Database/Queries/OpenDatabase/OpenDatabaseQuery.cs index daa5bf8..4d1eb0f 100644 --- a/ModernKeePass.Application/Database/Queries/OpenDatabase/OpenDatabaseQuery.cs +++ b/ModernKeePass.Application/Database/Queries/OpenDatabase/OpenDatabaseQuery.cs @@ -42,30 +42,9 @@ namespace ModernKeePass.Application.Database.Queries.OpenDatabase KeyFilePath = request.KeyFilePath, Password = request.Password }); - return BuildHierarchy(null, rootGroup); - } - - private GroupVm BuildHierarchy(GroupVm parentGroup, GroupEntity groupEntity) - { - var groupVm = _mapper.Map(groupEntity); - groupVm.ParentGroup = parentGroup; - if (parentGroup != null) - { - groupVm.Breadcrumb.AddRange(parentGroup.Breadcrumb); - groupVm.Breadcrumb.Add(parentGroup); - } - groupVm.Entries = groupEntity.Entries.Select(e => - { - var entry = _mapper.Map(e); - entry.ParentGroup = groupVm; - entry.Breadcrumb.AddRange(groupVm.Breadcrumb); - entry.Breadcrumb.Add(groupVm); - return entry; - }).OrderBy(e => e.Title).ToList(); - groupVm.SubGroups = groupEntity.SubGroups.Select(g => BuildHierarchy(groupVm, g)).ToList(); - - return groupVm; + return GroupVm.BuildHierarchy(null, rootGroup, _mapper); } + } } } \ No newline at end of file diff --git a/ModernKeePass.Application/Database/Queries/ReOpenDatabase/ReOpenDatabaseQuery.cs b/ModernKeePass.Application/Database/Queries/ReOpenDatabase/ReOpenDatabaseQuery.cs index 62b582b..3e8a2e2 100644 --- a/ModernKeePass.Application/Database/Queries/ReOpenDatabase/ReOpenDatabaseQuery.cs +++ b/ModernKeePass.Application/Database/Queries/ReOpenDatabase/ReOpenDatabaseQuery.cs @@ -25,7 +25,7 @@ namespace ModernKeePass.Application.Database.Queries.ReOpenDatabase if (!_database.IsOpen) throw new DatabaseClosedException(); var rootGroup = await _database.ReOpen(); - return _mapper.Map(rootGroup); + return GroupVm.BuildHierarchy(null, rootGroup, _mapper); } } } diff --git a/ModernKeePass.Application/Entry/Models/EntryVm.cs b/ModernKeePass.Application/Entry/Models/EntryVm.cs index e6bdac5..401ead1 100644 --- a/ModernKeePass.Application/Entry/Models/EntryVm.cs +++ b/ModernKeePass.Application/Entry/Models/EntryVm.cs @@ -37,7 +37,7 @@ namespace ModernKeePass.Application.Entry.Models public void Mapping(Profile profile) { profile.CreateMap() - //.ForMember(d => d.ParentGroup, opts => opts.MapFrom(s => s.Parent)) + .ForMember(d => d.ParentGroup, opts => opts.Ignore()) .ForMember(d => d.Id, opts => opts.MapFrom(s => s.Id)) .ForMember(d => d.Title, opts => opts.MapFrom(s => s.Name)) .ForMember(d => d.Username, opts => opts.MapFrom(s => s.UserName)) diff --git a/ModernKeePass.Application/Group/Commands/CreateGroup/CreateGroupCommand.cs b/ModernKeePass.Application/Group/Commands/CreateGroup/CreateGroupCommand.cs index 33536c1..19efc17 100644 --- a/ModernKeePass.Application/Group/Commands/CreateGroup/CreateGroupCommand.cs +++ b/ModernKeePass.Application/Group/Commands/CreateGroup/CreateGroupCommand.cs @@ -29,6 +29,7 @@ namespace ModernKeePass.Application.Group.Commands.CreateGroup var group = _database.CreateGroup(message.ParentGroup.Id, message.Name, message.IsRecycleBin); var groupVm = _mapper.Map(group); + groupVm.ParentGroup = message.ParentGroup; message.ParentGroup.SubGroups.Add(groupVm); return groupVm; } diff --git a/ModernKeePass.Application/Group/Models/GroupVm.cs b/ModernKeePass.Application/Group/Models/GroupVm.cs index 8871267..d8eeee5 100644 --- a/ModernKeePass.Application/Group/Models/GroupVm.cs +++ b/ModernKeePass.Application/Group/Models/GroupVm.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Linq; using AutoMapper; using ModernKeePass.Application.Common.Interfaces; @@ -29,13 +30,34 @@ namespace ModernKeePass.Application.Group.Models public void Mapping(Profile profile) { profile.CreateMap() - //.ForMember(d => d.ParentGroup, opts => opts.MapFrom(s => s.Parent)) + .ForMember(d => d.ParentGroup, opts => opts.Ignore()) .ForMember(d => d.Id, opts => opts.MapFrom(s => s.Id)) .ForMember(d => d.Title, opts => opts.MapFrom(s => s.Name)) - .ForMember(d => d.Icon, opts => opts.MapFrom(s => s.Icon)); - //.ForMember(d => d.Entries, opts => opts.MapFrom(s => s.Entries.OrderBy(e => e.Name))) - //.ForMember(d => d.SubGroups, opts => opts.MapFrom(s => s.SubGroups)); + .ForMember(d => d.Icon, opts => opts.MapFrom(s => s.Icon)) + .ForMember(d => d.Entries, opts => opts.Ignore()) + .ForMember(d => d.SubGroups, opts => opts.Ignore()); } + internal static GroupVm BuildHierarchy(GroupVm parentGroup, GroupEntity groupEntity, IMapper mapper) + { + var groupVm = mapper.Map(groupEntity); + groupVm.ParentGroup = parentGroup; + if (parentGroup != null) + { + groupVm.Breadcrumb.AddRange(parentGroup.Breadcrumb); + groupVm.Breadcrumb.Add(parentGroup); + } + groupVm.Entries = groupEntity.Entries.Select(e => + { + var entry = mapper.Map(e); + entry.ParentGroup = groupVm; + entry.Breadcrumb.AddRange(groupVm.Breadcrumb); + entry.Breadcrumb.Add(groupVm); + return entry; + }).OrderBy(e => e.Title).ToList(); + groupVm.SubGroups = groupEntity.SubGroups.Select(g => BuildHierarchy(groupVm, g, mapper)).ToList(); + + return groupVm; + } } } \ No newline at end of file diff --git a/ModernKeePass.Domain/Entities/BaseEntity.cs b/ModernKeePass.Domain/Entities/BaseEntity.cs index dd1cb8f..8d12478 100644 --- a/ModernKeePass.Domain/Entities/BaseEntity.cs +++ b/ModernKeePass.Domain/Entities/BaseEntity.cs @@ -6,7 +6,7 @@ namespace ModernKeePass.Domain.Entities { public string Id { get; set; } public string Name { get; set; } - public GroupEntity Parent { get; set; } + public GroupEntity ParentGroup { get; set; } public string ParentId { get; set; } public DateTimeOffset LastModificationDate { get; set; } } diff --git a/ModernKeePass.Infrastructure/KeePass/EntryMappingProfile.cs b/ModernKeePass.Infrastructure/KeePass/EntryMappingProfile.cs index bcb03a1..788e7d8 100644 --- a/ModernKeePass.Infrastructure/KeePass/EntryMappingProfile.cs +++ b/ModernKeePass.Infrastructure/KeePass/EntryMappingProfile.cs @@ -19,6 +19,7 @@ namespace ModernKeePass.Infrastructure.KeePass { Uri url; CreateMap() + .ForMember(dest => dest.ParentGroup, opt => opt.Ignore()) .ForMember(dest => dest.ParentId, opt => opt.MapFrom(src => src.ParentGroup.Uuid.ToHexString())) .ForMember(dest => dest.Id, opt => opt.MapFrom(src => src.Uuid.ToHexString())) .ForMember(dest => dest.Name, opt => opt.MapFrom(src => GetEntryValue(src, PwDefs.TitleField))) diff --git a/ModernKeePass.Infrastructure/KeePass/GroupMappingProfile.cs b/ModernKeePass.Infrastructure/KeePass/GroupMappingProfile.cs index 2abe23f..8831284 100644 --- a/ModernKeePass.Infrastructure/KeePass/GroupMappingProfile.cs +++ b/ModernKeePass.Infrastructure/KeePass/GroupMappingProfile.cs @@ -15,13 +15,14 @@ namespace ModernKeePass.Infrastructure.KeePass private void FromDtoToModel() { CreateMap() + .ForMember(dest => dest.ParentGroup, opt => opt.Ignore()) .ForMember(d => d.ParentId, opts => opts.MapFrom(s => s.ParentGroup.Uuid.ToHexString())) .ForMember(d => d.Id, opts => opts.MapFrom(s => s.Uuid.ToHexString())) .ForMember(d => d.Name, opts => opts.MapFrom(s => s.Name)) .ForMember(d => d.Icon, opts => opts.MapFrom(s => IconMapper.MapPwIconToIcon(s.IconId))) - .ForMember(d => d.LastModificationDate, opts => opts.MapFrom(s => s.LastModificationTime)); - //.ForMember(d => d.Entries, opts => opts.MapFrom(s => s.Entries)) - //.ForMember(d => d.SubGroups, opts => opts.MapFrom(s => s.Groups)); + .ForMember(d => d.LastModificationDate, opts => opts.MapFrom(s => s.LastModificationTime)) + .ForMember(d => d.Entries, opts => opts.Ignore()) + .ForMember(d => d.SubGroups, opts => opts.Ignore()); } private void FromModelToDto() diff --git a/ModernKeePass.Infrastructure/KeePass/KeePassDatabaseClient.cs b/ModernKeePass.Infrastructure/KeePass/KeePassDatabaseClient.cs index 63527c9..cd54b0d 100644 --- a/ModernKeePass.Infrastructure/KeePass/KeePassDatabaseClient.cs +++ b/ModernKeePass.Infrastructure/KeePass/KeePassDatabaseClient.cs @@ -340,11 +340,11 @@ namespace ModernKeePass.Infrastructure.KeePass private GroupEntity BuildHierarchy(GroupEntity parentGroup, PwGroup pwGroup) { var group = _mapper.Map(pwGroup); - group.Parent = parentGroup; + group.ParentGroup = parentGroup; group.Entries = pwGroup.Entries.Select(e => { var entry = _mapper.Map(e); - entry.Parent = group; + entry.ParentGroup = group; return entry; }).ToList(); group.SubGroups = pwGroup.Groups.Select(g => BuildHierarchy(group, g)).ToList(); diff --git a/ModernKeePass/Actions/DeleteEntityAction.cs b/ModernKeePass/Actions/DeleteEntityAction.cs index 1a1bafb..d99ddbf 100644 --- a/ModernKeePass/Actions/DeleteEntityAction.cs +++ b/ModernKeePass/Actions/DeleteEntityAction.cs @@ -44,7 +44,7 @@ namespace ModernKeePass.Actions public object Execute(object sender, object parameter) { var resource = new ResourcesService(); - var type = Entity is GroupVm ? "Group" : "Entry"; + var type = Entity is GroupDetailVm ? "Group" : "Entry"; var isRecycleOnDelete = _mediator.Send(new GetDatabaseQuery()).GetAwaiter().GetResult().IsRecycleBinEnabled; var message = isRecycleOnDelete diff --git a/ModernKeePass/ViewModels/EntryVm.cs b/ModernKeePass/ViewModels/EntryDetailVm.cs similarity index 92% rename from ModernKeePass/ViewModels/EntryVm.cs rename to ModernKeePass/ViewModels/EntryDetailVm.cs index 09c6a1e..d43d15a 100644 --- a/ModernKeePass/ViewModels/EntryVm.cs +++ b/ModernKeePass/ViewModels/EntryDetailVm.cs @@ -22,7 +22,7 @@ using ModernKeePass.Interfaces; namespace ModernKeePass.ViewModels { - public class EntryVm : NotifyPropertyChangedBase, IVmEntity, ISelectableModel + public class EntryDetailVm : NotifyPropertyChangedBase, IVmEntity, ISelectableModel { public bool IsRevealPasswordEnabled => !string.IsNullOrEmpty(Password); public bool HasExpired => HasExpirationDate && ExpiryDate < DateTime.Now; @@ -68,11 +68,7 @@ namespace ModernKeePass.ViewModels public string UserName { get { return _entry.Username; } - set - { - _mediator.Send(new SetFieldValueCommand { EntryId = Id, FieldName = nameof(UserName), FieldValue = value }).Wait(); - _entry.Username = value; - } + set { _entry.Username = value; } } public string Password @@ -225,11 +221,11 @@ namespace ModernKeePass.ViewModels private double _passwordLength = 25; private bool _isVisible = true; - public EntryVm() { } + public EntryDetailVm() { } - internal EntryVm(Application.Entry.Models.EntryVm entry, bool isNewEntry = false) : this(entry, App.Mediator, isNewEntry) { } + internal EntryDetailVm(Application.Entry.Models.EntryVm entry, bool isNewEntry = false) : this(entry, App.Mediator, isNewEntry) { } - public EntryVm(Application.Entry.Models.EntryVm entry, IMediator mediator, bool isNewEntry = false) + public EntryDetailVm(Application.Entry.Models.EntryVm entry, IMediator mediator, bool isNewEntry = false) { _entry = entry; _mediator = mediator; @@ -263,19 +259,18 @@ namespace ModernKeePass.ViewModels public async Task MarkForDelete(string recycleBinTitle) { if (_database.IsRecycleBinEnabled && _database.RecycleBin == null) - await _mediator.Send(new CreateGroupCommand { ParentGroup = _database.RootGroup, IsRecycleBin = true, Name = recycleBinTitle}); - await Move(_database.IsRecycleBinEnabled && _entry.ParentGroup == _database.RecycleBin ? _database.RecycleBin : null); + _database.RecycleBin = await _mediator.Send(new CreateGroupCommand { ParentGroup = _database.RootGroup, IsRecycleBin = true, Name = recycleBinTitle}); + await Move(_database.IsRecycleBinEnabled && _entry.ParentGroup != _database.RecycleBin ? _database.RecycleBin : null); } public async Task Move(Application.Group.Models.GroupVm destination) { + await _mediator.Send(new AddEntryCommand { ParentGroup = destination, Entry = _entry }); await _mediator.Send(new RemoveEntryCommand { ParentGroup = _entry.ParentGroup, Entry = _entry }); if (destination == null) { await _mediator.Send(new DeleteEntryCommand { Entry = _entry }); - return; } - await _mediator.Send(new AddEntryCommand { ParentGroup = destination, Entry = _entry }); } public async Task CommitDelete() @@ -287,5 +282,10 @@ namespace ModernKeePass.ViewModels { return _entry; } + + public async Task SetFieldValue(string fieldName, object value) + { + await _mediator.Send(new SetFieldValueCommand { EntryId = Id, FieldName = fieldName, FieldValue = value }); + } } } diff --git a/ModernKeePass/ViewModels/GroupVm.cs b/ModernKeePass/ViewModels/GroupDetailVm.cs similarity index 93% rename from ModernKeePass/ViewModels/GroupVm.cs rename to ModernKeePass/ViewModels/GroupDetailVm.cs index 9142f68..4506977 100644 --- a/ModernKeePass/ViewModels/GroupVm.cs +++ b/ModernKeePass/ViewModels/GroupDetailVm.cs @@ -26,7 +26,7 @@ using ModernKeePass.Interfaces; namespace ModernKeePass.ViewModels { - public class GroupVm : NotifyPropertyChangedBase, IVmEntity, ISelectableModel + public class GroupDetailVm : NotifyPropertyChangedBase, IVmEntity, ISelectableModel { public ObservableCollection Entries => new ObservableCollection(_group.Entries); @@ -47,7 +47,6 @@ namespace ModernKeePass.ViewModels } } - public bool IsNotRoot => _database.RootGroup != _group; public bool ShowRestore => IsNotRoot && _database.RecycleBin != _group; @@ -117,12 +116,12 @@ namespace ModernKeePass.ViewModels private Application.Entry.Models.EntryVm _reorderedEntry; private bool _isMenuClosed = true; - public GroupVm() {} + public GroupDetailVm() {} - internal GroupVm(Application.Group.Models.GroupVm group) : this(group, App.Mediator) + internal GroupDetailVm(Application.Group.Models.GroupVm group) : this(group, App.Mediator) { } - public GroupVm(Application.Group.Models.GroupVm group, IMediator mediator, bool isEditMode = false) + public GroupDetailVm(Application.Group.Models.GroupVm group, IMediator mediator, bool isEditMode = false) { _group = group; _mediator = mediator; @@ -151,7 +150,7 @@ namespace ModernKeePass.ViewModels case NotifyCollectionChangedAction.Add: if (_reorderedEntry == null) { - var entry = ((EntryVm) e.NewItems[0]).GetEntry(); + var entry = ((EntryDetailVm) e.NewItems[0]).GetEntry(); await _mediator.Send(new AddEntryCommand {Entry = entry, ParentGroup = _group}); } else @@ -175,20 +174,19 @@ namespace ModernKeePass.ViewModels public async Task MarkForDelete(string recycleBinTitle) { if (_database.IsRecycleBinEnabled && _database.RecycleBin == null) - await _mediator.Send(new CreateGroupCommand {ParentGroup = _database.RootGroup, IsRecycleBin = true, Name = recycleBinTitle}); + _database.RecycleBin = await _mediator.Send(new CreateGroupCommand {ParentGroup = _database.RootGroup, IsRecycleBin = true, Name = recycleBinTitle}); await Move(_database.IsRecycleBinEnabled && !IsSelected ? _database.RecycleBin : null); ((RelayCommand)UndoDeleteCommand).RaiseCanExecuteChanged(); } public async Task Move(Application.Group.Models.GroupVm destination) { + await _mediator.Send(new AddGroupCommand {ParentGroup = destination, Group = _group}); await _mediator.Send(new RemoveGroupCommand {ParentGroup = _group.ParentGroup, Group = _group}); if (destination == null) { await _mediator.Send(new DeleteGroupCommand { Group = _group }); - return; } - await _mediator.Send(new AddGroupCommand {ParentGroup = destination, Group = _group}); } public async Task CommitDelete() diff --git a/ModernKeePass/ViewModels/Items/SettingsDatabaseVm.cs b/ModernKeePass/ViewModels/Items/SettingsDatabaseVm.cs index 230bf33..156b6ee 100644 --- a/ModernKeePass/ViewModels/Items/SettingsDatabaseVm.cs +++ b/ModernKeePass/ViewModels/Items/SettingsDatabaseVm.cs @@ -23,7 +23,7 @@ namespace ModernKeePass.ViewModels { private readonly IMediator _mediator; private readonly DatabaseVm _database; - private GroupVm _selectedItem; + private GroupDetailVm _selectedItem; public bool HasRecycleBin { @@ -104,7 +104,7 @@ namespace ModernKeePass.ViewModels _selectedItem.IsSelected = false; } - SetProperty(ref _selectedItem, (GroupVm)value); + SetProperty(ref _selectedItem, (GroupDetailVm)value); if (_selectedItem != null) { diff --git a/ModernKeePass/Views/EntryDetailPage.xaml b/ModernKeePass/Views/EntryDetailPage.xaml index 531b456..f75adde 100644 --- a/ModernKeePass/Views/EntryDetailPage.xaml +++ b/ModernKeePass/Views/EntryDetailPage.xaml @@ -372,7 +372,7 @@ - + @@ -410,7 +410,7 @@ - + diff --git a/ModernKeePass/Views/EntryDetailPage.xaml.cs b/ModernKeePass/Views/EntryDetailPage.xaml.cs index f6f9787..a168197 100644 --- a/ModernKeePass/Views/EntryDetailPage.xaml.cs +++ b/ModernKeePass/Views/EntryDetailPage.xaml.cs @@ -14,7 +14,7 @@ namespace ModernKeePass.Views /// public sealed partial class EntryDetailPage { - public EntryVm Model => (EntryVm) DataContext; + public EntryDetailVm Model => (EntryDetailVm) DataContext; /// /// NavigationHelper est utilisé sur chaque page pour faciliter la navigation et @@ -45,7 +45,7 @@ namespace ModernKeePass.Views /*if (!(e.Parameter is EntryVm)) return; DataContext = (EntryVm)e.Parameter;*/ var args = e.Parameter as Application.Entry.Models.EntryVm; - if (args != null) DataContext = new EntryVm(args); + if (args != null) DataContext = new EntryDetailVm(args); } protected override void OnNavigatedFrom(NavigationEventArgs e) @@ -75,5 +75,10 @@ namespace ModernKeePass.Views break; } } + + private async void Username_OnLostFocus(object sender, RoutedEventArgs e) + { + await Model.SetFieldValue(nameof(Model.UserName), ((TextBox) sender).Text); + } } } diff --git a/ModernKeePass/Views/GroupDetailPage.xaml b/ModernKeePass/Views/GroupDetailPage.xaml index 04cb304..301c9d9 100644 --- a/ModernKeePass/Views/GroupDetailPage.xaml +++ b/ModernKeePass/Views/GroupDetailPage.xaml @@ -19,7 +19,7 @@ - + diff --git a/ModernKeePass/Views/GroupDetailPage.xaml.cs b/ModernKeePass/Views/GroupDetailPage.xaml.cs index 74bb480..182f478 100644 --- a/ModernKeePass/Views/GroupDetailPage.xaml.cs +++ b/ModernKeePass/Views/GroupDetailPage.xaml.cs @@ -25,7 +25,7 @@ namespace ModernKeePass.Views /// process lifetime management /// public NavigationHelper NavigationHelper { get; } - public GroupVm Model => (GroupVm)DataContext; + public GroupDetailVm Model => (GroupDetailVm)DataContext; public GroupDetailPage() { @@ -50,12 +50,12 @@ namespace ModernKeePass.Views var args = e.Parameter as PasswordEventArgs; if (args != null) - DataContext = new GroupVm(args.RootGroup); + DataContext = new GroupDetailVm(args.RootGroup); else { var vm = e.Parameter as Application.Group.Models.GroupVm; if (vm != null) - DataContext = new GroupVm(vm); + DataContext = new GroupDetailVm(vm); } } diff --git a/ModernKeePass/Win81App.csproj b/ModernKeePass/Win81App.csproj index eadbce6..b3b4c35 100644 --- a/ModernKeePass/Win81App.csproj +++ b/ModernKeePass/Win81App.csproj @@ -224,8 +224,8 @@ SaveDatabasePage.xaml - - + + diff --git a/ModernKeePassApp.Test/Mock/DatabaseServiceMock.cs b/ModernKeePassApp.Test/Mock/DatabaseServiceMock.cs index a9a67be..2143ec9 100644 --- a/ModernKeePassApp.Test/Mock/DatabaseServiceMock.cs +++ b/ModernKeePassApp.Test/Mock/DatabaseServiceMock.cs @@ -26,11 +26,11 @@ namespace ModernKeePassApp.Test.Mock public string Name => "MockDatabase"; - public GroupVm RecycleBin { get; set; } + public GroupDetailVm RecycleBin { get; set; } public bool RecycleBinEnabled { get; set; } - public GroupVm RootGroup { get; set; } + public GroupDetailVm RootGroup { get; set; } public void AddDeletedItem(PwUuid id) { diff --git a/ModernKeePassApp.Test/ViewModelsTests.cs b/ModernKeePassApp.Test/ViewModelsTests.cs index ce5635a..f91b9d4 100644 --- a/ModernKeePassApp.Test/ViewModelsTests.cs +++ b/ModernKeePassApp.Test/ViewModelsTests.cs @@ -116,7 +116,7 @@ namespace ModernKeePassApp.Test public void TestEntryVm() { var database = new DatabaseServiceMock(); - var entryVm = new EntryVm(new PwEntry(true, true), new GroupVm(), database, _resource) + var entryVm = new EntryDetailVm(new PwEntry(true, true), new GroupDetailVm(), database, _resource) { Title = "Test", UserName = "login", @@ -128,7 +128,7 @@ namespace ModernKeePassApp.Test public void TestGroupVm() { var database = new DatabaseServiceMock(); - var entryVm = new GroupVm(new PwGroup(true, true), new GroupVm(), database) + var entryVm = new GroupDetailVm(new PwGroup(true, true), new GroupDetailVm(), database) { Title = "Test" };