123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- 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<School> queryResultSetIterator = container.Container.GetItemQueryIterator<School>(queryDefinition);
- //List<School> list = new List<School>();
- //while (queryResultSetIterator.HasMoreResults) {
- // FeedResponse<School> 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<ModelTextJson> 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<ModelJsonNet> 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<ModelTextJson> queryResultSetIterator =await container.ReadItemAsync<ModelTextJson>("1317cebb-f821-4877-80b2-48e03e6c6e48", new PartitionKey ("1317cebb-f821-4877-80b2-48e03e6c6e48"));
- List <ModelTextJson> list = new List<ModelTextJson>();
- var a = queryResultSetIterator.Resource;
- // IEnumerable<ModelTextJson> schools = queryResultSetIterator.ReadNextAsync().Result.Resource;
- // Console.WriteLine(queryResultSetIterator.ReadNextAsync().Result);
- }
- }
- }
|