using Microsoft.Extensions.DependencyInjection; namespace Hyperbar.Widget.MediaController.Windows; public class MediaControllerHandler(IMediator mediator, IServiceScopeProvider scopeProvider, ICache cache) : INotificationHandler> { public async Task Handle(Created notification, CancellationToken cancellationToken) { if (notification.Value is MediaController mediaController) { if (scopeProvider.TryGet(mediaController, out IServiceScope? serviceScope)) if (serviceScope is not null) { if (serviceScope.ServiceProvider.GetService>() is IFactory factory) { if (factory.Create(mediaController) is MediaControllerViewModel mediaControllerViewModel) { cache.Add(mediaController, mediaControllerViewModel); //await mediator.PublishAsync(new Created(mediaControllerViewModel), // cancellationToken); } } } } } }