diff --git a/.dockerignore b/.dockerignore index 264f886ec..bde0e509e 100644 --- a/.dockerignore +++ b/.dockerignore @@ -25,6 +25,7 @@ **/.github **/docker-compose.dcproj **/*.DotSettings* +**/appsettings*.json **/node_modules **/*.md LICENSE diff --git a/.gitignore b/.gitignore index bd381b8cd..a5dc36b3f 100644 --- a/.gitignore +++ b/.gitignore @@ -42,9 +42,10 @@ Generated\ Files/ [Tt]est[Rr]esult*/ [Bb]uild[Ll]og.* -# NUNIT +# NUnit *.VisualState.xml TestResult.xml +nunit-*.xml # Build Results of an ATL Project [Dd]ebugPS/ @@ -348,5 +349,5 @@ healthchecksdb MigrationBackup/ # FilterLists Custom Ignores -appsettings*.json +appsettings.*.json src/FilterLists.Web/wwwroot/dist \ No newline at end of file diff --git a/src/FilterLists.Agent/AppSettings/ApplicationInsights.cs b/src/FilterLists.Agent/AppSettings/ApplicationInsights.cs new file mode 100644 index 000000000..9ed6ee251 --- /dev/null +++ b/src/FilterLists.Agent/AppSettings/ApplicationInsights.cs @@ -0,0 +1,7 @@ +namespace FilterLists.Agent.AppSettings +{ + public class ApplicationInsights + { + public string InstrumentationKey { get; set; } + } +} \ No newline at end of file diff --git a/src/FilterLists.Agent/Extensions/ServiceCollectionExtensions.cs b/src/FilterLists.Agent/Extensions/ServiceCollectionExtensions.cs index 440a4b7c8..0a7be3e90 100644 --- a/src/FilterLists.Agent/Extensions/ServiceCollectionExtensions.cs +++ b/src/FilterLists.Agent/Extensions/ServiceCollectionExtensions.cs @@ -1,33 +1,40 @@ -using FilterLists.Agent.Core.Interfaces; +using FilterLists.Agent.AppSettings; +using FilterLists.Agent.Core.Interfaces; using FilterLists.Agent.Infrastructure.Clients; using FilterLists.Agent.Infrastructure.Repositories; using MediatR; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; namespace FilterLists.Agent.Extensions { public static class ServiceCollectionExtensions { - public static void RegisterAgentServices(this IServiceCollection serviceCollection) + public static void RegisterAgentServices(this IServiceCollection services) { - var configurationRoot = BuildConfigurationRoot(); - serviceCollection.AddLogging(b => + services.AddConfiguration(); + services.AddLogging(b => { b.AddConsole(); - b.AddApplicationInsights(configurationRoot["ApplicationInsights:InstrumentationKey"] ?? ""); + var appInsightsKey = b.Services.BuildServiceProvider().GetService>().Value + .InstrumentationKey; + b.AddApplicationInsights(appInsightsKey); }); - serviceCollection.AddMediatR(typeof(Program).Assembly); - serviceCollection.AddHttpClient(); - serviceCollection.AddSingleton(configurationRoot); - serviceCollection.AddSingleton(); - serviceCollection.AddTransient(); + services.AddMediatR(typeof(Program).Assembly); + services.AddHttpClient(); + services.AddSingleton(); + services.AddTransient(); } - private static IConfigurationRoot BuildConfigurationRoot() + private static void AddConfiguration(this IServiceCollection services) { - return new ConfigurationBuilder().AddEnvironmentVariables().Build(); + var config = new ConfigurationBuilder() + .AddEnvironmentVariables() + .AddJsonFile("appsettings.json", true, true) + .Build(); + services.Configure(config.GetSection(nameof(ApplicationInsights))); } } } \ No newline at end of file diff --git a/src/FilterLists.Agent/FilterLists.Agent.csproj b/src/FilterLists.Agent/FilterLists.Agent.csproj index 71da73361..a56b4668f 100644 --- a/src/FilterLists.Agent/FilterLists.Agent.csproj +++ b/src/FilterLists.Agent/FilterLists.Agent.csproj @@ -35,6 +35,7 @@ + @@ -45,4 +46,10 @@ + + + PreserveNewest + + + \ No newline at end of file diff --git a/src/FilterLists.Agent/appsettings.json b/src/FilterLists.Agent/appsettings.json new file mode 100644 index 000000000..b7801f893 --- /dev/null +++ b/src/FilterLists.Agent/appsettings.json @@ -0,0 +1,5 @@ +{ + "ApplicationInsights": { + "InstrumentationKey": "test" + } +} \ No newline at end of file