Esempio n. 1
0
        public IRepository <T> Create <T>(CreateType createType = CreateType.DynamicProxy)
        {
            IRepository <T> repository = null;

            switch (createType)
            {
            case CreateType.DynamicProxy:
                repository = new DynamicProxy <IRepository <T> >().Create(new Repository <T>(),
                                                                          s => logger.Info($"{s}"),
                                                                          e => logger.Error($"{e}"),
                                                                          o => o?.ToString(),
                                                                          TaskScheduler.Current);
                break;

            case CreateType.AuthenticationProxy:
                repository = new AuthenticationProxy <IRepository <T> >().Create(Create <T>(CreateType.DynamicProxy), TaskScheduler.Current);
                break;

            case CreateType.PerformanceProxy:
                repository = new PerformanceProxy <IRepository <T> >().Create(Create <T>(CreateType.AuthenticationProxy));
                break;

            case CreateType.LoggerRepository:
                repository = new LoggerRepository <T>(new Repository <T>());
                break;
            }
            return(repository);
        }
        private void StartDeque()
        {
            Task.Factory.StartNew(() =>
            {
                string msmqName = ConfigurationManager.AppSettings["msmqName"];
                bool dryRun     = Convert.ToBoolean(ConfigurationManager.AppSettings["dryRun"]);

                if (!dryRun)
                {
                    _log.Debug("Dry run disabled. Waiting for any rule...");
                    _nesper.WaitUntilRuleAdded();
                }

                _nesperWorker = new NesperWorkerThread(_nesper, msmqName);
                _nesperWorker.StartThread();

                _performanceProxy      = new PerformanceProxy();
                var nesperPerformance  = new NesperPerformance(_log, _performanceProxy);
                string reportEveryNSec = ConfigurationManager.AppSettings["PerformanceSaveIntervalInSeconds"];
                nesperPerformance.Start(Convert.ToInt32(reportEveryNSec));
            });
        }
 public NesperPerformance(ILog perfLog, PerformanceProxy proxy)
 {
     _perfLog = perfLog;
     _proxy   = proxy;
 }