Пример #1
0
    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);
    }
Пример #2
0
        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);
        }
Пример #3
0
 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;
 }
Пример #4
0
    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);
    }
Пример #5
0
 public static void Init()
 {
     Settings = newSettingsFile();
     if(File.Exists(_filename))Load();
     else Save();
 }