public virtual void RegisterDependencies(DbgoConfig config) { var builder = new ContainerBuilder(); var typeFinder = new WebAppTypeFinder(); builder.RegisterInstance(typeFinder).As <ITypeFinder>().SingleInstance(); var drInstances = new List <IDependencyRegistrar>(); var drTypes = typeFinder.FindClassesOfType <IDependencyRegistrar>(); foreach (var drType in drTypes) { drInstances.Add((IDependencyRegistrar)Activator.CreateInstance(drType)); } //sort drInstances = drInstances.AsQueryable().OrderBy(t => t.Order).ToList(); foreach (var dependencyRegistrar in drInstances) { dependencyRegistrar.Register(builder); } var container = builder.Build(); _containerManager = new ContainerManager(container); }
public RedisCacheManager(DbgoConfig config, IRedisConnectionWrapper connectionWrapper) { if (String.IsNullOrEmpty(config.RedisCachingConnectionString)) { throw new Exception("Redis connection string is empty"); } // ConnectionMultiplexer.Connect should only be called once and shared between callers this._connectionWrapper = connectionWrapper; this._db = _connectionWrapper.GetDatabase(); //this._perRequestCacheManager = EngineContext.Current.Resolve<ICacheManager>(); }
public void Initialize(DbgoConfig config) { RegisterDependencies(config); RunStartupTasks(); }
public RedisConnectionWrapper(DbgoConfig config) { this._config = config; this._connectionString = new Lazy <string>(GetConnectionString); this._redisLockFactory = CreateRedisLockFactory(); }