using Microsoft.Extensions.DependencyInjection; using Toolkit.Foundation; namespace Bitvault; public class AggerateMainViewModelHandler(IPublisher publisher, ILockerHostCollection lockers) : INotificationHandler> { public Task Handle(AggerateEventArgs args) { bool selected = true; foreach (IComponentHost locker in lockers.OrderBy(x => x.Services.GetRequiredService>() is IConfigurationDescriptor descriptor ? descriptor.Name : null)) { if (locker.Services.GetRequiredService>() is IConfigurationDescriptor descriptor) { if (locker.Services.GetRequiredService() is IServiceFactory factory) { if (factory.Create(descriptor.Name, selected) is LockerNavigationViewModel viewModel) { publisher.Publish(Create.As(viewModel), nameof(MainViewModel)); selected = false; } } } } return Task.CompletedTask; } }