Exemple #1
0
        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();
        }