static void Main(string[] args) { string appInsightsKey = ""; var builder = new HostBuilder() .ConfigureAppConfiguration((context, config) => { var builtConfig = config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddEnvironmentVariables() .AddCommandLine(args) .Build(); appInsightsKey = builtConfig["ApplicationInsights:InstrumentationKey"]; ManagedIdentityKeyVaultConfig cfg = new ManagedIdentityKeyVaultConfig(builtConfig["KVConfig:KeyVaultName"]); ConfigurationOptions options = new ConfigurationOptions(); options.DefaultConfig = cfg; config.AddKeyVaultProxyConfigurationProvider(builtConfig, options); //context.Configuration = config.Build(); }).ConfigureServices((context, services) => { //todo: read from config services.AddLogging(configure => configure.AddConsole().AddApplicationInsights(appInsightsKey)) //.Configure<LoggerFilterOptions>(options => options.MinLevel = LogLevel.Information) .AddSingleton <IConfiguration>(context.Configuration) .AddSingleton <Runtime.Common.Configuration.IConfigurationManager, HostConfigurationManager>() .AddTransient <SecretManagement.DataAccess.ISecretMetadataDataAccessProvider>(s => { Runtime.Common.Configuration.IConfigurationManager cfg = s.GetRequiredService <Runtime.Common.Configuration.IConfigurationManager>(); return(new SecretManagement.DataAccess.StorageAccount.SecretMetadataStorageAccountDataAccessProvider( cfg.SecretManagementConnectionString, cfg)); }) //.AddApplicationInsightsTelemetryWorkerService("") .AddTransient <Runtime.Common.Tracking.IProcessingTrackerDataAccessProvider>(s => { //todo: construct DataAccessProvider here Runtime.Common.Configuration.IConfigurationManager cfg = s.GetRequiredService <Runtime.Common.Configuration.IConfigurationManager>(); return(null); }) .AddSingleton <Runtime.Common.Tracking.IProcessingTracker, Runtime.Common.Tracking.ProcessingTracker>() .AddTransient <Runtime.Host>(); }); var appHost = builder.Build(); var host = appHost.Services.GetService <Runtime.Host>(); //host.CreateSampleDataSetAsync(_cts.Token, true, false, false).Wait(); host.StartAsync(_cts.Token).Wait(); }
public static IHostBuilder CreateHostBuilder(string[] args) => Microsoft.Extensions.Hosting.Host.CreateDefaultBuilder(args) .ConfigureAppConfiguration((context, config) => { var builtConfig = config.Build(); ManagedIdentityKeyVaultConfig cfg = new ManagedIdentityKeyVaultConfig(builtConfig["KVConfig:KeyVaultName"]); ConfigurationOptions options = new ConfigurationOptions(); options.DefaultConfig = cfg; config.AddKeyVaultProxyConfigurationProvider(builtConfig, options); }) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup <Startup>(); });