public ContextConfigurationHandler(EventLogsConfigurationProvider eventLogsConfigurationProvider, IServiceProvider serviceProvider)
 {
     this.eventLogsConfigurationProvider = eventLogsConfigurationProvider;
     this.serviceProvider = serviceProvider;
 }
        public static LoggerExtensionBuilder AddLoggingExtensionForEF <TDbContext>(this IServiceCollection services, string auditTableName, UserProvider userProvider, EventLogsConfigurationProvider eventLogsConfigurationProvider)
            where TDbContext : DbContext
        {
            var blackList = new List <IgnoredEntity>();

            services.AddScoped <IRequestHandler <ApplyConfigurationsToContextCommand, bool>, ContextConfigurationHandler>();
            services.AddSingleton <AuditTableNameProvider>(() => auditTableName);
            services.AddSingleton(userProvider);
            services.AddSingleton(blackList);
            services.AddSingleton(eventLogsConfigurationProvider);
            services.AddScoped <IDatabaseAuditProvider, DatabaseAuditProvider>();
            services.DisableAllLogOn <EventLog>();
            services.AddScoped <DbContextProvider>((serviceProvider) =>
            {
                return((service) => service.GetService <TDbContext>());
            });
            return(new LoggerExtensionBuilder(services));
        }