Esempio n. 1
0
        private void ApplyDeltaResourceSetInNestedProperty(IEdmProperty nestedProperty, object resource,
                                                           ODataDeltaResourceSetWrapper resourceSetWrapper, ODataDeserializerContext readContext)
        {
            Contract.Assert(nestedProperty != null);
            Contract.Assert(resource != null);
            Contract.Assert(readContext != null);

            if (!readContext.IsDeltaOfT)
            {
                throw new ODataException("Read context of @odata.delta incorrect");
            }

            ICollection modifiedItems;
            ICollection deletedItems;

            ReadDeltaResourceSetInline(resourceSetWrapper, nestedProperty.Type, readContext, out modifiedItems, out deletedItems);

            IDelta resourceDelta = (IDelta)resource;

            string propertyName = EdmLibHelpers.GetClrPropertyName(nestedProperty, readContext.Model);

            resourceDelta.TrySetPropertyCollectionValue(propertyName, modifiedItems);
            resourceDelta.TrySetDeletedPropertyValue(propertyName, deletedItems);
        }