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