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!");
}
}