/// <summary> /// Initializes a new instance of the <see cref="BucketCacheHandle{TCacheValue}"/> class. /// </summary> /// <param name="managerConfiguration">The manager configuration.</param> /// <param name="configuration">The cache handle configuration.</param> /// <param name="loggerFactory">The logger factory.</param> /// <exception cref="System.InvalidOperationException"> /// If <c>configuration.HandleName</c> is not valid. /// </exception> public BucketCacheHandle(CacheManagerConfiguration managerConfiguration, CacheHandleConfiguration configuration, ILoggerFactory loggerFactory) : base(managerConfiguration, configuration) { NotNull(configuration, nameof(configuration)); NotNull(loggerFactory, nameof(loggerFactory)); this.Logger = loggerFactory.CreateLogger(this); // we can configure the bucket name by having "<configKey>:<bucketName>" as handle's // name value var nameParts = configuration.Key.Split(new[] { ":" }, StringSplitOptions.RemoveEmptyEntries); Ensure(nameParts.Length > 0, "Handle key is not valid {0}", configuration.Key); this.configurationName = nameParts[0]; if (nameParts.Length == 2) { this.bucketName = nameParts[1]; } this.configuration = CouchbaseConfigurationManager.GetConfiguration(this.configurationName); this.bucketConfiguration = CouchbaseConfigurationManager.GetBucketConfiguration(this.configuration, this.bucketName); this.bucket = CouchbaseConfigurationManager.GetBucket(this.configuration, this.configurationName, this.bucketName); }
/// <summary> /// Initializes a new instance of the <see cref="BucketCacheHandle{TCacheValue}" /> class. /// </summary> /// <param name="managerConfiguration">The manager configuration.</param> /// <param name="configuration">The cache handle configuration.</param> /// <param name="loggerFactory">The logger factory.</param> /// <param name="additionalSettings">The additional settings.</param> /// <exception cref="System.InvalidOperationException">If <c>configuration.HandleName</c> is not valid.</exception> public BucketCacheHandle(ICacheManagerConfiguration managerConfiguration, CacheHandleConfiguration configuration, ILoggerFactory loggerFactory, BucketCacheHandleAdditionalConfiguration additionalSettings) : base(managerConfiguration, configuration) { NotNull(configuration, nameof(configuration)); NotNull(loggerFactory, nameof(loggerFactory)); Logger = loggerFactory.CreateLogger(this); if (additionalSettings == null) { additionalSettings = new BucketCacheHandleAdditionalConfiguration(); } // we can configure the bucket name by having "<configKey>:<bucketName>" as handle's // this should only be used in 100% by app/web.config based configuration var nameParts = configuration.Key.Split(new[] { ":" }, StringSplitOptions.RemoveEmptyEntries); var configurationName = nameParts.Length > 0 ? nameParts[0] : Guid.NewGuid().ToString(); if (nameParts.Length == 2) { additionalSettings.BucketName = nameParts[1]; } _bucketManager = new CouchbaseConfigurationManager(configurationName, additionalSettings.BucketName, additionalSettings.BucketPassword); }
/// <summary> /// Initializes a new instance of the <see cref="BucketCacheHandle{TCacheValue}"/> class. /// </summary> /// <param name="manager">The manager.</param> /// <param name="configuration">The configuration.</param> /// <exception cref="System.InvalidOperationException"> /// If <c>configuration.HandleName</c> is not valid. /// </exception> public BucketCacheHandle(ICacheManager <TCacheValue> manager, CacheHandleConfiguration configuration) : base(manager, configuration) { NotNull(configuration, nameof(configuration)); // we can configure the bucket name by having "<configKey>:<bucketName>" as handle's // name value var nameParts = configuration.HandleName.Split(new[] { ":" }, StringSplitOptions.RemoveEmptyEntries); Ensure(nameParts.Length > 0, "Handle name is not valid {0}", configuration.HandleName); this.configurationName = nameParts[0]; if (nameParts.Length == 2) { this.bucketName = nameParts[1]; } this.configuration = CouchbaseConfigurationManager.GetConfiguration(this.configurationName); this.bucketConfiguration = CouchbaseConfigurationManager.GetBucketConfiguration(this.configuration, this.bucketName); this.bucket = CouchbaseConfigurationManager.GetBucket(this.configuration, this.configurationName, this.bucketName); }