public void ConfigureServices(IServiceCollection services) { EmailConfiguration emailConfiguration = ConfigurationUtility.CreateInstance <EmailConfiguration>( EmailConfiguration.CONFIGURATION_PATH); ServiceConfiguration serviceConfiguration = ConfigurationUtility.CreateInstance <ServiceConfiguration>( ServiceConfiguration.CONFIGURATION_PATH); ParseServiceConfigurationEnums(serviceConfiguration); services.AddSingleton(emailConfiguration); services.AddSingleton(serviceConfiguration); services.AddTransient <EmailPreviewController, EmailPreviewController>(); services.AddLogging(builder => builder .AddConsole() .AddDebug()); services.AddScoped <IHtmlGeneratorService, HtmlGeneratorService>(); services.AddScoped <IEmailLoggingService, DefaultEmailLogginService>(); AddEmailService(serviceConfiguration, services); bool isDatabaseLogging = serviceConfiguration.SelectedLoggingType.Equals(ServiceConfiguration.LoggingType.DATABASE); if (isDatabaseLogging) { services.AddDbContext <DataContext>(options => options.UseSqlServer(serviceConfiguration.LoggingDatabaseConnectionString)); } else { services.AddDbContext <DataContext>(); } services.AddMvc(); }