common extensions and some utilities

This commit is contained in:
2025-03-19 00:18:40 +01:00
parent f80fd22a00
commit e62bd2aa6d
35 changed files with 323 additions and 58 deletions

View File

@@ -38,7 +38,7 @@ namespace RebootKit.Engine.Foundation {
if (_isRunning) {
controller.OnStop();
}
_controllers.Remove(controller);
}
@@ -46,7 +46,7 @@ namespace RebootKit.Engine.Foundation {
if (_isRunning) {
return;
}
foreach (IController controller in _controllers) {
await controller.OnStart(cancellationToken);
}
@@ -58,7 +58,7 @@ namespace RebootKit.Engine.Foundation {
if (!_isRunning) {
return;
}
foreach (IController controller in _controllers) {
controller.OnStop();
}
@@ -74,19 +74,22 @@ namespace RebootKit.Engine.Foundation {
}
public static class ControllersManagerUtils {
public static void Add(this ControllersManager manager, ControllerAsset controllerAsset) {
manager.Add(controllerAsset.Create());
public static void Add(this ControllersManager manager, ControllerAsset asset, DIContext context) {
IController controller = asset.Create(context);
manager.Add(controller);
}
public static void Add(this ControllersManager manager, List<ControllerAsset> controllerAsset) {
public static void Add(this ControllersManager manager, List<ControllerAsset> controllerAsset, DIContext context) {
foreach (ControllerAsset asset in controllerAsset) {
manager.Add(asset.Create());
IController controller = asset.Create(context);
manager.Add(controller);
}
}
public static void Add(this ControllersManager manager, ControllerAsset[] controllerAsset) {
public static void Add(this ControllersManager manager, ControllerAsset[] controllerAsset, DIContext context) {
foreach (ControllerAsset asset in controllerAsset) {
manager.Add(asset.Create());
IController controller = asset.Create(context);
manager.Add(controller);
}
}
}