mirror of
https://github.com/collinbarrett/FilterLists.git
synced 2026-03-11 09:04:27 +00:00
register strongly-typed appsettings*.json
This commit is contained in:
parent
38df36911a
commit
49c3ecc539
6 changed files with 42 additions and 14 deletions
|
|
@ -25,6 +25,7 @@
|
|||
**/.github
|
||||
**/docker-compose.dcproj
|
||||
**/*.DotSettings*
|
||||
**/appsettings*.json
|
||||
**/node_modules
|
||||
**/*.md
|
||||
LICENSE
|
||||
|
|
|
|||
5
.gitignore
vendored
5
.gitignore
vendored
|
|
@ -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
|
||||
7
src/FilterLists.Agent/AppSettings/ApplicationInsights.cs
Normal file
7
src/FilterLists.Agent/AppSettings/ApplicationInsights.cs
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
namespace FilterLists.Agent.AppSettings
|
||||
{
|
||||
public class ApplicationInsights
|
||||
{
|
||||
public string InstrumentationKey { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
@ -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<IOptions<ApplicationInsights>>().Value
|
||||
.InstrumentationKey;
|
||||
b.AddApplicationInsights(appInsightsKey);
|
||||
});
|
||||
serviceCollection.AddMediatR(typeof(Program).Assembly);
|
||||
serviceCollection.AddHttpClient<AgentHttpClient>();
|
||||
serviceCollection.AddSingleton<IConfiguration>(configurationRoot);
|
||||
serviceCollection.AddSingleton<IFilterListsApiClient, FilterListsApiClient>();
|
||||
serviceCollection.AddTransient<IListInfoRepository, ListInfoRepository>();
|
||||
services.AddMediatR(typeof(Program).Assembly);
|
||||
services.AddHttpClient<AgentHttpClient>();
|
||||
services.AddSingleton<IFilterListsApiClient, FilterListsApiClient>();
|
||||
services.AddTransient<IListInfoRepository, ListInfoRepository>();
|
||||
}
|
||||
|
||||
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<ApplicationInsights>(config.GetSection(nameof(ApplicationInsights)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -35,6 +35,7 @@
|
|||
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.3" />
|
||||
<PackageReference Include="Microsoft.DotNet.Analyzers.Compatibility" Version="0.2.12-alpha" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="2.2.4" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.2.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.2.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Http" Version="2.2.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Logging" Version="2.2.0" />
|
||||
|
|
@ -45,4 +46,10 @@
|
|||
<PackageReference Include="SharpCompress" Version="0.23.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Update="appsettings.json">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
5
src/FilterLists.Agent/appsettings.json
Normal file
5
src/FilterLists.Agent/appsettings.json
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"ApplicationInsights": {
|
||||
"InstrumentationKey": "test"
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue