break widget related stuff into its own project as the main HB project was just becoming too bloated

This commit is contained in:
TheXamlGuy
2024-01-24 20:50:59 +00:00
parent d1b57d5d16
commit 5e26e97f6b
61 changed files with 178 additions and 95 deletions
+23
View File
@@ -0,0 +1,23 @@
using System.Reflection;
namespace Hyperbar.Widget;
public class WidgetAssemblyHandler(IMediator mediator,
IFactory<Type, IWidget> factory) :
INotificationHandler<Created<Assembly>>
{
public Task Handle(Created<Assembly> notification,
CancellationToken cancellationToken)
{
if (notification.Value?.GetTypes().FirstOrDefault(x => typeof(IWidget).IsAssignableFrom(x)) is Type widgetType)
{
if (factory.Create(widgetType) is IWidget widget)
{
mediator.PublishAsync(new Created<IWidget>(widget),
cancellationToken);
}
}
return Task.CompletedTask;
}
}