Exemplo n.º 1
0
            /// <summary>
            /// Creates the metadata URI for an entity reference link.
            /// </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 TryBuildEntityReferenceLinkMetadataUri(ODataEntityReferenceLinkSerializationInfo serializationInfo, IEdmEntitySet entitySet, IEdmNavigationProperty navigationProperty, out Uri metadataUri)
            {
                DebugUtils.CheckNoExternalCallers();
                string entitySetName                  = null;
                string typecast                       = null;
                string navigationPropertyName         = null;
                bool   isCollectionNavigationProperty = false;

                if (serializationInfo != null)
                {
                    entitySetName                  = serializationInfo.SourceEntitySetName;
                    typecast                       = serializationInfo.Typecast;
                    navigationPropertyName         = serializationInfo.NavigationPropertyName;
                    isCollectionNavigationProperty = serializationInfo.IsCollectionNavigationProperty;
                }
                else if (navigationProperty != null)
                {
                    entitySetName                  = GetEntitySetName(entitySet, this.model);
                    typecast                       = GetTypecast(entitySet, navigationProperty.DeclaringEntityType());
                    navigationPropertyName         = navigationProperty.Name;
                    isCollectionNavigationProperty = navigationProperty.Type.IsCollection();
                }

                metadataUri = navigationPropertyName == null ? null : CreateEntityContainerElementMetadataUri(this.metadataDocumentUri, entitySetName, typecast, navigationPropertyName, /*appendItemSelector*/ isCollectionNavigationProperty);
                if (this.writingResponse && metadataUri == null)
                {
                    throw new ODataException(OData.Strings.ODataJsonLightMetadataUriBuilder_EntitySetOrNavigationPropertyMissingForTopLevelEntityReferenceLinkResponse);
                }

                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 ODataEntityReferenceLinkSerializationInfo Validate(ODataEntityReferenceLinkSerializationInfo serializationInfo)
        {
            DebugUtils.CheckNoExternalCallers();
            if (serializationInfo != null)
            {
                ExceptionUtils.CheckArgumentNotNull(serializationInfo.SourceEntitySetName, "serializationInfo.SourceEntitySetName");
                ExceptionUtils.CheckArgumentNotNull(serializationInfo.NavigationPropertyName, "serializationInfo.NavigationPropertyName");
            }

            return(serializationInfo);
        }
Exemplo n.º 3
0
 /// <summary>
 /// Provide additional serialization information to the <see cref="ODataMessageWriter"/> for <paramref name="entityReferenceLink"/>.
 /// </summary>
 /// <param name="entityReferenceLink">The instance to set the serialization info.</param>
 /// <param name="serializationInfo">The serialization info to set.</param>
 public static void SetSerializationInfo(this ODataEntityReferenceLink entityReferenceLink, ODataEntityReferenceLinkSerializationInfo serializationInfo)
 {
     ExceptionUtils.CheckArgumentNotNull(entityReferenceLink, "entityReferenceLink");
     entityReferenceLink.SerializationInfo = serializationInfo;
 }
Exemplo n.º 4
0
 /// <summary>
 /// Creates the metadata URI for an entity reference link.
 /// </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 TryBuildEntityReferenceLinkMetadataUri(ODataEntityReferenceLinkSerializationInfo serializationInfo, IEdmEntitySet entitySet, IEdmNavigationProperty navigationProperty, out Uri metadataUri)
 {
     DebugUtils.CheckNoExternalCallers();
     metadataUri = null;
     return(false);
 }
Exemplo n.º 5
0
 /// <summary>
 /// Creates the metadata URI for an entity reference link.
 /// </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 TryBuildEntityReferenceLinkMetadataUri(ODataEntityReferenceLinkSerializationInfo serializationInfo, IEdmEntitySet entitySet, IEdmNavigationProperty navigationProperty, out Uri metadataUri);