/// <summary> /// Create a URI for the given queryDescriptor given the base service URI. /// </summary> /// <param name="baseUri">The base service URI.</param> /// <param name="queryDescriptor">The query descriptor to create the result URI from.</param> /// <returns>An absolute URI that base on the baseUri and represent the queryDescriptor.</returns> public static Uri CreateUri(Uri baseUri, QueryDescriptorQueryToken queryDescriptor) { ExceptionUtils.CheckArgumentNotNull(baseUri, "baseUri"); ExceptionUtils.CheckArgumentNotNull(queryDescriptor, "queryDescriptor"); ODataUriBuilder odataUriBuilder = new ODataUriBuilder(queryDescriptor); string uriPart = odataUriBuilder.Build(); if (uriPart.StartsWith(ExpressionConstants.SymbolQueryStart, StringComparison.Ordinal)) { UriBuilder uriBuilder = new UriBuilder(baseUri); uriBuilder.Query = uriPart; return uriBuilder.Uri; } return new Uri(baseUri, new Uri(uriPart, UriKind.RelativeOrAbsolute)); }
/// <summary> /// Create a URI for the given queryDescriptor given the base service URI. /// </summary> /// <param name="baseUri">The base service URI.</param> /// <param name="queryDescriptor">The query descriptor to create the result URI from.</param> /// <returns>An absolute URI that base on the baseUri and represent the queryDescriptor.</returns> public static Uri CreateUri(Uri baseUri, QueryDescriptorQueryToken queryDescriptor) { ExceptionUtils.CheckArgumentNotNull(baseUri, "baseUri"); ExceptionUtils.CheckArgumentNotNull(queryDescriptor, "queryDescriptor"); ODataUriBuilder odataUriBuilder = new ODataUriBuilder(queryDescriptor); string uriPart = odataUriBuilder.Build(); if (uriPart.StartsWith(ExpressionConstants.SymbolQueryStart, StringComparison.Ordinal)) { UriBuilder uriBuilder = new UriBuilder(baseUri); uriBuilder.Query = uriPart; return(uriBuilder.Uri); } return(new Uri(baseUri, new Uri(uriPart, UriKind.RelativeOrAbsolute))); }
/// <summary> /// Create a new BinaryOperatorQueryToken for the given Uri builder to write BinaryOperatorQueryToken. /// </summary> /// <param name="builder">The parent builder of this builder.</param> public BinaryOperatorUriBuilder(ODataUriBuilder builder) { this.builder = builder; }