private async Task UpdateDocumentAndVerifyAsync()

in vnext/code-samples/dotnet/src/cosmosdb-vnext-test/Program.cs [146:187]


    private async Task UpdateDocumentAndVerifyAsync(Container container, string id, string partitionKey, string newCity)
    {
        Console.WriteLine($"Updating document {id} with new city: {newCity}");
        
        try
        {
            // First read the existing item
            ItemResponse<TestDocument> readResponse = await container.ReadItemAsync<TestDocument>(
                id: id,
                partitionKey: new PartitionKey(partitionKey)
            );
            
            TestDocument existingDocument = readResponse.Resource;
            Console.WriteLine($"Retrieved document: Id={existingDocument.Id}, City={existingDocument.City}");
            
            // Update the property
            existingDocument.City = newCity;
            
            // Replace the item with the updated document
            ItemResponse<TestDocument> updateResponse = await container.ReplaceItemAsync(
                item: existingDocument,
                id: id,
                partitionKey: new PartitionKey(partitionKey)
            );
            
            Console.WriteLine($"Updated document - Status: {updateResponse.StatusCode}");
            
            // Query to verify the update
            Console.WriteLine("Verifying update by querying the document:");
            ItemResponse<TestDocument> verifyResponse = await container.ReadItemAsync<TestDocument>(
                id: id,
                partitionKey: new PartitionKey(partitionKey)
            );
            
            TestDocument updatedDocument = verifyResponse.Resource;
            Console.WriteLine($"Verified document: Id={updatedDocument.Id}, City={updatedDocument.City}");
        }
        catch (CosmosException ex) when (ex.StatusCode == HttpStatusCode.NotFound)
        {
            Console.WriteLine($"Document with id {id} not found!");
        }
    }