Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
 /// <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);
 }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
        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);
        }