/// <summary> /// Sets the relationship link. /// </summary> /// <param name="linkInfoData">The link info data.</param> /// <param name="relationshipLink">The relationship link.</param> /// <returns><see cref="LinkInfoData"/> on which relationship link has been set.</returns> public static LinkInfoData SetRelationshipLink(this LinkInfoData linkInfoData, Uri relationshipLink) { ExceptionUtilities.CheckArgumentNotNull(linkInfoData, "linkInfoData"); linkInfoData.RelationshipLink = relationshipLink; return(linkInfoData); }
/// <summary> /// Sets the navigation link. /// </summary> /// <param name="linkInfoData">The link info data.</param> /// <param name="navigationLink">The navigation link.</param> /// <returns><see cref="LinkInfoData"/> on which navigation link has been set.</returns> public static LinkInfoData SetNavigationLink(this LinkInfoData linkInfoData, Uri navigationLink) { ExceptionUtilities.CheckArgumentNotNull(linkInfoData, "linkInfoData"); linkInfoData.NavigationLink = navigationLink; return(linkInfoData); }
/// <summary> /// Creates a new link info data and adds it to this entity descriptor data /// </summary> /// <param name="name">The name of the link</param> /// <returns>The link info data</returns> public LinkInfoData CreateLinkInfoData(string name) { ExceptionUtilities.CheckArgumentNotNull(name, "name"); ExceptionUtilities.Assert(!this.linkInfos.Any(l => l.Name == name), "Link info data with name '{0}' already exists on entity descriptor data: {1}", name, this); var linkInfoData = new LinkInfoData(name); this.linkInfos.Add(linkInfoData); return(linkInfoData); }
/// <summary> /// Returns another LinkInfoData with equivalent values but no references to the current instance /// </summary> /// <returns>A cloned LinkInfoData</returns> public LinkInfoData Clone() { var clone = new LinkInfoData(this.Name); if (this.NavigationLink != null) { clone.NavigationLink = new Uri(this.NavigationLink.OriginalString, UriKind.RelativeOrAbsolute); } if (this.RelationshipLink != null) { clone.RelationshipLink = new Uri(this.RelationshipLink.OriginalString, UriKind.RelativeOrAbsolute); } return clone; }
/// <summary> /// Returns another LinkInfoData with equivalent values but no references to the current instance /// </summary> /// <returns>A cloned LinkInfoData</returns> public LinkInfoData Clone() { var clone = new LinkInfoData(this.Name); if (this.NavigationLink != null) { clone.NavigationLink = new Uri(this.NavigationLink.OriginalString, UriKind.RelativeOrAbsolute); } if (this.RelationshipLink != null) { clone.RelationshipLink = new Uri(this.RelationshipLink.OriginalString, UriKind.RelativeOrAbsolute); } return(clone); }
internal static Uri BuildLinkUri(LinkDescriptorData linkDescriptorData, LinkInfoData info) { Uri linkUri; if (info != null && info.RelationshipLink != null) { linkUri = info.RelationshipLink; } else { ExceptionUtilities.CheckObjectNotNull(linkDescriptorData.SourceDescriptor.EditLink, "Edit link of source descriptor cannot be null"); linkUri = new Uri(UriHelpers.ConcatenateUriSegments(linkDescriptorData.SourceDescriptor.EditLink.OriginalString, Endpoints.Ref, linkDescriptorData.SourcePropertyName), UriKind.RelativeOrAbsolute); } return linkUri; }
/// <summary> /// Creates a new link info data and adds it to this entity descriptor data /// </summary> /// <param name="name">The name of the link</param> /// <returns>The link info data</returns> public LinkInfoData CreateLinkInfoData(string name) { ExceptionUtilities.CheckArgumentNotNull(name, "name"); ExceptionUtilities.Assert(!this.linkInfos.Any(l => l.Name == name), "Link info data with name '{0}' already exists on entity descriptor data: {1}", name, this); var linkInfoData = new LinkInfoData(name); this.linkInfos.Add(linkInfoData); return linkInfoData; }