public RedisCacheManager(ICacheManager perRequestCacheManager, IRedisConnectionWrapper connectionWrapper, AnyConfig config) { if (string.IsNullOrEmpty(config.RedisConnectionString)) { throw new Exception("Redis connection string is empty"); } _perRequestCacheManager = perRequestCacheManager; // ConnectionMultiplexer.Connect should only be called once and shared between callers _connectionWrapper = connectionWrapper; _db = _connectionWrapper.GetDatabase(config.RedisDatabaseId ?? (int)RedisDatabaseNumber.Cache); }
/// <summary> /// Register dependencies /// </summary> /// <param name="containerBuilder">Container builder</param> /// <param name="nopConfig">Nop configuration parameters</param> public virtual void RegisterDependencies(ContainerBuilder containerBuilder, AnyConfig nopConfig) { //register engine containerBuilder.RegisterInstance(this).As <IEngine>().SingleInstance(); //register type finder containerBuilder.RegisterInstance(_typeFinder).As <ITypeFinder>().SingleInstance(); //find dependency registrars provided by other assemblies var dependencyRegistrars = _typeFinder.FindClassesOfType <IDependencyRegistrar>(); //create and sort instances of dependency registrars var instances = dependencyRegistrars .Select(dependencyRegistrar => (IDependencyRegistrar)Activator.CreateInstance(dependencyRegistrar)) .OrderBy(dependencyRegistrar => dependencyRegistrar.Order); //register all provided dependencies foreach (var dependencyRegistrar in instances) { dependencyRegistrar.Register(containerBuilder, _typeFinder, nopConfig); } }
/// <summary> /// Add and configure services /// </summary> /// <param name="services">Collection of service descriptors</param> /// <param name="configuration">Configuration of the application</param> /// <param name="nopConfig">Nop configuration parameters</param> public void ConfigureServices(IServiceCollection services, IConfiguration configuration, AnyConfig nopConfig) { //find startup configurations provided by other assemblies _typeFinder = new WebAppTypeFinder(); var startupConfigurations = _typeFinder.FindClassesOfType <IAnyStartup>(); //create and sort instances of startup configurations var instances = startupConfigurations .Select(startup => (IAnyStartup)Activator.CreateInstance(startup)) .OrderBy(startup => startup.Order); //configure services foreach (var instance in instances) { instance.ConfigureServices(services, configuration); } //register mapper configurations AddAutoMapper(services, _typeFinder); //run startup tasks RunStartupTasks(_typeFinder); //resolve assemblies here. otherwise, plugins can throw an exception when rendering views AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve; }
public RedisConnectionWrapper(AnyConfig config) { _config = config; _connectionString = new Lazy <string>(GetConnectionString); _redisLockFactory = CreateRedisLockFactory(); }