From e2ac3c6ccc220192bf7624ae340345d7b7784f50 Mon Sep 17 00:00:00 2001 From: TheXamlGuy Date: Sun, 2 Jun 2024 20:45:31 +0100 Subject: [PATCH] Added HandleMany --- Bitvault/ItemEntryViewModel.cs | 24 +++++++++++++++++++ .../ItemMaskedTextEntryViewModelHandler.cs | 3 ++- Bitvault/ItemPasswordEntryViewModel.cs | 5 ++-- Bitvault/ItemPasswordEntryViewModelHandler.cs | 3 ++- Bitvault/ItemSectionViewModel.cs | 3 +++ 5 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 Bitvault/ItemEntryViewModel.cs diff --git a/Bitvault/ItemEntryViewModel.cs b/Bitvault/ItemEntryViewModel.cs new file mode 100644 index 0000000..978e374 --- /dev/null +++ b/Bitvault/ItemEntryViewModel.cs @@ -0,0 +1,24 @@ +using CommunityToolkit.Mvvm.ComponentModel; +using Toolkit.Foundation; + +namespace Bitvault; + +public partial class ItemEntryViewModel : + Observable +{ + public ItemEntryViewModel(IServiceProvider provider, + IServiceFactory factory, + IMediator mediator, + IPublisher publisher, + ISubscription subscriber, + IDisposer disposer, + string type, + TKey? key = default, + TValue? value = default) : base(provider, factory, mediator, publisher, subscriber, disposer, key, value) + { + Type = type; + } + + [ObservableProperty] + private string type; +} diff --git a/Bitvault/ItemMaskedTextEntryViewModelHandler.cs b/Bitvault/ItemMaskedTextEntryViewModelHandler.cs index d0c3e58..49970dc 100644 --- a/Bitvault/ItemMaskedTextEntryViewModelHandler.cs +++ b/Bitvault/ItemMaskedTextEntryViewModelHandler.cs @@ -8,7 +8,8 @@ public class ItemMaskedTextEntryViewModelHandler(IServiceFactory serviceFactory) public Task Handle(MaskedTextEntryConfiguration args, CancellationToken cancellationToken) { - if (serviceFactory.Create(args.Label, args.Value ?? new object()) is ItemMaskedTextEntryViewModel viewModel) + if (serviceFactory.Create(args.Label, args.Value ?? new object()) is + ItemMaskedTextEntryViewModel viewModel) { return Task.FromResult(viewModel); } diff --git a/Bitvault/ItemPasswordEntryViewModel.cs b/Bitvault/ItemPasswordEntryViewModel.cs index 84a6d84..86302e1 100644 --- a/Bitvault/ItemPasswordEntryViewModel.cs +++ b/Bitvault/ItemPasswordEntryViewModel.cs @@ -8,6 +8,7 @@ public partial class ItemPasswordEntryViewModel(IServiceProvider provider, IPublisher publisher, ISubscription subscriber, IDisposer disposer, + string type, string? key = default, - object? value = default) : Observable(provider, factory, mediator, publisher, subscriber, disposer, key, value), - IItemEntryViewModel; + object? value = default) : ItemEntryViewModel(provider, factory, mediator, publisher, subscriber, disposer, type, key, value), + IItemEntryViewModel; \ No newline at end of file diff --git a/Bitvault/ItemPasswordEntryViewModelHandler.cs b/Bitvault/ItemPasswordEntryViewModelHandler.cs index b61b6a6..4868049 100644 --- a/Bitvault/ItemPasswordEntryViewModelHandler.cs +++ b/Bitvault/ItemPasswordEntryViewModelHandler.cs @@ -8,7 +8,8 @@ public class ItemPasswordEntryViewModelHandler(IServiceFactory serviceFactory) : public Task Handle(PasswordEntryConfiguration args, CancellationToken cancellationToken) { - if (serviceFactory.Create(args.Label, args.Value ?? new object()) is ItemPasswordEntryViewModel viewModel) + if (serviceFactory.Create("Password", args.Label, args.Value ?? new object()) + is ItemPasswordEntryViewModel viewModel) { return Task.FromResult(viewModel); } diff --git a/Bitvault/ItemSectionViewModel.cs b/Bitvault/ItemSectionViewModel.cs index b3540f7..05660f8 100644 --- a/Bitvault/ItemSectionViewModel.cs +++ b/Bitvault/ItemSectionViewModel.cs @@ -10,8 +10,11 @@ public partial class ItemSectionViewModel(IServiceProvider provider, IPublisher publisher, ISubscription subscriber, IDisposer disposer, + IContentTemplate template, string section) : ObservableCollection(provider, factory, mediator, publisher, subscriber, disposer) { [ObservableProperty] private string section = section; + + public IContentTemplate Template { get; set; } = template; }