public PerformanceMonitor(PerformanceMonitorConfiguration configuration, ISession session, ILog log = null, bool?forceEnabledState = null) { _configuration = configuration; ContinueOnError = true; _monitorLog = log ?? _configuration.GetLogger(); _genericLog = LogManager.GetLogger(_typeOfThis); if (_configuration != null && forceEnabledState.HasValue) { _configuration.Enabled = forceEnabledState.Value; } try { if (_configuration?.Enabled == true) { if (configuration.ControllerAction.Enabled) { ControllerActionMonitor = new ActionMonitor(_configuration.ControllerAction, session); } if (configuration.DataConfiguration.Enabled) { if (configuration.DataConfiguration.ClientData.Enabled) { RequestMonitor = new DataMonitor("Request Data", configuration.DataConfiguration.ClientData, session); } if (configuration.DataConfiguration.Model2DTO.Enabled) { ResponseMonitorPreAction = new DataMonitor("Response Data Pre Action", _configuration.DataConfiguration.Model2DTO, session); ResponseMonitorPostAction = new DataMonitor("Response Data Post Action", _configuration.DataConfiguration.Model2DTO, session); } if (configuration.DataConfiguration.DTO2ViewModel.Enabled) { ConversionMonitor = new DataMonitor("DTO to ViewModel Conversion", _configuration.DataConfiguration.DTO2ViewModel, session); } } if (configuration.DBFlush.Enabled) { DatabaseFlushMonitor = new DataMonitor("Database Flush Monitor", configuration.DBFlush, session); } } } catch (Exception e) { _genericLog.Error($"{_nameOfThis} - Failed to initialize {_nameOfThis}: {e.Message}"); _genericLog.Debug($"{_nameOfThis} - Failed to initialize {_nameOfThis}: {e.StackTrace}"); if (!ContinueOnError) { throw; } } }
public void ConfigureServices(IAppBuilder app, System.Web.Http.HttpConfiguration config) { var cacheConfig = CacheManager.Core.ConfigurationBuilder.LoadConfiguration("ServicesCache"); var builder = new ContainerBuilder(); builder .RegisterInstance(RabbitMQMessagingLogger.FromConfiguration()) .SingleInstance(); builder .RegisterInstance(CacheFactory.FromConfiguration <object>(cacheConfig)) .SingleInstance(); builder .RegisterInstance(CacheFactory.FromConfiguration <object>(CacheManager.Core.ConfigurationBuilder.LoadConfiguration("AppCache"))) .Named <ICacheManager <object> >("AppCache") .SingleInstance(); builder .RegisterInstance(CacheFactory.FromConfiguration <object>(CacheManager.Core.ConfigurationBuilder.LoadConfiguration("SessionStateStorage"))) .Named <ICacheManager <object> >("SessionStateStorage") .SingleInstance(); builder .Register(c => new DSS3_LogisticsPoolingForUrbanDistribution.Hubs.EventsHub()) .As <zAppDev.DotNet.Framework.Hubs.IApplicationHub>().SingleInstance(); var repoBuilder = new RepositoryBuilder(); builder .Register(c => repoBuilder) .As <zAppDev.DotNet.Framework.Data.DAL.IRepositoryBuilder>().SingleInstance(); builder .Register(c => new zAppDev.DotNet.Framework.Workflow.WorkflowManager(repoBuilder)) .As <zAppDev.DotNet.Framework.Workflow.WorkflowManager>().SingleInstance(); builder .Register(c => { var scheduleManager = new zAppDev.DotNet.Framework.Workflow.ScheduleManager(repoBuilder); scheduleManager.SetSchedules(new List <zAppDev.DotNet.Framework.Workflow.WorkflowSchedule> { new zAppDev.DotNet.Framework.Workflow.WorkflowSchedule { Workflow = "WorkflowSock", Active = true, CronExpression = "* * * * *" } }); return(scheduleManager); }) .As <zAppDev.DotNet.Framework.Workflow.ScheduleManager>().SingleInstance(); builder .Register(c => new NHAuditTrailManager()) .As <INHAuditTrailManager>().SingleInstance(); builder .Register(c => { return(new Security.Encryption.EncryptionManager()); }) .As <zAppDev.DotNet.Framework.Data.Encryption.Manager.EncryptionManagerBase>() .SingleInstance(); builder .Register(c => { PerformanceMonitorConfiguration monitorConfiguration = null; return(monitorConfiguration); }) .SingleInstance(); var container = builder.Build(); var csl = new AutofacServiceLocator(container); ServiceLocator.SetLocatorProvider(() => csl); config.DependencyResolver = new AutofacWebApiDependencyResolver(container); }
public void ConfigureServices(IAppBuilder app, System.Web.Http.HttpConfiguration config) { var cacheConfig = CacheManager.Core.ConfigurationBuilder.LoadConfiguration("ServicesCache"); var builder = new ContainerBuilder(); builder .RegisterInstance(RabbitMQMessagingLogger.FromConfiguration()) .SingleInstance(); builder .RegisterInstance(CacheFactory.FromConfiguration <object>(cacheConfig)) .SingleInstance(); builder .RegisterInstance(CacheFactory.FromConfiguration <object>(CacheManager.Core.ConfigurationBuilder.LoadConfiguration("AppCache"))) .Named <ICacheManager <object> >("AppCache") .SingleInstance(); builder .RegisterInstance(CacheFactory.FromConfiguration <object>(CacheManager.Core.ConfigurationBuilder.LoadConfiguration("SessionStateStorage"))) .Named <ICacheManager <object> >("SessionStateStorage") .SingleInstance(); builder .Register(c => new DSS4_ECompliance.Hubs.EventsHub()) .As <zAppDev.DotNet.Framework.Hubs.IApplicationHub>().SingleInstance(); var repoBuilder = new RepositoryBuilder(); builder .Register(c => repoBuilder) .As <zAppDev.DotNet.Framework.Data.DAL.IRepositoryBuilder>().SingleInstance(); builder .Register(c => new zAppDev.DotNet.Framework.Workflow.WorkflowManager(repoBuilder)) .As <zAppDev.DotNet.Framework.Workflow.WorkflowManager>().SingleInstance(); builder .Register(c => { var scheduleManager = new zAppDev.DotNet.Framework.Workflow.ScheduleManager(repoBuilder); zAppDev.DotNet.Framework.Workflow.ScheduleThread.NumberOfSessions = 0; zAppDev.DotNet.Framework.Workflow.ScheduleThread.Manager = scheduleManager; // Inject Application Schedule Manager zAppDev.DotNet.Framework.Workflow.ScheduleThread.StartScheduleThread(HttpContext.Current); return(scheduleManager); }) .As <zAppDev.DotNet.Framework.Workflow.ScheduleManager>().SingleInstance(); builder .Register(c => new NHAuditTrailManager()) .As <INHAuditTrailManager>().SingleInstance(); builder .Register(c => { return(new Security.Encryption.EncryptionManager()); }) .As <zAppDev.DotNet.Framework.Data.Encryption.Manager.EncryptionManagerBase>() .SingleInstance(); builder .Register(c => { PerformanceMonitorConfiguration monitorConfiguration = null; return(monitorConfiguration); }) .SingleInstance(); var container = builder.Build(); var csl = new AutofacServiceLocator(container); ServiceLocator.SetLocatorProvider(() => csl); config.DependencyResolver = new AutofacWebApiDependencyResolver(container); }