Compare commits

..

No commits in common. "fea7b6af42ba4b9d90be7d20bf0d515e61fb32f9" and "91c70351623a998d6abf20b2133fd168848878c3" have entirely different histories.

4 changed files with 16 additions and 25 deletions

View File

@ -1,6 +1,5 @@
using Connected.Interop; using Connected.Interop;
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.Configuration;
namespace Connected.Instance namespace Connected.Instance
{ {
@ -8,13 +7,9 @@ namespace Connected.Instance
{ {
internal static WebApplication Host { get; private set; } internal static WebApplication Host { get; private set; }
internal static async Task StartAsync(IConfiguration config) internal static async Task StartAsync(Dictionary<string, string> args)
{ {
var options = new WebApplicationOptions(); var builder = WebApplication.CreateBuilder(UnpackArguments(args));
config.Bind(options);
var builder = WebApplication.CreateBuilder(options);
var startups = Assemblies.QueryImplementations<IStartup>(); var startups = Assemblies.QueryImplementations<IStartup>();
foreach (var assembly in Assemblies.All) foreach (var assembly in Assemblies.All)
@ -37,16 +32,16 @@ namespace Connected.Instance
foreach (var startup in startups) foreach (var startup in startups)
{ {
if (startup.CreateInstance<IStartup>() is IStartup start) if (startup.CreateInstance<IStartup>() is IStartup start)
await start.Initialize(config); await start.Initialize(args);
} }
foreach (var startup in startups) foreach (var startup in startups)
{ {
if (startup.CreateInstance<IStartup>() is IStartup start) if (startup.CreateInstance<IStartup>() is IStartup start)
await start.Start(config); await start.Start(args);
} }
if (config.GetValue<string?>("entitySynchronization") is string entities) if (args.TryGetValue("entitySynchronization", out string? entities))
await EntitySynchronizer.Synchronize(Host.Services, entities); await EntitySynchronizer.Synchronize(Host.Services, entities);
await Host.RunAsync(); await Host.RunAsync();

View File

@ -1,12 +1,10 @@
using Microsoft.Extensions.Configuration; namespace Connected.Instance
namespace Connected.Instance
{ {
public static class Start public static class Start
{ {
public static async Task ConfigureAsync(IConfiguration config) public static async Task ConfigureAsync(Dictionary<string, string> args)
{ {
await Instance.StartAsync(config); await Instance.StartAsync(args);
} }
} }
} }

View File

@ -1,5 +1,4 @@
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
namespace Connected; namespace Connected;
@ -8,6 +7,6 @@ public interface IStartup
{ {
void ConfigureServices(IServiceCollection services); void ConfigureServices(IServiceCollection services);
void Configure(WebApplication app); void Configure(WebApplication app);
Task Initialize(IConfiguration config); Task Initialize(Dictionary<string, string> args);
Task Start(IConfiguration config); Task Start(Dictionary<string, string> args);
} }

View File

@ -1,5 +1,4 @@
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
namespace Connected; namespace Connected;
@ -28,22 +27,22 @@ public abstract class Startup : IStartup
} }
public async Task Initialize(IConfiguration config) public async Task Initialize(Dictionary<string, string> args)
{ {
await OnInitialize(config); await OnInitialize(args);
} }
protected virtual async Task OnInitialize(IConfiguration config) protected virtual async Task OnInitialize(Dictionary<string, string> args)
{ {
await Task.CompletedTask; await Task.CompletedTask;
} }
public async Task Start(IConfiguration config) public async Task Start(Dictionary<string, string> args)
{ {
await OnStart(config); await OnStart(args);
} }
protected virtual async Task OnStart(IConfiguration config) protected virtual async Task OnStart(Dictionary<string, string> args)
{ {
await Task.CompletedTask; await Task.CompletedTask;
} }