/// <summary> /// Initializes the CouchbaseStorage form the IConfiguration section. /// </summary> /// <param name="configuration">Represents a set of key/value application configuration properties.</param> /// <param name="sectionName">The configuration section name</param> /// <param name="defaultBucket">The default name of the bucket to use</param> /// <param name="options">The CouchbaseStorageOptions object to override any of the options</param> public CouchbaseStorage(IConfiguration configuration, string sectionName, string defaultBucket = "default", CouchbaseStorageOptions options = null) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } if (string.IsNullOrEmpty(sectionName)) { throw new ArgumentNullException(nameof(sectionName)); } CouchbaseClientDefinition definition = new CouchbaseClientDefinition(); configuration.GetSection(sectionName).Bind(definition); ClientConfiguration config = new ClientConfiguration(definition); Initialize(config, defaultBucket, options); }
/// <summary> /// Initializes the CouchbaseStorage form ClientConfiguration. /// </summary> /// <param name="configuration">The configuration</param> /// <param name="defaultBucket">The default name of the bucket to use</param> /// <param name="options">The CouchbaseStorageOptions object to override any of the options</param> public CouchbaseStorage(ClientConfiguration configuration, string defaultBucket = "default", CouchbaseStorageOptions options = null) { Initialize(configuration, defaultBucket, options); }
/// <summary> /// Initializes the CouchbaseStorage from the XML configuration section. /// </summary> /// <param name="sectionName">The xml configuration section name</param> /// <param name="defaultBucket">The default name of the bucket to use</param> /// <param name="options">The CouchbaseStorageOptions object to override any of the options</param> public CouchbaseStorage(string sectionName, string defaultBucket = "default", CouchbaseStorageOptions options = null) { if (string.IsNullOrEmpty(sectionName)) { throw new ArgumentNullException(nameof(sectionName)); } CouchbaseClientSection configurationSection = System.Configuration.ConfigurationManager.GetSection(sectionName) as CouchbaseClientSection; ClientConfiguration configuration = new ClientConfiguration(configurationSection); Initialize(configuration, defaultBucket, options); }
private void Initialize(ClientConfiguration configuration, string defaultBucket, CouchbaseStorageOptions options) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } if (string.IsNullOrEmpty(defaultBucket)) { throw new ArgumentNullException(nameof(defaultBucket)); } Options = options ?? new CouchbaseStorageOptions(); Options.DefaultBucket = defaultBucket; configuration.Serializer = () => new DocumentDefaultSerializer(); Client = new Cluster(configuration); string indexPrefix = $"IDX_{defaultBucket}"; IBucket bucket = Client.OpenBucket(Options.DefaultBucket); { IBucketManager manager = bucket.CreateManager(bucket.Configuration.Username, bucket.Configuration.Password); manager.CreateN1qlPrimaryIndex($"{indexPrefix}_Primary", false); manager.CreateN1qlIndex($"{indexPrefix}_Type", false, "type"); manager.CreateN1qlIndex($"{indexPrefix}_Id", false, "id"); manager.CreateN1qlIndex($"{indexPrefix}_Expire", false, "expire_on"); manager.CreateN1qlIndex($"{indexPrefix}_Name", false, "name"); } JobQueueProvider provider = new JobQueueProvider(this); QueueProviders = new PersistentJobQueueProviderCollection(provider); }