/// <summary> /// Creates the metadata URI for a collection of entity reference links. /// </summary> /// <param name="serializationInfo">Serialization information to generate the metadata uri.</param> /// <param name="entitySet">The entity set of the declaring type of the navigation property</param> /// <param name="navigationProperty">The navigation property to create the metadata URI for.</param> /// <param name="metadataUri">Returns the metadata URI for an entity reference link or a collection of entity reference links.</param> /// <returns>true if we have successfully built the metadata URI; false otherwise.</returns> internal override bool TryBuildEntityReferenceLinksMetadataUri(ODataEntityReferenceLinksSerializationInfo serializationInfo, IEdmEntitySet entitySet, IEdmNavigationProperty navigationProperty, out Uri metadataUri) { DebugUtils.CheckNoExternalCallers(); string entitySetName = null; string typecast = null; string navigationPropertyName = null; if (serializationInfo != null) { entitySetName = serializationInfo.SourceEntitySetName; typecast = serializationInfo.Typecast; navigationPropertyName = serializationInfo.NavigationPropertyName; } else if (navigationProperty != null) { entitySetName = GetEntitySetName(entitySet, this.model); typecast = GetTypecast(entitySet, navigationProperty.DeclaringEntityType()); navigationPropertyName = navigationProperty.Name; } metadataUri = navigationPropertyName == null ? null : CreateEntityContainerElementMetadataUri(this.metadataDocumentUri, entitySetName, typecast, navigationPropertyName, /*appendItemSelector*/ false); if (this.writingResponse && metadataUri == null) { throw new ODataException(OData.Strings.ODataJsonLightMetadataUriBuilder_EntitySetOrNavigationPropertyMissingForTopLevelEntityReferenceLinksResponse); } return(metadataUri != null); }
/// <summary> /// Validates the <paramref name="serializationInfo"/> instance. /// </summary> /// <param name="serializationInfo">The serialization info instance to validate.</param> /// <returns>The <paramref name="serializationInfo"/> instance.</returns> internal static ODataEntityReferenceLinksSerializationInfo Validate(ODataEntityReferenceLinksSerializationInfo serializationInfo) { DebugUtils.CheckNoExternalCallers(); if (serializationInfo != null) { ExceptionUtils.CheckArgumentNotNull(serializationInfo.SourceEntitySetName, "serializationInfo.SourceEntitySetName"); ExceptionUtils.CheckArgumentNotNull(serializationInfo.NavigationPropertyName, "serializationInfo.NavigationPropertyName"); } return(serializationInfo); }
/// <summary> /// Provide additional serialization information to the <see cref="ODataMessageWriter"/> for <paramref name="entityReferenceLinks"/>. /// </summary> /// <param name="entityReferenceLinks">The instance to set the serialization info.</param> /// <param name="serializationInfo">The serialization info to set.</param> public static void SetSerializationInfo(this ODataEntityReferenceLinks entityReferenceLinks, ODataEntityReferenceLinksSerializationInfo serializationInfo) { ExceptionUtils.CheckArgumentNotNull(entityReferenceLinks, "entityReferenceLinks"); entityReferenceLinks.SerializationInfo = serializationInfo; }
/// <summary> /// Creates the metadata URI for a collection of entity reference links. /// </summary> /// <param name="serializationInfo">Serialization information to generate the metadata uri.</param> /// <param name="entitySet">The entity set of the declaring type of the navigation property</param> /// <param name="navigationProperty">The navigation property to create the metadata URI for.</param> /// <param name="metadataUri">Returns the metadata URI for an entity reference link or a collection of entity reference links.</param> /// <returns>true if we have successfully built the metadata URI; false otherwise.</returns> internal override bool TryBuildEntityReferenceLinksMetadataUri(ODataEntityReferenceLinksSerializationInfo serializationInfo, IEdmEntitySet entitySet, IEdmNavigationProperty navigationProperty, out Uri metadataUri) { DebugUtils.CheckNoExternalCallers(); metadataUri = null; return(false); }
/// <summary> /// Creates the metadata URI for a collection of entity reference links. /// </summary> /// <param name="serializationInfo">Serialization information to generate the metadata uri.</param> /// <param name="entitySet">The entity set of the declaring type of the navigation property</param> /// <param name="navigationProperty">The navigation property to create the metadata URI for.</param> /// <param name="metadataUri">Returns the metadata URI for an entity reference link or a collection of entity reference links.</param> /// <returns>true if we have successfully built the metadata URI; false otherwise.</returns> internal abstract bool TryBuildEntityReferenceLinksMetadataUri(ODataEntityReferenceLinksSerializationInfo serializationInfo, IEdmEntitySet entitySet, IEdmNavigationProperty navigationProperty, out Uri metadataUri);