Allow subscription keys to be resolved by reflection

This commit is contained in:
TheXamlGuy
2024-06-02 18:48:51 +01:00
parent 79a94c7470
commit 91a968d34c
31 changed files with 201 additions and 111 deletions
@@ -3,6 +3,7 @@
namespace Bitvault;
public class AggregateItemContentFromCategoryViewModelHandler(IItemConfigurationCollection configurations,
IServiceFactory serviceFactory,
IMediator mediator,
IPublisher publisher) :
INotificationHandler<AggerateEventArgs<IItemEntryViewModel, string>>
@@ -15,12 +16,21 @@ public class AggregateItemContentFromCategoryViewModelHandler(IItemConfiguration
{
if (factory.Invoke() is ItemConfiguration configuration)
{
int index = 0;
foreach (ItemSectionConfiguration section in configuration.Sections)
{
foreach (ItemEntryConfiguration entryConfiguration in section.Entries)
if (serviceFactory.Create<ItemSectionViewModel>($"{nameof(ItemSection)}{index}") is ItemSectionViewModel sectionViewModel)
{
var dod = await mediator.Handle<ItemEntryConfiguration, IItemEntryViewModel?>(entryConfiguration,
entryConfiguration.GetType().Name);
publisher.Publish(Create.As(sectionViewModel), nameof(ItemContentViewModel));
foreach (ItemEntryConfiguration entryConfiguration in section.Entries)
{
if (await mediator.Handle<ItemEntryConfiguration, IItemEntryViewModel?>(entryConfiguration,
entryConfiguration.GetType().Name) is IItemEntryViewModel entryViewModel)
{
publisher.Publish(Create.As(entryViewModel), $"{nameof(ItemSection)}{index}");
}
}
}
}
}