clean startup

This commit is contained in:
2018-04-13 12:20:35 +02:00
parent b6eabe32e9
commit 19c287b482
4 changed files with 48 additions and 36 deletions

View File

@ -3,22 +3,24 @@
using System; using System;
using Microsoft.Extensions.Logging;
using System.Runtime.Versioning; using System.Runtime.Versioning;
using Microsoft.AspNet.Builder.Internal;
using Yavsc.Services;
using Google.Apis.Util.Store; using Google.Apis.Util.Store;
using cli_2; using Microsoft.AspNet.Builder.Internal;
using Microsoft.Extensions.PlatformAbstractions;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.AspNet.Hosting; using Microsoft.AspNet.Hosting;
using Yavsc.Models;
using Microsoft.AspNet.Identity.EntityFramework;
using Microsoft.Extensions.OptionsModel;
using Microsoft.AspNet.Hosting.Builder; using Microsoft.AspNet.Hosting.Builder;
using Yavsc;
using Microsoft.AspNet.Hosting.Internal; using Microsoft.AspNet.Hosting.Internal;
using Microsoft.AspNet.Server;
using Microsoft.AspNet.Identity.EntityFramework;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.OptionsModel;
using Microsoft.Extensions.PlatformAbstractions;
using Yavsc;
using Yavsc.Models;
using Yavsc.Services;
using cli_2;
public class Program public class Program
{ {
@ -27,13 +29,19 @@ public class Program
public Program() public Program()
{ {
ConfigureServices(new ServiceCollection()); ConfigureServices(new ServiceCollection());
} }
private void ConfigureServices(IServiceCollection services, string environmentName="Development") private void ConfigureServices(IServiceCollection services, string environmentName="Development")
{ {
IHostingEnvironment hosting = new HostingEnvironment{ EnvironmentName = environmentName }; IHostingEnvironment hosting = new HostingEnvironment{ EnvironmentName = environmentName };
services.Add(new ServiceDescriptor(typeof(IHostingEnvironment), hosting ));
services.AddLogging(); services.AddLogging();
services.AddOptions(); services.AddOptions();
@ -55,9 +63,9 @@ public class Program
services.AddIdentity<ApplicationUser,IdentityRole>(); services.AddIdentity<ApplicationUser,IdentityRole>();
var basePath = AppDomain.CurrentDomain.BaseDirectory; var basePath = AppDomain.CurrentDomain.BaseDirectory;
// FIXME null ref var appName = AppDomain.CurrentDomain.ApplicationIdentity.FullName; // FIXME null ref var appName = AppDomain.CurrentDomain.ApplicationIdentity.FullName;
// var rtdcontext = new System.Runtime.DesignerServices.WindowsRuntimeDesignerContext (new string { "." }, "nonname"); // var rtdcontext = new WindowsRuntimeDesignerContext (new string [] { "../Yavsc" }, "Yavsc");
serviceProvider = services.BuildServiceProvider(); serviceProvider = services.BuildServiceProvider();
@ -75,10 +83,9 @@ public class Program
// needs a logger factory ... // needs a logger factory ...
var loggerFactory = serviceProvider var loggerFactory = serviceProvider
.GetService<ILoggerFactory>() .GetService<ILoggerFactory>()
.AddConsole(LogLevel.Debug); .AddConsole(LogLevel.Verbose);
startup = new Startup (hosting, appEnv);
startup = new Startup (hosting, appEnv);
startup.ConfigureServices(services);
ApplicationBuilderFactory applicationBuilderFactory ApplicationBuilderFactory applicationBuilderFactory
@ -86,11 +93,13 @@ public class Program
var builder = applicationBuilderFactory.CreateBuilder(null); var builder = applicationBuilderFactory.CreateBuilder(null);
startup.ConfigureServices(services);
IOptions<SiteSettings> siteSettings = serviceProvider.GetService(typeof(IOptions<SiteSettings>)) as IOptions<SiteSettings>; builder.ApplicationServices = serviceProvider;
IOptions<SiteSettings> siteSettings = serviceProvider.GetService(typeof(IOptions<SiteSettings>)) as IOptions<SiteSettings>;
IOptions<SmtpSettings> smtpSettings = serviceProvider.GetService(typeof(IOptions<SmtpSettings>)) as IOptions<SmtpSettings>; IOptions<SmtpSettings> smtpSettings = serviceProvider.GetService(typeof(IOptions<SmtpSettings>)) as IOptions<SmtpSettings>;
startup.Configure(builder,siteSettings,smtpSettings); startup.Configure(builder, loggerFactory, siteSettings, smtpSettings);
} }

View File

@ -13,6 +13,8 @@ using Microsoft.Extensions.PlatformAbstractions;
using System; using System;
using System.Threading; using System.Threading;
using Yavsc.Server.Helpers; using Yavsc.Server.Helpers;
using Microsoft.Extensions.Logging;
using Microsoft.AspNet.Http;
public class Startup public class Startup
{ {
@ -30,7 +32,9 @@ public class Startup
public static SiteSettings SiteSetup { get; private set; } public static SiteSettings SiteSetup { get; private set; }
public static SmtpSettings SmtpSettup { get; private set; } public static SmtpSettings SmtpSettup { get; private set; }
public IConfigurationRoot Configuration { get; set; } public IConfigurationRoot Configuration { get; set; }
public string ConnectionString { get; private set; } public string ConnectionString {
get { return DbHelpers.ConnectionString; }
private set { DbHelpers.ConnectionString = value; } }
public static IdentityOptions AppIdentityOptions { get; private set; } public static IdentityOptions AppIdentityOptions { get; private set; }
public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv) public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
@ -61,8 +65,7 @@ public class Startup
// Use this method to add services to the container. // Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services) public void ConfigureServices(IServiceCollection services)
{ {
System.Console.WriteLine("Configuring services ..."); services.AddLogging();
var siteSettings = Configuration.GetSection("Site"); var siteSettings = Configuration.GetSection("Site");
services.Configure<SiteSettings>(siteSettings); services.Configure<SiteSettings>(siteSettings);
var smtpSettings = Configuration.GetSection("Smtp"); var smtpSettings = Configuration.GetSection("Smtp");
@ -116,15 +119,18 @@ public class Startup
// Use this method to configure the HTTP request pipeline. // Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder builder, IOptions<SiteSettings> siteSettingsOptions, IOptions<SmtpSettings> smtpSettingsOptions) public void Configure(IApplicationBuilder builder, ILoggerFactory loggerFactory, IOptions<SiteSettings> siteSettingsOptions, IOptions<SmtpSettings> smtpSettingsOptions)
{ {
System.Console.WriteLine("Configuring application ...");
app = builder.UseIdentity().UseMiddleware<InteractiveConsoleMiddleWare>().Build();
var logger = loggerFactory.CreateLogger<Startup>();
logger.LogInformation("Configuring application startup ...");
SiteSetup = siteSettingsOptions.Value; SiteSetup = siteSettingsOptions.Value;
SmtpSettup = smtpSettingsOptions.Value; SmtpSettup = smtpSettingsOptions.Value;
DbHelpers.ConnectionString = Configuration["Data:DefaultConnection:ConnectionString"]; DbHelpers.ConnectionString = Configuration["Data:DefaultConnection:ConnectionString"];
logger.LogInformation("done");
} }
public void Main(string[] args) public void Main(string[] args)
@ -132,11 +138,8 @@ public class Startup
var dbContext = new ApplicationDbContext(); var dbContext = new ApplicationDbContext();
foreach (var user in dbContext.Users) { foreach (var user in dbContext.Users) {
Console.WriteLine($"UserName/{user.UserName} FullName/{user.FullName} Email/{user.Email} "); Console.WriteLine($"UserName/{user.UserName} FullName/{user.FullName} Email/{user.Email} ");
} /**/ }
} }
} }

View File

@ -1,7 +1,7 @@
{ {
"version": "1.0.0-*", "version": "1.0.0-*",
"commands": { "commands": {
"run": "run" "run": "cli"
}, },
"resource": "Resources/**/*.resx", "resource": "Resources/**/*.resx",
"buildOptions": { "buildOptions": {