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; }