Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions modules/howtos/examples/ProvisioningResourcesBuckets.csx
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
// Run this using dotnet-script: https://github.com/filipw/dotnet-script
//
// dotnet script ProvisioningResourcesBuckets.csx
//

#r "nuget: CouchbaseNetClient, 3.3.0"

using System;
using System.Threading.Tasks;
using Couchbase;
using Couchbase.Management.Buckets;

await new ProvisioningResourcesBuckets().ExampleAsync();

public class ProvisioningResourcesBuckets
{
public async Task ExampleAsync()
{
// tag::creatingBucketMgr[]
var cluster = await Cluster.ConnectAsync("couchbase://localhost", "Administrator", "password");
var bucketMgr = cluster.Buckets;
// end::creatingBucketMgr[]

{
Console.WriteLine("[createBucket]");
// tag::createBucket[]
await bucketMgr.CreateBucketAsync(
new BucketSettings{
Name = "hello",
FlushEnabled = false,
ReplicaIndexes = true,
RamQuotaMB = 150,
NumReplicas = 1,
BucketType = BucketType.Couchbase,
ConflictResolutionType = ConflictResolutionType.SequenceNumber
}
);
// end::createBucket[]
}

{
Console.WriteLine("[updateBucket]");
// tag::updateBucket[]
var settings = await bucketMgr.GetBucketAsync("hello");
settings.FlushEnabled = true;

await bucketMgr.UpdateBucketAsync(settings);
// end::updateBucket[]
}

{
Console.WriteLine("[flushBucket]");
// tag::flushBucket[]
await bucketMgr.FlushBucketAsync("hello");
// end::flushBucket[]
}

{
Console.WriteLine("[removeBucket]");
// tag::removeBucket[]
await bucketMgr.DropBucketAsync("hello");
// end::removeBucket[]
}
}
}
69 changes: 69 additions & 0 deletions modules/howtos/examples/ProvisioningResourcesViews.csx
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
// Run this using dotnet-script: https://github.com/filipw/dotnet-script
//
// dotnet script ProvisioningResourcesViews.csx
//

#r "nuget: CouchbaseNetClient, 3.3.0"

using System;
using System.Threading.Tasks;
using Couchbase;
using Couchbase.Views;
using Couchbase.Management.Views;

await new ProvisioningResourcesViews().ExampleAsync();

public class ProvisioningResourcesViews
{
public async Task ExampleAsync()
{
// tag::viewmgr[]
var cluster = await Cluster.ConnectAsync("couchbase://localhost", "Administrator", "password");
var bucket = await cluster.BucketAsync("travel-sample");
var viewMgr = bucket.ViewIndexes;
// end::viewmgr[]

{
Console.WriteLine("[createView]");
// tag::createView[]
var views = new Dictionary<string, View>();
views.Add(
"by_country",
new View{ Map = "function (doc, meta) { if (doc.type == 'landmark') { emit([doc.country, doc.city], null); } }" }
);
views.Add(
"by_activity",
new View{ Map="function (doc, meta) { if (doc.type == 'landmark') { emit([doc.country, doc.city], null); } }",
Reduce="_count" }
);

var designDocument = new DesignDocument { Name = "landmarks", Views = views };
await viewMgr.UpsertDesignDocumentAsync(designDocument, DesignDocumentNamespace.Development);
// end::createView[]
}

{
Console.WriteLine("[getView]");
// tag::getView[]
var designDocument = await viewMgr.GetDesignDocumentAsync("landmarks", DesignDocumentNamespace.Development);
Console.WriteLine($"Design Document: {designDocument.Name}");
// end::getView[]
}


{
Console.WriteLine("[publishView]");
// tag::publishView[]
await viewMgr.PublishDesignDocumentAsync("landmarks");
// end::publishView[]
}

{
Console.WriteLine("[removeView]");
// tag::removeView[]
await viewMgr.DropDesignDocumentAsync("landmarks", DesignDocumentNamespace.Production);
// end::removeView[]
}

}
}
123 changes: 123 additions & 0 deletions modules/howtos/examples/QueryIndexManagerExample.csx
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
// Run this using dotnet-script: https://github.com/filipw/dotnet-script
//
// dotnet script QueryIndexManagerExample.csx
//

#r "nuget: CouchbaseNetClient, 3.3.0"

using System;
using System.Threading.Tasks;
using Couchbase;
using Couchbase.Management.Query;
using Couchbase.Core.Exceptions;

await new QueryIndexManagerExample().ExampleAsync();

public class QueryIndexManagerExample
{
public async Task ExampleAsync()
{
// tag::creating-index-mgr[]
var cluster = await Cluster.ConnectAsync("couchbase://localhost", "Administrator", "password");
var queryIndexMgr = cluster.QueryIndexes;
// end::creating-index-mgr[]

{
Console.WriteLine("[primary]");
// tag::primary[]
await queryIndexMgr.CreatePrimaryIndexAsync(
"travel-sample",
new CreatePrimaryQueryIndexOptions()
.ScopeName("tenant_agent_01")
.CollectionName("users")
// Set this if you wish to use a custom name
// .IndexName("custom_name")
.IgnoreIfExists(true)
);
// end::primary[]
}

{
Console.WriteLine("[secondary]");
// tag::secondary[]
try
{
await queryIndexMgr.CreateIndexAsync(
"travel-sample",
"tenant_agent_01_users_email",
new[] { "preferred_email" },
new CreateQueryIndexOptions()
.ScopeName("tenant_agent_01")
.CollectionName("users")
);
}
catch (IndexExistsException)
{
Console.WriteLine("Index already exists!");
}
// end::secondary[]
}

{
Console.WriteLine("[defer-indexes]");
// tag::defer-indexes[]
try
{
// Create a deferred index
await queryIndexMgr.CreateIndexAsync(
"travel-sample",
"tenant_agent_01_users_phone",
new[] { "preferred_phone" },
new CreateQueryIndexOptions()
.ScopeName("tenant_agent_01")
.CollectionName("users")
.Deferred(true)
);

// Build any deferred indexes within `travel-sample`.tenant_agent_01.users
await queryIndexMgr.BuildDeferredIndexesAsync(
"travel-sample",
new BuildDeferredQueryIndexOptions()
.ScopeName("tenant_agent_01")
.CollectionName("users")
);

// Wait for indexes to come online
await queryIndexMgr.WatchIndexesAsync(
"travel-sample",
new[] { "tenant_agent_01_users_phone" },
new WatchQueryIndexOptions()
.ScopeName("users")
.CollectionName("tenant_agent_01")
);
}
catch (IndexExistsException)
{
Console.WriteLine("Index already exists!");
}
// end::defer-indexes[]
}

{
Console.WriteLine("[drop-primary-or-secondary-index]");
// tag::drop-primary-or-secondary-index[]
// Drop primary index
await queryIndexMgr.DropPrimaryIndexAsync(
"travel-sample",
new DropPrimaryQueryIndexOptions()
.ScopeName("tenant_agent_01")
.CollectionName("users")
);

// Drop secondary index
await queryIndexMgr.DropIndexAsync(
"travel-sample",
"tenant_agent_01_users_email",
new DropQueryIndexOptions()
.ScopeName("tenant_agent_01")
.CollectionName("users")
);
// end::drop-primary-or-secondary-index[]
}
}
}
Loading