public void ConfigureServices(IServiceCollection services, HostBuilderContext hostBuilderContext) { var config = hostBuilderContext.Configuration; services.AddSingleton(config); // Bind the 'Settings' section to the ISettings class var settings = new Domain.Models.Settings(); config.Bind("Settings", settings); services.TryAddSingleton <ISettings>(settings); var randomPostSettings = new Domain.Models.RandomPostSettings(); config.Bind("Settings:RandomPost", randomPostSettings); services.TryAddSingleton <IRandomPostSettings>(randomPostSettings); // Configure the logger services.AddLogging((loggingBuilder => { //loggingBuilder.ClearProviders(); loggingBuilder.SetMinimumLevel(LogLevel.Trace); loggingBuilder.AddConfiguration(config); })); // Configure all the services ConfigureTwitter(services); ConfigureJsonFeedReader(services); ConfigureSyndicationFeedReader(services); ConfigureYouTubeReader(services); ConfigureFunction(services); }
public static void Load() { var sr = new StreamReader(new FileStream(_filename, FileMode.Open), System.Text.Encoding.UTF8); var json = sr.ReadToEnd(); sr.Close(); Settings = JsonConvert.DeserializeObject<Domain.Models.Settings>(json); }
private static Domain.Models.Settings newSettingsFile() { var settings = new Domain.Models.Settings(); settings.BuildIds = new string[] {}; settings.Positions = new List<Position>(); settings.UserPositionMappings = new List<UserPositionMapping>(); return settings; }
public override void Configure(IFunctionsHostBuilder builder) { ArgumentNullException.ThrowIfNull(builder); var executionContextOptions = builder.Services.BuildServiceProvider() .GetService <IOptions <ExecutionContextOptions> >(); if (executionContextOptions is null) { throw new ApplicationException("Could not get the ExecutionContextOptions from the Builder"); } var currentDirectory = executionContextOptions.Value.AppDirectory; // Setup the Configuration Source var config = new ConfigurationBuilder() .SetBasePath(currentDirectory) .AddJsonFile("local.settings.json", true) .AddUserSecrets(Assembly.GetExecutingAssembly(), true) .AddEnvironmentVariables() .Build(); builder.Services.AddSingleton <IConfiguration>(config); LogManager.Setup() .SetupExtensions(e => e.AutoLoadAssemblies(false)) .LoadConfigurationFromFile(currentDirectory + Path.DirectorySeparatorChar + "nlog.config", optional: false) .LoadConfiguration(configurationBuilder => configurationBuilder.LogFactory.AutoShutdown = false); SetLoggingGlobalDiagnosticsContext(); // Bind the 'Settings' section to the ISettings class var settings = new Domain.Models.Settings(); config.Bind("Settings", settings); builder.Services.TryAddSingleton <ISettings>(settings); var randomPostSettings = new Domain.Models.RandomPostSettings(); config.Bind("Settings:RandomPost", randomPostSettings); builder.Services.TryAddSingleton <IRandomPostSettings>(randomPostSettings); // Configure the logger builder.Services.AddLogging((loggingBuilder => { //loggingBuilder.ClearProviders(); loggingBuilder.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace); loggingBuilder.AddConfiguration(config); loggingBuilder.AddNLog(new NLogProviderOptions { ShutdownOnDispose = true }); })); // Configure all the services ConfigureTwitter(builder); ConfigureJsonFeedReader(builder); ConfigureSyndicationFeedReader(builder); ConfigureYouTubeReader(builder); ConfigureFunction(builder); }
public static void Init() { Settings = newSettingsFile(); if(File.Exists(_filename))Load(); else Save(); }