/// <summary>Determines a matching target kind from the specified type.</summary> /// <param name="type">ResourceType of element to get kind for.</param> /// <returns>An appropriate <see cref="RequestTargetKind"/> for the specified <paramref name="type"/>.</returns> internal static RequestTargetKind GetTargetKindFromType(this IEdmType type) { Debug.Assert(type != null, "type != null"); switch (type.TypeKind) { case EdmTypeKind.Complex: case EdmTypeKind.Entity: return(RequestTargetKind.Resource); case EdmTypeKind.Collection: if (type.IsStructuredCollectionType()) { return(RequestTargetKind.Resource); } return(RequestTargetKind.Collection); case EdmTypeKind.Enum: return(RequestTargetKind.Enum); case EdmTypeKind.TypeDefinition: return(RequestTargetKind.Primitive); default: Debug.Assert(type.TypeKind == EdmTypeKind.Primitive, "typeKind == ResourceTypeKind.Primitive"); return(RequestTargetKind.Primitive); } }