// </RunBasicOperationsOnStronglyTypedObjects> // <CreateItemsAsync> private static async Task <SalesOrder> CreateItemsAsync() { Console.WriteLine("\n1.1 - Creating items"); // Create a SalesOrder object. This object has nested properties and various types including numbers, DateTimes and strings. // This can be saved as JSON as is without converting into rows/columns. SalesOrder salesOrder = GetSalesOrderSample("SalesOrder1"); ItemResponse <SalesOrder> response = await container.CreateItemAsync(salesOrder, new PartitionKey(salesOrder.AccountNumber)); SalesOrder salesOrder1 = response; Console.WriteLine($"\n1.1.1 - Item created {salesOrder1.Id}"); // As your app evolves, let's say your object has a new schema. You can insert SalesOrderV2 objects without any // changes to the database tier. SalesOrder2 salesOrder2 = GetSalesOrderV2Sample("SalesOrder2"); ItemResponse <SalesOrder2> response2 = await container.CreateItemAsync( salesOrder2, new PartitionKey(salesOrder2.AccountNumber), new ItemRequestOptions() { // The response will have a null resource. This avoids the overhead of // sending the item back over the network and serializing it. EnableContentResponseOnWrite = false }); if (response2.Resource != null) { throw new ArgumentException("Resource should be null"); } Console.WriteLine($"\n1.1.2 - Item created {salesOrder2.Id}"); // For better performance create a SalesOrder object from a stream. SalesOrder salesOrderV3 = GetSalesOrderSample("SalesOrderV3"); using (Stream stream = Program.ToStream <SalesOrder>(salesOrderV3)) { using (ResponseMessage responseMessage = await container.CreateItemStreamAsync(stream, new PartitionKey(salesOrderV3.AccountNumber))) { // Item stream operations do not throw exceptions for better performance if (responseMessage.IsSuccessStatusCode) { SalesOrder streamResponse = FromStream <SalesOrder>(responseMessage.Content); Console.WriteLine($"\n1.1.2 - Item created {streamResponse.Id}"); } else { Console.WriteLine($"Create item from stream failed. Status code: {responseMessage.StatusCode} Message: {responseMessage.ErrorMessage}"); } } } return(salesOrder); }
private static async Task CreateItemsAsync() { Console.WriteLine("\n1.1 - Creating items"); // Create a SalesOrder object. This object has nested properties and various types including numbers, DateTimes and strings. // This can be saved as JSON as is without converting into rows/columns. SalesOrder salesOrder = GetSalesOrderSample("SalesOrder1"); await container.Items.CreateItemAsync(salesOrder.AccountNumber, salesOrder); // As your app evolves, let's say your object has a new schema. You can insert SalesOrderV2 objects without any // changes to the database tier. SalesOrder2 newSalesOrder = GetSalesOrderV2Sample("SalesOrder2"); await container.Items.CreateItemAsync(newSalesOrder.AccountNumber, newSalesOrder); }
// </RunBasicOperationsOnStronglyTypedObjects> // <CreateItemsAsync> private static async Task <SalesOrder> CreateItemsAsync() { Console.WriteLine("\n1.1 - Creating items"); // Create a SalesOrder object. This object has nested properties and various types including numbers, DateTimes and strings. // This can be saved as JSON as is without converting into rows/columns. SalesOrder salesOrder = GetSalesOrderSample("SalesOrder1"); ItemResponse <SalesOrder> response = await container.CreateItemAsync(salesOrder, new PartitionKey(salesOrder.AccountNumber)); SalesOrder salesOrder1 = response; Console.WriteLine($"\n1.1.1 - Item created {salesOrder1.Id}"); // As your app evolves, let's say your object has a new schema. You can insert SalesOrderV2 objects without any // changes to the database tier. SalesOrder2 newSalesOrder = GetSalesOrderV2Sample("SalesOrder2"); ItemResponse <SalesOrder2> response2 = await container.CreateItemAsync(newSalesOrder, new PartitionKey(newSalesOrder.AccountNumber)); SalesOrder2 salesOrder2 = response2; Console.WriteLine($"\n1.1.2 - Item created {salesOrder2.Id}"); // For better performance create a SalesOrder object from a stream. SalesOrder salesOrderV3 = GetSalesOrderSample("SalesOrderV3"); using (Stream stream = Program.ToStream <SalesOrder>(salesOrderV3)) { using (ResponseMessage responseMessage = await container.CreateItemStreamAsync(stream, new PartitionKey(salesOrderV3.AccountNumber))) { // Item stream operations do not throw exceptions for better performance if (responseMessage.IsSuccessStatusCode) { SalesOrder streamResponse = FromStream <SalesOrder>(responseMessage.Content); Console.WriteLine($"\n1.1.2 - Item created {streamResponse.Id}"); } else { Console.WriteLine($"Create item from stream failed. Status code: {responseMessage.StatusCode} Message: {responseMessage.ErrorMessage}"); } } } return(salesOrder); }