Files
Hyperbar/Hyperbar.Widget.Windows/WidgetSettingsNavigationViewModelEnumerator.cs
T
2024-02-13 22:11:29 +00:00

23 lines
898 B
C#

using Microsoft.Extensions.DependencyInjection;
namespace Hyperbar.Widget.Windows;
public class WidgetSettingsNavigationViewModelEnumerator(IPublisher publisher,
IWidgetHostCollection widgetHosts) :
INotificationHandler<Enumerate<WidgetSettingsNavigationViewModel>>
{
public async Task Handle(Enumerate<WidgetSettingsNavigationViewModel> args,
CancellationToken cancellationToken = default)
{
foreach (IWidgetHost host in widgetHosts)
{
if (host.Services.GetService<IServiceFactory>() is IServiceFactory serviceFactory)
{
await publisher.PublishAsync(new Create<WidgetSettingsNavigationViewModel>(serviceFactory
.Create<WidgetSettingsNavigationViewModel>(host.Configuration.Name)),
nameof(WidgetNavigationViewModel), cancellationToken);
}
}
}
}