diff --git a/Bitvault/ContainerToken.cs b/Bitvault/Container.cs similarity index 59% rename from Bitvault/ContainerToken.cs rename to Bitvault/Container.cs index 8f59863..424d5c7 100644 --- a/Bitvault/ContainerToken.cs +++ b/Bitvault/Container.cs @@ -1,19 +1,19 @@ namespace Bitvault; -public record ContainerToken +public record Container { - public ContainerToken(string name, string password) + public Container(string name, string password) { Name = name; Password = password; } - public ContainerToken(string password) + public Container(string password) { Password = password; } - public ContainerToken() + public Container() { } diff --git a/Bitvault/ContainerNavigationViewModel.cs b/Bitvault/ContainerNavigationViewModel.cs index da2eb75..a22e24f 100644 --- a/Bitvault/ContainerNavigationViewModel.cs +++ b/Bitvault/ContainerNavigationViewModel.cs @@ -6,10 +6,10 @@ namespace Bitvault; public partial class ContainerNavigationViewModel : ObservableCollection, IMainNavigationViewModel, - INotificationHandler>, - INotificationHandler>, - INotificationHandler>, - INotificationHandler> + INotificationHandler>, + INotificationHandler>, + INotificationHandler>, + INotificationHandler> { [ObservableProperty] private bool activated; @@ -41,7 +41,7 @@ public partial class ContainerNavigationViewModel : public IContentTemplate Template { get; set; } - public Task Handle(OpenedEventArgs args) + public Task Handle(OpenedEventArgs args) { Add("All"); Add("Starred"); @@ -52,7 +52,7 @@ public partial class ContainerNavigationViewModel : return Task.CompletedTask; } - public Task Handle(ClosedEventArgs args) + public Task Handle(ClosedEventArgs args) { Opened = true; Clear(); @@ -60,9 +60,9 @@ public partial class ContainerNavigationViewModel : return Task.CompletedTask; } - public Task Handle(DeactivatedEventArgs args) => + public Task Handle(DeactivatedEventArgs args) => Task.FromResult(Activated = false); - public Task Handle(ActivatedEventArgs args) => + public Task Handle(ActivatedEventArgs args) => Task.FromResult(Activated = true); } \ No newline at end of file diff --git a/Bitvault/ContainerViewModel.cs b/Bitvault/ContainerViewModel.cs index 9bc1d80..bec174b 100644 --- a/Bitvault/ContainerViewModel.cs +++ b/Bitvault/ContainerViewModel.cs @@ -4,34 +4,33 @@ using Toolkit.Foundation; namespace Bitvault; [Aggerate(nameof(ContainerViewModel))] -public partial class ContainerViewModel(IServiceProvider provider, - IServiceFactory factory, - IMediator mediator, - IPublisher publisher, - ISubscription subscriber, - IDisposer disposer, - IContentTemplate template, - NamedComponent named, - ContainerViewModelConfiguration configuration) : ObservableCollection(provider, factory, mediator, publisher, subscriber, disposer), +public partial class ContainerViewModel : ObservableCollection, INotificationHandler>, INotificationHandler> { [ObservableProperty] - private string named = $"{named}"; + private string named; - public IContentTemplate Template { get; set; } = template; - - public override async Task OnActivated() + public ContainerViewModel(IServiceProvider provider, + IServiceFactory factory, + IMediator mediator, + IPublisher publisher, + ISubscription subscriber, + IDisposer disposer, + IContentTemplate template, + ContainerViewModelConfiguration configuration, + NamedComponent named, + string? filter = null) : base(provider, factory, mediator, publisher, subscriber, disposer) { - Publisher.Publish(Activated.As()); - await base.OnActivated(); + Template = template; + Named = $"{named}"; + + this.configuration = configuration with { Filter = filter }; } - public override async Task OnDeactivated() - { - Publisher.Publish(Deactivated.As()); - await base.OnDeactivated(); - } + private ContainerViewModelConfiguration configuration; + + public IContentTemplate Template { get; set; } public Task Handle(NotifyEventArgs args) { @@ -55,6 +54,17 @@ public partial class ContainerViewModel(IServiceProvider provider, return Task.CompletedTask; } + public override async Task OnActivated() + { + Publisher.Publish(Activated.As()); + await base.OnActivated(); + } + + public override async Task OnDeactivated() + { + Publisher.Publish(Deactivated.As()); + await base.OnDeactivated(); + } protected override IAggerate OnPrepareAggregation(object? key) => Aggerate.With(configuration) with { Key = key }; } \ No newline at end of file diff --git a/Bitvault/CreateContainerHandler.cs b/Bitvault/CreateContainerHandler.cs index ac2d08a..b4b07a4 100644 --- a/Bitvault/CreateContainerHandler.cs +++ b/Bitvault/CreateContainerHandler.cs @@ -7,12 +7,12 @@ namespace Bitvault; public class CreateContainerHandler(IContainerFactory componentFactory, IPublisher publisher) : - IHandler, bool> + IHandler, bool> { - public async Task Handle(CreateEventArgs args, + public async Task Handle(CreateEventArgs args, CancellationToken cancellationToken) { - if (args.Value is ContainerToken container && container.Name is { Length: > 0 } name && + if (args.Value is Container container && container.Name is { Length: > 0 } name && container.Password is { Length: > 0 } password) { if (componentFactory.Create(name) is IComponentHost host) diff --git a/Bitvault/CreateContainerViewModel.cs b/Bitvault/CreateContainerViewModel.cs index 8105cf9..3f00050 100644 --- a/Bitvault/CreateContainerViewModel.cs +++ b/Bitvault/CreateContainerViewModel.cs @@ -22,5 +22,5 @@ public partial class CreateContainerViewModel(IServiceProvider provider, private string password; public async Task Confirm() => - await Mediator.Handle, bool>(Create.As(new ContainerToken(Name, Password))); + await Mediator.Handle, bool>(Create.As(new Container(Name, Password))); } \ No newline at end of file diff --git a/Bitvault/FilterContainerNavigationViewModel.cs b/Bitvault/FilterContainerNavigationViewModel.cs index fa7f733..2e186a5 100644 --- a/Bitvault/FilterContainerNavigationViewModel.cs +++ b/Bitvault/FilterContainerNavigationViewModel.cs @@ -6,8 +6,8 @@ namespace Bitvault; public partial class FilterContainerNavigationViewModel : Observable, IContainerNavigationViewModel, - INotificationHandler>, - INotificationHandler> + INotificationHandler>, + INotificationHandler> { [ObservableProperty] private bool activated; @@ -29,10 +29,10 @@ public partial class FilterContainerNavigationViewModel : Observable, Filter = filter; } - public Task Handle(DeactivatedEventArgs args) => + public Task Handle(DeactivatedEventArgs args) => Task.FromResult(Activated = false); - public Task Handle(ActivatedEventArgs args) => + public Task Handle(ActivatedEventArgs args) => Task.FromResult(Activated = true); [RelayCommand] diff --git a/Bitvault/OpenContainerHandler.cs b/Bitvault/OpenContainerHandler.cs index cbd9c19..6aa3f08 100644 --- a/Bitvault/OpenContainerHandler.cs +++ b/Bitvault/OpenContainerHandler.cs @@ -6,12 +6,12 @@ namespace Bitvault; public class OpenContainerHandler(ContainerConfiguration configuration, ISecurityKeyFactory keyVaultFactory, IContainerStorageFactory vaultStorage) : - IHandler, bool> + IHandler, bool> { - public async Task Handle(ActivateEventArgs args, + public async Task Handle(ActivateEventArgs args, CancellationToken cancellationToken) { - if (args.Value is ContainerToken container && configuration.Name is { Length: > 0 } name && container.Password is { Length: > 0 } password) + if (args.Value is Container container && configuration.Name is { Length: > 0 } name && container.Password is { Length: > 0 } password) { if (configuration.Key?.Split(':') is { Length: >= 2 } keyPart) { diff --git a/Bitvault/OpenContainerViewModel.cs b/Bitvault/OpenContainerViewModel.cs index b7e6709..6239a9e 100644 --- a/Bitvault/OpenContainerViewModel.cs +++ b/Bitvault/OpenContainerViewModel.cs @@ -20,9 +20,9 @@ public partial class OpenContainerViewModel(IServiceProvider provider, { if (Password is { Length: > 0 }) { - if (await Mediator.Handle, bool>(Activate.As(new ContainerToken(Password)))) + if (await Mediator.Handle, bool>(Activate.As(new Container(Password)))) { - Publisher.Publish(Opened.As()); + Publisher.Publish(Opened.As()); } } }