public void Dispose() { var configuration = (Configuration)ConfigurationManager.GetSection("DocumentDbProvider"); using (var client = new DocumentClient(new Uri(configuration.Endpoint), configuration.Key)) { client.DeleteDatabaseAsync(_documentDbContext.Database.SelfLink).Wait(); } _documentDbContext.Dispose(); }
private static async Task GetStartedDemo() { // Create a new instance of the DocumentClient client = new DocumentClient(new Uri(EndpointUrl), AuthorizationKey); database = await CreateDatabaseAsync(); await CreateCollectionAsync(); await SeedDocuments(); await SampleSqlQuery(); await SampleLinqQuery(); await SampleLambdaQuery(); Console.WriteLine("Press any key to delete database..."); Console.ReadKey(); await client.DeleteDatabaseAsync("dbs/" + database.Id); client.Dispose(); }
/// <summary> /// Deletes the service database. /// </summary> public static async Task DeleteDatabase(DocumentClient client, string databaseId) { // Get the database var db = client.CreateDatabaseQuery().Where(d => d.Id == databaseId).AsEnumerable().FirstOrDefault(); // Return the database or create it if not exists yet if (db != null) { await client.DeleteDatabaseAsync(db.SelfLink); } }
private static async Task GetStartedDemo() { // Create a new instance of the DocumentClient var client = new DocumentClient(new Uri(EndpointUrl), AuthorizationKey); // Check to verify a database with the id=FamilyRegistry does not exist Database database = client.CreateDatabaseQuery().Where(db => db.Id == "FamilyRegistry").AsEnumerable().FirstOrDefault(); // If the database does not exist, create a new database if (database == null) { database = await client.CreateDatabaseAsync( new Database { Id = "FamilyRegistry" }); WriteMessage("Created dbs/FamilyRegistry"); } // Check to verify a document collection with the id=FamilyCollection does not exist DocumentCollection documentCollection = client.CreateDocumentCollectionQuery("dbs/" + database.Id).Where(c => c.Id == "FamilyCollection").AsEnumerable().FirstOrDefault(); // If the document collection does not exist, create a new collection if (documentCollection == null) { documentCollection = await client.CreateDocumentCollectionAsync("dbs/" + database.Id, new DocumentCollection { Id = "FamilyCollection" }); WriteMessage("Created dbs/FamilyRegistry/colls/FamilyCollection"); } // Check to verify a document with the id=AndersenFamily does not exist Document document = client.CreateDocumentQuery("dbs/" + database.Id + "/colls/" + documentCollection.Id).Where(d => d.Id == "AndersenFamily").AsEnumerable().FirstOrDefault(); // If the document does not exist, create a new document if (document == null) { // Create the Andersen Family document Family andersonFamily = new Family { Id = "AndersenFamily", LastName = "Andersen", Parents = new Parent[] { new Parent { FirstName = "Thomas" }, new Parent { FirstName = "Mary Kay"} }, Children = new Child[] { new Child { FirstName = "Henriette Thaulow", Gender = "female", Grade = 5, Pets = new Pet[] { new Pet { GivenName = "Fluffy" } } } }, Address = new Address { State = "WA", County = "King", City = "Seattle" }, IsRegistered = true }; // id based routing for the first argument, "dbs/FamilyRegistry/colls/FamilyCollection" await client.CreateDocumentAsync("dbs/" + database.Id + "/colls/" + documentCollection.Id, andersonFamily); WriteMessage("Created dbs/FamilyRegistry/colls/FamilyCollection/docs/AndersenFamily"); } // Check to verify a document with the id=AndersenFamily does not exist document = client.CreateDocumentQuery("dbs/" + database.Id + "/colls/" + documentCollection.Id).Where(d => d.Id == "WakefieldFamily").AsEnumerable().FirstOrDefault(); if (document == null) { // Create the WakeField document Family wakefieldFamily = new Family { Id = "WakefieldFamily", Parents = new Parent[] { new Parent { FamilyName= "Wakefield", FirstName= "Robin" }, new Parent { FamilyName= "Miller", FirstName= "Ben" } }, Children = new Child[] { new Child { FamilyName= "Merriam", FirstName= "Jesse", Gender= "female", Grade= 8, Pets= new Pet[] { new Pet { GivenName= "Goofy" }, new Pet { GivenName= "Shadow" } } }, new Child { FamilyName= "Miller", FirstName= "Lisa", Gender= "female", Grade= 1 } }, Address = new Address { State = "NY", County = "Manhattan", City = "NY" }, IsRegistered = false }; // id based routing for the first argument, "dbs/FamilyRegistry/colls/FamilyCollection" await client.CreateDocumentAsync("dbs/" + database.Id + "/colls/" + documentCollection.Id, wakefieldFamily); WriteMessage("Created dbs/FamilyRegistry/colls/FamilyCollection/docs/WakefieldFamily"); } // Query the documents using DocumentDB SQL for the Andersen family var families = client.CreateDocumentQuery("dbs/" + database.Id + "/colls/" + documentCollection.Id, "SELECT * " + "FROM Families f " + "WHERE f.id = \"AndersenFamily\""); foreach (var family in families) { Console.WriteLine("\tRead {0} from SQL", family); } // Query the documents using LINQ for the Andersen family families = from f in client.CreateDocumentQuery("dbs/" + database.Id + "/colls/" + documentCollection.Id) where f.Id == "AndersenFamily" select f; foreach (var family in families) { Console.WriteLine("Read {0} from LINQ", family); } // Query the documents using LINQ lambdas for the Andersen family families = client.CreateDocumentQuery("dbs/" + database.Id + "/colls/" + documentCollection.Id) .Where(f => f.Id == "AndersenFamily") .Select(f => f); foreach (var family in families) { Console.WriteLine("\tRead {0} from LINQ query", family); } // Clean up/delete the database and client await client.DeleteDatabaseAsync("dbs/" + database.Id); client.Dispose(); }
private static async Task GetStartedDemo() { // Create a new instance of the DocumentClient var client = new DocumentClient(new Uri(EndpointUrl), AuthorizationKey); // Check to verify a database with the id=FamilyRegistry does not exist Database database = client.CreateDatabaseQuery().Where(db => db.Id == "FamilyRegistry").AsEnumerable().FirstOrDefault(); // If the database does not exist, create a new database if (database == null) { database = await client.CreateDatabaseAsync( new Database { Id = "FamilyRegistry" }); WriteMessage("Created dbs/FamilyRegistry"); } // Check to verify a document collection with the id=FamilyCollection does not exist DocumentCollection documentCollection = client.CreateDocumentCollectionQuery("dbs/" + database.Id).Where(c => c.Id == "FamilyCollection").AsEnumerable().FirstOrDefault(); // If the document collection does not exist, create a new collection if (documentCollection == null) { documentCollection = await client.CreateDocumentCollectionAsync("dbs/" + database.Id, new DocumentCollection { Id = "FamilyCollection" }); WriteMessage("Created dbs/FamilyRegistry/colls/FamilyCollection"); } // Check to verify a document with the id=AndersenFamily does not exist Document document = client.CreateDocumentQuery("dbs/" + database.Id + "/colls/" + documentCollection.Id).Where(d => d.Id == "AndersenFamily").AsEnumerable().FirstOrDefault(); // If the document does not exist, create a new document if (document == null) { // Create the Andersen Family document Family andersonFamily = new Family { Id = "AndersenFamily", LastName = "Andersen", Parents = new Parent[] { new Parent { FirstName = "Thomas" , SSN = "111-11-1111"}.Seal(), new Parent { FirstName = "Mary Kay", SSN = "222-22-2222"}.Seal() }, Children = new Child[] { new Child { FirstName = "Henriette Thaulow", Gender = "female", Grade = 5, Pets = new Pet[] { new Pet { GivenName = "Fluffy" } } } }, Address = new Address { State = "WA", County = "King", City = "Seattle" }, IsRegistered = true, GeneticCondition = "diabetes" }; Crypteron.CipherObject.Seal(andersonFamily); // or andersonFamily.Seal() // id based routing for the first argument, "dbs/FamilyRegistry/colls/FamilyCollection" await client.CreateDocumentAsync("dbs/" + database.Id + "/colls/" + documentCollection.Id, andersonFamily); WriteMessage("Created dbs/FamilyRegistry/colls/FamilyCollection/docs/AndersenFamily"); } // Check to verify a document with the id=AndersenFamily does not exist document = client.CreateDocumentQuery("dbs/" + database.Id + "/colls/" + documentCollection.Id).Where(d => d.Id == "WakefieldFamily").AsEnumerable().FirstOrDefault(); if (document == null) { // Create the WakeField document Family wakefieldFamily = new Family { Id = "WakefieldFamily", Parents = new Parent[] { new Parent { FamilyName= "Wakefield", FirstName= "Robin" }, new Parent { FamilyName= "Miller", FirstName= "Ben" } }, Children = new Child[] { new Child { FamilyName= "Merriam", FirstName= "Jesse", Gender= "female", Grade= 8, Pets= new Pet[] { new Pet { GivenName= "Goofy" }, new Pet { GivenName= "Shadow" } } }, new Child { FamilyName= "Miller", FirstName= "Lisa", Gender= "female", Grade= 1 } }, Address = new Address { State = "NY", County = "Manhattan", City = "NY" }, IsRegistered = false, }; Crypteron.CipherObject.Seal(wakefieldFamily); // or wakefieldFamily.Seal() // id based routing for the first argument, "dbs/FamilyRegistry/colls/FamilyCollection" await client.CreateDocumentAsync("dbs/" + database.Id + "/colls/" + documentCollection.Id, wakefieldFamily); WriteMessage("Created dbs/FamilyRegistry/colls/FamilyCollection/docs/WakefieldFamily"); } // Query the documents using DocumentDB SQL for the Andersen family var families = client.CreateDocumentQuery<Family>("dbs/" + database.Id + "/colls/" + documentCollection.Id, "SELECT * " + "FROM Families f " + "WHERE f.id = \"AndersenFamily\""); foreach (var family in families) { Console.WriteLine("\tRead {0} from SQL", JsonConvert.SerializeObject(family.Unseal(), Formatting.Indented)); } // Query the documents using LINQ for the Andersen family families = from f in client.CreateDocumentQuery<Family>("dbs/" + database.Id + "/colls/" + documentCollection.Id) where f.Id == "AndersenFamily" select f; foreach (var family in families) { Console.WriteLine("Read {0} from LINQ", JsonConvert.SerializeObject(family.Unseal(), Formatting.Indented)); } // Query the documents using LINQ lambdas for the Andersen family // Need to get results back in original class with Secure attributes // Dynamic JObject is not currently supported families = client.CreateDocumentQuery<Family>("dbs/" + database.Id + "/colls/" + documentCollection.Id) .Where(f => f.Id == "AndersenFamily") .Select(f => f); foreach (var family in families) { Console.WriteLine("\tRead {0} from LINQ query", JsonConvert.SerializeObject(family.Unseal(), Formatting.Indented)); } // Clean up/delete the database and client Console.WriteLine("Done. Press 'd' to delete database prior to exiting"); var choice = Console.ReadKey().KeyChar; if (choice == 'd' || choice == 'D') { Console.WriteLine("\nDeleting database ..."); await client.DeleteDatabaseAsync("dbs/" + database.Id); } client.Dispose(); }
private static async Task GetStartedDemo() { // Make sure to call client.Dispose() once you've finished all DocumentDB interactions // Create a new instance of the DocumentClient var client = new DocumentClient(new Uri(EndpointUrl), AuthorizationKey); // Check to verify a database with the id=FamilyRegistry does not exist Database database = client.CreateDatabaseQuery().Where(db => db.Id == "FamilyRegistry").AsEnumerable().FirstOrDefault(); if (database == null) { // Create a database database = await client.CreateDatabaseAsync( new Database { Id = "FamilyRegistry" }); } else { Warn("database"); } // Check to verify a document collection with the id=FamilyCollection does not exist DocumentCollection documentCollection = client.CreateDocumentCollectionQuery(database.CollectionsLink).Where(c => c.Id == "FamilyCollection").AsEnumerable().FirstOrDefault(); if (documentCollection == null) { // Create a document collection using the lowest performance tier available (currently, S1) documentCollection = await client.CreateDocumentCollectionAsync(database.CollectionsLink, new DocumentCollection { Id = "FamilyCollection" }, new RequestOptions { OfferType = "S1" }); } else { Warn("document collection"); } // Check to verify a document with the id=AndersenFamily does not exist Document document = client.CreateDocumentQuery(documentCollection.DocumentsLink).Where(d => d.Id == "AndersenFamily").AsEnumerable().FirstOrDefault(); if (document == null) { // Create the Andersen Family document Family AndersonFamily = new Family { Id = "AndersenFamily", LastName = "Andersen", Parents = new Parent[] { new Parent { FirstName = "Thomas" }, new Parent { FirstName = "Mary Kay"} }, Children = new Child[] { new Child { FirstName = "Henriette Thaulow", Gender = "female", Grade = 5, Pets = new Pet[] { new Pet { GivenName = "Fluffy" } } } }, Address = new Address { State = "WA", County = "King", City = "Seattle" }, IsRegistered = true }; await client.CreateDocumentAsync(documentCollection.DocumentsLink, AndersonFamily); } else { Warn("document"); } // Check to verify a document with the id=AndersenFamily does not exist document = client.CreateDocumentQuery(documentCollection.DocumentsLink).Where(d => d.Id == "WakefieldFamily").AsEnumerable().FirstOrDefault(); if (document == null) { // Create the WakeField document Family WakefieldFamily = new Family { Id = "WakefieldFamily", Parents = new Parent[] { new Parent { FamilyName= "Wakefield", FirstName= "Robin" }, new Parent { FamilyName= "Miller", FirstName= "Ben" } }, Children = new Child[] { new Child { FamilyName= "Merriam", FirstName= "Jesse", Gender= "female", Grade= 8, Pets= new Pet[] { new Pet { GivenName= "Goofy" }, new Pet { GivenName= "Shadow" } } }, new Child { FamilyName= "Miller", FirstName= "Lisa", Gender= "female", Grade= 1 } }, Address = new Address { State = "NY", County = "Manhattan", City = "NY" }, IsRegistered = false }; await client.CreateDocumentAsync(documentCollection.DocumentsLink, WakefieldFamily); } else { Warn("document"); } // Query the documents using DocumentDB SQL for the Andersen family var families = client.CreateDocumentQuery(documentCollection.DocumentsLink, "SELECT * " + "FROM Families f " + "WHERE f.id = \"AndersenFamily\""); foreach (var family in families) { Console.WriteLine("\tRead {0} from SQL", family); } // Query the documents using LINQ for the Andersen family families = from f in client.CreateDocumentQuery(documentCollection.DocumentsLink) where f.Id == "AndersenFamily" select f; foreach (var family in families) { Console.WriteLine("\tRead {0} from LINQ", family); } // Query the documents using LINQ lambdas for the Andersen family families = client.CreateDocumentQuery(documentCollection.DocumentsLink) .Where(f => f.Id == "AndersenFamily") .Select(f => f); foreach (var family in families) { Console.WriteLine("\tRead {0} from LINQ query", family); } // Query the documents using DocumentSQl with one join var items = client.CreateDocumentQuery<dynamic>(documentCollection.DocumentsLink, "SELECT f.id, c.FirstName AS child " + "FROM Families f " + "JOIN c IN f.Children"); foreach (var item in items.ToList()) { Console.WriteLine(item); } // Query the documents using LINQ with one join items = client.CreateDocumentQuery<Family>(documentCollection.DocumentsLink) .SelectMany(family => family.Children .Select(children => new { family = family.Id, child = children.FirstName })); foreach (var item in items.ToList()) { Console.WriteLine(item); } // Clean up/delete the database and client await client.DeleteDatabaseAsync(database.SelfLink); client.Dispose(); }
public async Task OneTimeTearDown() { var client = new DocumentClient(new Uri(document_db_connection_address), document_db_connection_key); await client.DeleteDatabaseAsync($"dbs/{database_id}"); }