using Microsoft.Extensions.DependencyInjection; using Toolkit.Foundation; namespace Bitvault; public class MainViewModelHandler(IPublisher publisher, IVaultHostCollection vaults) : INotificationHandler> { public async Task Handle(Enumerate args, CancellationToken cancellationToken = default) { foreach (IComponentHost vault in vaults) { if (vault.Services.GetRequiredService() is VaultConfiguration configuration) { if (vault.Services.GetRequiredService() is IServiceFactory factory) { if (factory.Create(configuration.Name) is VaultNavigationViewModel viewModel) { await publisher.Publish(new Create(viewModel), nameof(MainViewModel), cancellationToken); } } } } } }