Melvin
Melvin

Reputation: 897

Resource with specified id or name already exists - Dcoumentdb

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

Answers (1)

Mikhail Shilkov
Mikhail Shilkov

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

Related Questions