コード例 #1
0
        public async Task InitializeCouchBase()
        {
            var cluster = await _clusterProvider.GetClusterAsync();

            var bucketExist =
                (await cluster.Buckets.GetAllBucketsAsync()).ContainsKey(_setupAction.Bucket);
            IBucket bucket = null;

            if (bucketExist)
            {
                bucket = await _bucketProvider.GetBucketAsync(_setupAction.Bucket);
            }
            else
            {
                bucket = await cluster.BucketAsync(_setupAction.Bucket);
            }


            var settingExist = await bucket.DefaultCollection().ExistsAsync(_setupAction.ConfigId);

            //Seed To DB from Appsettings
            if (settingExist.Exists)
            {
                return;
            }

            var nLogJson = BuildJson(_configuration.GetSection("NLog"));

            await _logConfigAppService.UpsertAsync(nLogJson.ToObject <object>());
        }
コード例 #2
0
        public async Task Setup()
        {
            Cluster = await Couchbase.Cluster.ConnectAsync(
                "couchbase://localhost",
                "Administrator",
                "password");

            Bucket = await Cluster.BucketAsync("matt");

            Collection = Bucket.DefaultCollection();
        }
        private async Task ConnectToCouchbaseAsync()
        {
            _trace.TraceInformation("Connecting...");
            _cluster = await Cluster.ConnectAsync(_config.ConnectionString, _config.Username, _config.Password);

            _bucket = await _cluster.BucketAsync(_config.Bucket);

            _collection = _bucket.DefaultCollection();

            _trace.TraceInformation("Connected to Couchbase collection - ", _collection.Name);
        }
コード例 #4
0
        /// <summary>
        /// Gets a Couchbase Lock Provider using a bucket provider.
        /// </summary>
        /// <param name="bucket">Couchbase Bucket to use.</param>
        /// <returns>Instance of <see cref="CouchbaseLockProvider"/>.</returns>
        public static CouchbaseLockProvider GetInstance(IBucket bucket)
        {
            if (bucket == null)
            {
                throw new ArgumentNullException(nameof(bucket));
            }

            var collection = bucket.DefaultCollection();

            return(new CouchbaseLockProvider(collection));
        }
コード例 #5
0
        public async Task <object> GetUserAnnotationsRange(string userId)
        {
            try
            {
                var user = await _bucket.DefaultCollection().GetAsync(userId);

                return(user.ContentAs <User>());
            }
            catch (Couchbase.Core.Exceptions.KeyValue.DocumentNotFoundException)
            {
                return(null);
            }
        }
コード例 #6
0
        private async Task Initialize()
        {
            /* Logging here used the following dependencies in the associated .csproj file
             *     <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.1.3" />
             *     <PackageReference Include="Serilog.Extensions.Logging.File" Version="2.0.0-dev-00039" />
             */

            IServiceCollection serviceCollection = new ServiceCollection();

            serviceCollection.AddLogging(builder => builder
                                         .AddFilter(level => level >= LogLevel.Information) // change to Debug if trying to diagnose
                                         );
            loggerFactory = serviceCollection.BuildServiceProvider().GetService <ILoggerFactory>();
            loggerFactory.AddFile("Logs/myapp-{Date}.txt"); // change to Debug if trying to diagnose


            /* Note: in the configuration below, EnableTls is required as Couchbase Capella is
             * always TLS. Also, the IgnoreRemoteCertificateNameMismatch will trust the asserted
             * CA Cert by Couchbase Capella. There is a known issue that prevents programmatically
             * adding the cert, so either this or adding it to the platform is required.
             */
            var config = new ClusterOptions
            {
                UserName = "******",
                Password = "******",
                IgnoreRemoteCertificateNameMismatch = true, // workaround for CA Cert
                EnableTls = true
            }.WithLogging(loggerFactory);

            cluster = await Cluster.ConnectAsync(
                "couchbases://6b115491-a379-4bc3-bedb-780c5fbdf8a8.dp.cloud.couchbase.com", config);

            Thread.Sleep(500);

            bucket = await cluster.BucketAsync("travel-sample");

            collection = bucket.DefaultCollection();
        }
コード例 #7
0
        public virtual async Task Setup()
        {
            var connectionString = Environment.GetEnvironmentVariable("COUCHBASE_CONNECTION_STRING") ?? "couchbase://localhost";
            var username         = Environment.GetEnvironmentVariable("COUCHBASE_USERNAME") ?? "Administrator";
            var password         = Environment.GetEnvironmentVariable("COUCHBASE_PASSWORD") ?? "password";
            var bucketName       = Environment.GetEnvironmentVariable("COUCHBASE_BUCKET_NAME") ?? "tests";

            TestCluster = await Cluster.ConnectAsync(connectionString, username, password);

            // from this point on, any test using this base class assumes:
            // - that a bucket with name in bucketName exists
            // - that a primary index in that bucket exists
            // Locally, you'll need to make sure this is setup manually
            // Also see the .github folder for how this is setup for Github Actions CI/CD

            Bucket = await TestCluster.BucketAsync(bucketName);

            Collection        = Bucket.DefaultCollection();
            DocumentsToRemove = new List <string>();
            BucketProvider    = new IntegrationTestBucketProvider(Bucket);
            TestKeyGen        = new TestKeyGenerator(DocumentsToRemove);
            TestConfiguration = new FakeConfiguration();
        }