using Microsoft.Extensions.DependencyInjection; using Toolkit.Foundation; namespace Bitvault; public class MainViewModelHandler(IPublisher publisher, IContainerHostCollection containers) : INotificationHandler> { public Task Handle(EnumerateEventArgs args) { foreach (IComponentHost container in containers.OrderBy(x => x.GetConfiguration() is ContainerConfiguration configuration ? configuration.Name : null)) { if (container.Services.GetRequiredService() is ContainerConfiguration configuration) { if (container.Services.GetRequiredService() is IServiceFactory factory) { if (factory.Create(configuration.Name) is ContainerNavigationViewModel viewModel) { publisher.Publish(new CreateEventArgs(viewModel), nameof(MainViewModel)); } } } } return Task.CompletedTask; } }