Ejemplo n.º 1
0
        public static void Init(IServiceCollection services)
        {
            services.AddSingleton <IBackgroundTaskQueue, BackgroundTaskQueue>();
            services.AddHostedService <QueuedHostedService>();

            var serviceResolver = services.BuildServiceProvider();
            //resolve instance inject from DB layer inject class

            HostInformationDTO hostInformation = new HostInformationDTO(
                serviceResolver.GetService <IConfiguration>().GetSection("HostInformation").GetSection("Name").Value,
                serviceResolver.GetService <IConfiguration>().GetSection("HostInformation").GetSection("Server").Value
                );

            LoggerSettingsDTO loggerSettings = new LoggerSettingsDTO(
                Convert.ToBoolean(serviceResolver.GetService <IConfiguration>().GetSection("Logging").GetSection("TurnOn").Value),
                serviceResolver.GetService <IConfiguration>().GetSection("Logging").GetSection("LogLevel").Value,
                Convert.ToInt32(serviceResolver.GetService <IConfiguration>().GetSection("Logging").GetSection("StorageType").Value)
                );

            //route source code to inject other providers like XML storage log provider
            //serviceResolver.GetService<ILoggerFactory>().AddProvider(new DatabaseLoggerProvider(serviceResolver.GetService<IEventLogRepository>(),
            //                                                                hostInformation,
            //                                                                loggerSettings));

            services.AddScoped <ILogProvider>(s => new LogProvider(serviceResolver.GetService <IEventLogRepository>(),
                                                                   serviceResolver.GetService <IXmlDataProvider <EventLog> >(),
                                                                   hostInformation,
                                                                   loggerSettings));

            services.AddScoped <ICacheService>(s => new CacheService(serviceResolver.GetService <IMemoryCache>()));
            services.AddScoped <IUserService>(s =>
                                              new UserService(serviceResolver.GetService <IUserRepository>(), services.BuildServiceProvider().GetService <ILogProvider>()));
        }
Ejemplo n.º 2
0
 public LogProvider(IEventLogRepository eventLogRepository,
                    IXmlDataProvider <EventLog> xmlEventLogRepository,
                    HostInformationDTO hostInformation,
                    LoggerSettingsDTO loggerSettings)
 {
     this._eventLogRepository    = eventLogRepository;
     this._hostInformation       = hostInformation;
     this._loggerSettings        = loggerSettings;
     this._xmlEventLogRepository = xmlEventLogRepository;
 }
Ejemplo n.º 3
0
 public LogProvider(IEventLogRepository eventLogRepository,
                    IXmlDataProvider <EventLog> xmlEventLogRepository,
                    HostInformationDTO hostInformation,
                    LoggerSettingsDTO loggerSettings,
                    IBackgroundTaskQueue queue)
 {
     this._eventLogRepository    = eventLogRepository;
     this._hostInformation       = hostInformation;
     this._loggerSettings        = loggerSettings;
     this._xmlEventLogRepository = xmlEventLogRepository;
     this._queue = queue;
 }