private static DefaultSunnyApplication BuilderSunnyApplication(this IApplicationBuilder app, Action <ISunnyApplicationBuilder> configureApp) { //Get the ISunnyApplicationBuilder var builderFactory = app.ApplicationServices.GetRequiredService <ISunnyApplicationBuilderFactory>(); var sunnyContextFactory = app.ApplicationServices.GetRequiredService <ISunnyContextFactory>(); ISunnyApplicationBuilder applicationBuilder = builderFactory.CreateBuilder(); configureApp?.Invoke(applicationBuilder); //Building SunnyApplication var sunnyApplication = applicationBuilder.Build(); return(new DefaultSunnyApplication(sunnyApplication, sunnyContextFactory)); }
public void Start() { ISunnyApplicationBuilder applicationBuilder = serviceProvider.GetRequiredService <ISunnyApplicationBuilderFactory>().CreateBuilder(); this.startup.Configure(applicationBuilder); IServer server = serviceProvider.GetRequiredService <IServerFactory>().CreateServer(); //Building SunnyApplication var sunnyContextFactory = serviceProvider.GetRequiredService <ISunnyContextFactory>(); var sunnyApplication = applicationBuilder.Build(); var hostingApp = new DefaultSunnyApplication(sunnyApplication, sunnyContextFactory); //Start Server server.StartAsync(hostingApp); }