using System; using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.Azure.Cosmos; using Microsoft.Azure.Cosmos.Fluent; using Microsoft.Extensions.Configuration; namespace CosmosDB3Test { class Program { static async Task Main(string[] args) { //IConfiguration configuration = new ConfigurationBuilder() // .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) // .Build(); string constr = "AccountEndpoint=https://192.168.8.128:8081/;AccountKey=ddwAeGSf8Lsf1kxPXmdqnyzzi3CkJ0KW2BTPZ7Zq1N7qbJic5j7AaQ+WbF86F3rnzuDgGM1yg8O7BUFo93iA8w==;"; await Program.InitializeContainers(constr); //await Program.WithCustomSerializerAsync(constr); //await Program.WithSerializerOptionsAsync(constr); //CosmosClientOptions options = new CosmosClientOptions() //{ // AllowBulkExecution = true, // Serializer = new CustomSerializer( new JsonSerializerOptions()), //}; //CosmosClient cosmosClient = new CosmosClient("https://192.168.8.128:8081", // "ddwAeGSf8Lsf1kxPXmdqnyzzi3CkJ0KW2BTPZ7Zq1N7qbJic5j7AaQ+WbF86F3rnzuDgGM1yg8O7BUFo93iA8w==", options); //var database = await cosmosClient.CreateDatabaseIfNotExistsAsync("TEAMModelOS"); //var container = await database.Database.CreateContainerIfNotExistsAsync("CoreSchool", "/areaCode"); //Console.WriteLine("Created Container: {0}\n", container.Container.Id); //var sqlQueryText = "SELECT * FROM c WHERE 1=1 "; //Console.WriteLine("Running query: {0}\n", sqlQueryText); //QueryDefinition queryDefinition = new QueryDefinition(sqlQueryText); //FeedIterator queryResultSetIterator = container.Container.GetItemQueryIterator(queryDefinition); //List list = new List(); //while (queryResultSetIterator.HasMoreResults) { // FeedResponse currentResultSet = await queryResultSetIterator.ReadNextAsync(); // foreach (School family in currentResultSet) // { // list.Add(family); // Console.WriteLine("\tRead {0}\n", family); // } //} //Console.WriteLine("Hello World!"); } static async Task WithCustomSerializerAsync(string configuration) { CosmosClient client = new CosmosClientBuilder(configuration) .WithApplicationName("OnDotNetRocks") .WithCustomSerializer(new TextJsonSerializer()) .Build(); ModelTextJson model = new ModelTextJson() { TheIdentifier = Guid.NewGuid().ToString(), DescriptiveTitle = "With custom System.Text.Json serializer!" }; Container container = client.GetContainer("OnDotNet", "episode1serializer"); ItemResponse createdItem = await container.CreateItemAsync(model); Console.WriteLine($"Used custom serializer to create item {createdItem.Resource.TheIdentifier}"); } static async Task WithSerializerOptionsAsync(string configuration) { CosmosClient client = new CosmosClientBuilder(configuration) .WithApplicationName("OnDotNetRocks") .WithSerializerOptions(new CosmosSerializationOptions() { IgnoreNullValues = true, PropertyNamingPolicy = CosmosPropertyNamingPolicy.CamelCase }) .Build(); ModelJsonNet model = new ModelJsonNet() { Id = Guid.NewGuid().ToString(), DescriptiveTitle = "With customized JSON.Net!" }; Container container = client.GetContainer("OnDotNet", "episode1serializer"); ItemResponse createdItem = await container.CreateItemAsync(model); Console.WriteLine($"Used serializer options to create item {createdItem.Resource.Id}"); } static async Task InitializeContainers(string configuration) { CosmosClient client = new CosmosClientBuilder(configuration) .WithApplicationName("OnDotNet") .WithCustomSerializer(new SystemTextJsonCosmosSerializer(new System.Text.Json.JsonSerializerOptions())) .Build(); Database database = await client.CreateDatabaseIfNotExistsAsync("OnDotNet"); await database.CreateContainerIfNotExistsAsync("episode1serializer", "/id"); var sqlQueryText = "SELECT * FROM c WHERE 1=1 "; Console.WriteLine("Running query: {0}\n", sqlQueryText); QueryDefinition queryDefinition = new QueryDefinition(sqlQueryText); Container container = client.GetContainer("OnDotNet", "episode1serializer"); // Container container = await database.CreateContainerIfNotExistsAsync("episode1serializer", "/areaCode"); ItemResponse queryResultSetIterator =await container.ReadItemAsync("1317cebb-f821-4877-80b2-48e03e6c6e48", new PartitionKey ("1317cebb-f821-4877-80b2-48e03e6c6e48")); List list = new List(); var a = queryResultSetIterator.Resource; // IEnumerable schools = queryResultSetIterator.ReadNextAsync().Result.Resource; // Console.WriteLine(queryResultSetIterator.ReadNextAsync().Result); } } }