using Toolkit.Foundation; namespace Wallet; public class CategoriesNavigationViewModelActivationHandler(IMediator mediator, IItemConfigurationCollection configurations, IServiceFactory serviceFactory, IPublisher publisher) : INotificationHandler> { public async Task Handle(ActivationEventArgs args) { IReadOnlyCollection<(string Name, int Count)>? counts = await mediator.Handle, IReadOnlyCollection<(string, int)>>(Count.As()); foreach (KeyValuePair> configuration in configurations) { int count = counts?.FirstOrDefault(x => x.Name == configuration.Key).Count ?? 0; string name = configuration.Key; if (serviceFactory.Create(args => args.Initialize(), count, name) is CategoryNavigationViewModel viewModel) { publisher.Publish(Create.As(viewModel), nameof(CategoriesNavigationViewModel)); } } } }