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;
                }
            }
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }