Пример #1
0
            /// <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);
        }
Пример #3
0
 /// <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;
 }
Пример #4
0
 /// <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);
 }
Пример #5
0
 /// <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);