Files
WireMock.Net-wiremock/examples/WireMock.Net.WebApplication/Program.cs
Stef Heyenrath 7ad8b60fbd ai
2019-02-18 22:36:01 +01:00

59 lines
2.1 KiB
C#

using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using System;
using WireMock.Settings;
namespace WireMock.Net.WebApplication
{
public class Program
{
public static void Main(string[] args)
{
// Create service collection
var serviceCollection = new ServiceCollection();
ConfigureServices(serviceCollection);
// Create service provider
var serviceProvider = serviceCollection.BuildServiceProvider();
// Run app
serviceProvider.GetService<App>().Run();
}
private static void ConfigureServices(IServiceCollection services)
{
// Build configuration
var configuration = new ConfigurationBuilder()
.SetBasePath(AppContext.BaseDirectory)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddEnvironmentVariables() // <-- this is needed to to override settings via the Azure Portal App Settings
.Build();
// Add LoggerFactory and Logger
var factory = new LoggerFactory();
services.AddSingleton(factory
.AddConsole(configuration.GetSection("Logging"))
.AddDebug()
.AddAzureWebAppDiagnostics()
);
services.AddSingleton(factory.CreateLogger("WireMock.Net Logger"));
// Add ApplicationInsights
services.AddApplicationInsightsTelemetry();
// Add access to generic IConfigurationRoot
services.AddSingleton(configuration);
// Add access to IFluentMockServerSettings
var settings = configuration.GetSection("FluentMockServerSettings").Get<FluentMockServerSettings>();
services.AddSingleton<IFluentMockServerSettings>(settings);
// Add services
services.AddTransient<IWireMockService, WireMockService>();
// Add app
services.AddTransient<App>();
}
}
}