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>()); }
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); }
/// <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)); }
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); } }
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(); }
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(); }