예제 #1
0
        internal static ResourceType GetNonPrimitiveResourceType(DataServiceProviderWrapper provider, object obj)
        {
            IProjectedResult result = obj as IProjectedResult;
            ResourceType     type   = (result != null) ? provider.TryResolveResourceType(result.ResourceTypeName) : provider.GetResourceType(obj);

            if (type == null)
            {
                throw new DataServiceException(500, System.Data.Services.Strings.BadProvider_InvalidTypeSpecified(obj.GetType().FullName));
            }
            return(type);
        }
예제 #2
0
        internal static object GetPropertyValue(DataServiceProviderWrapper provider, object resource, ResourceType resourceType, ResourceProperty resourceProperty, string propertyName)
        {
            IProjectedResult result = resource as IProjectedResult;

            if (result != null)
            {
                object projectedPropertyValue = result.GetProjectedPropertyValue(propertyName ?? resourceProperty.Name);
                if (IsNullValue(projectedPropertyValue))
                {
                    projectedPropertyValue = null;
                }
                return(projectedPropertyValue);
            }
            if (resourceProperty != null)
            {
                return(provider.GetPropertyValue(resource, resourceProperty, resourceType));
            }
            return(provider.GetOpenPropertyValue(resource, propertyName));
        }