Reputation: 897
I have inserted two json document using documentdb and have them in a list named Hotelwithroomtype.I want to update the created json document with some new values and then recreate them as new document. Here's my code
foreach (var item in Hotelwithroomtype)
{
foreach (var cal in Calendardata)
{
item.CalendarDate = Convert.ToDateTime(cal.CalendarDate);
item.CalendarDay = cal.Calendarday;
item.issweekday = Convert.ToBoolean(cal.isweekday);
item.issweekend = Convert.ToBoolean(cal.isweekend);
foreach (var prop in item.RoomTypes.RoomTypeList)
{
prop.Mon = "0";
prop.Tue = "0";
prop.Wed = "0";
prop.Thur = "0";
prop.Fri = "0";
prop.Sat = "0";
prop.Sun = "0";
prop.Count = "0";
prop.CountType = "0";
}
// var docExists = client.CreateDocumentQuery(UriFactory.CreateDocumentCollectionUri("next", "nextCollection"))
//.Where(doc => doc.Id == item.id)
//.Select(doc => doc.Id)
//.AsEnumerable()
//.Any();
await client.CreateDocumentAsync(collectionLink, item);
}
}
sample Json document which i inserted
{
"HotelCriteria": {
"HotelCode": "101920",
"HotelName": "TestThe Zuri"
},
"RoomTypes": {
"RoomTypeList": [
{
"InvTypeCode": "ZCR",
"Name": "Zuri Club Room",
"BaseOccupancy": 2,
"MaxOccupancy": 3,
"Quantity": 66,
"IsRoomActive": 1,
"RoomDescription": "",
"Availability": 0,
"Mon": "0",
"Tue": "0",
"Wed": "0",
"Thur": "0",
"Fri": "0",
"Sat": "0",
"Sun": "0",
"CountType": "0",
"Count": "0"
},
{
"InvTypeCode": "ZRR",
"Name": "Zuri Room",
"BaseOccupancy": 2,
"MaxOccupancy": 3,
"Quantity": 90,
"IsRoomActive": 1,
"RoomDescription": "",
"Availability": 0,
"Mon": "0",
"Tue": "0",
"Wed": "0",
"Thur": "0",
"Fri": "0",
"Sat": "0",
"Sun": "0",
"CountType": "0",
"Count": "0"
},
{
"InvTypeCode": "ZSR",
"Name": "Zuri Suite Room",
"BaseOccupancy": 2,
"MaxOccupancy": 3,
"Quantity": 4,
"IsRoomActive": 1,
"RoomDescription": "",
"Availability": 0,
"Mon": "0",
"Tue": "0",
"Wed": "0",
"Thur": "0",
"Fri": "0",
"Sat": "0",
"Sun": "0",
"CountType": "0",
"Count": "0"
}
]
},
"RatePlans": {
"RatePlanList": [
{
"RatePlanCode": "B2C00001",
"RatePlanCategory": "B2C",
"RatePlanStatusType": 1,
"RatePlanName": "Channel Rates",
"Description": "Channel Rates",
"InvTypeCode": "ZCR",
"MealPlanCode": "CP",
"MealPlanDesc": "Continental Plan",
"Start": "2016-06-27",
"End": "2017-03-31",
"CurrencyCode": "INR"
},
{
"RatePlanCode": "B2C00001",
"RatePlanCategory": "B2C",
"RatePlanStatusType": 1,
"RatePlanName": "Channel Rates",
"Description": "Channel Rates",
"InvTypeCode": "ZRR",
"MealPlanCode": "CP",
"MealPlanDesc": "Continental Plan",
"Start": "2016-06-27",
"End": "2017-03-31",
"CurrencyCode": "INR"
},
{
"RatePlanCode": "B2C00001",
"RatePlanCategory": "B2C",
"RatePlanStatusType": 1,
"RatePlanName": "Channel Rates",
"Description": "Channel Rates",
"InvTypeCode": "ZSR",
"MealPlanCode": "CP",
"MealPlanDesc": "Continental Plan",
"Start": "2016-06-27",
"End": "2017-03-31",
"CurrencyCode": "INR"
}
]
},
"Inclusions": {
"InclusionList": [
{
"MealPlanCode": "CP",
"MealPlanDesc": "Continental Plan"
}
]
},
"id": "8f236805-d3a5-498b-9cc3-efa7448faa63",
"_rid": "SVcZALakfQAEAAAAAAAAAA==",
"_self": "dbs/SVcZAA==/colls/SVcZALakfQA=/docs/SVcZALakfQAEAAAAAAAAAA==/",
"_etag": "\"00004b09-0000-0000-0000-594a02e80000\"",
"_attachments": "attachments/",
"_ts": 1498022618
}
I want the current document with updated values but need them as a new document.When i tried to create i get the following error "Resource with specified id or name already exists".Any help would be really appreciated.
Thanks
Upvotes: 0
Views: 2679
Reputation: 35144
You are trying to instead a new document with id
equal to id
of the existing document. This is not allowed, so operation fails. Before you insert the modified copy, you need to assign a new id
to it.
Upvotes: 1