WIP
This commit is contained in:
@@ -25,13 +25,18 @@ public class WidgetBuilder :
|
||||
})
|
||||
.ConfigureServices((context, services) =>
|
||||
{
|
||||
services.AddHostedService<WidgetService>();
|
||||
services.AddSingleton<IWidgetHost, WidgetHost>();
|
||||
services.AddScoped<IServiceFactory>(provider =>
|
||||
new ServiceFactory((type, parameters) =>
|
||||
ActivatorUtilities.CreateInstance(provider, type, parameters!)));
|
||||
services.AddScoped<IMediator, Mediator>();
|
||||
services.AddScoped<IDisposer, Disposer>();
|
||||
services.AddSingleton<IValue<WidgetAvailability>, Value<WidgetAvailability>>();
|
||||
services.AddHandler<WidgetAvailabilityChangedHandler>();
|
||||
services.AddValueChangedNotification<WidgetConfiguration,
|
||||
WidgetAvailability>((config) => (args) =>
|
||||
{
|
||||
args.Value = config.IsEnabled;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@@ -40,9 +45,7 @@ public class WidgetBuilder :
|
||||
public IWidgetHost Build()
|
||||
{
|
||||
IHost host = hostBuilder.Build();
|
||||
|
||||
return (IWidgetHost)ActivatorUtilities.CreateInstance(host.Services,
|
||||
typeof(WidgetHost), host);
|
||||
return host.Services.GetRequiredService<IWidgetHost>();
|
||||
}
|
||||
|
||||
public IWidgetBuilder UseConfiguration<TConfiguration>(Action<TConfiguration> configurationDelegate)
|
||||
@@ -56,7 +59,6 @@ public class WidgetBuilder :
|
||||
}
|
||||
|
||||
configurationRegistered = true;
|
||||
|
||||
TConfiguration configuration = new();
|
||||
configurationDelegate(configuration);
|
||||
|
||||
@@ -88,7 +90,6 @@ public class WidgetBuilder :
|
||||
}
|
||||
|
||||
viewModelTemplateRegistered = true;
|
||||
|
||||
hostBuilder.ConfigureServices(services =>
|
||||
{
|
||||
services.AddWidgetTemplate<TViewModel>();
|
||||
@@ -107,7 +108,6 @@ public class WidgetBuilder :
|
||||
}
|
||||
|
||||
viewModelTemplateRegistered = true;
|
||||
|
||||
hostBuilder.ConfigureServices(services =>
|
||||
{
|
||||
services.AddWidgetTemplate<TWidgetContent, TWidgetTemplate>();
|
||||
|
||||
Reference in New Issue
Block a user