public Uri GetFullUri() { Contract.Ensures(Contract.Result <Uri>() != null); #if !NETFX_CORE Contract.Ensures(Contract.Result <Uri>().Scheme == Uri.UriSchemeHttp || Contract.Result <Uri>().Scheme == Uri.UriSchemeHttps); #endif var parameters = new List <string>(); if (!string.IsNullOrWhiteSpace(FilterParameter)) { #if !SILVERLIGHT && !NETFX_CORE parameters.Add(BuildParameter(StringConstants.FilterParameter, HttpUtility.UrlEncode(FilterParameter))); #else parameters.Add(BuildParameter(StringConstants.FilterParameter, FilterParameter)); #endif } if (!string.IsNullOrWhiteSpace(SelectParameter)) { parameters.Add(BuildParameter(StringConstants.SelectParameter, SelectParameter)); } if (!string.IsNullOrWhiteSpace(SkipParameter)) { parameters.Add(BuildParameter(StringConstants.SkipParameter, SkipParameter)); } if (!string.IsNullOrWhiteSpace(TakeParameter)) { parameters.Add(BuildParameter(StringConstants.TopParameter, TakeParameter)); } if (OrderByParameter.Any()) { parameters.Add(BuildParameter(StringConstants.OrderByParameter, string.Join(",", OrderByParameter))); } if (!string.IsNullOrWhiteSpace(ExpandParameter)) { parameters.Add(BuildParameter(StringConstants.ExpandParameter, ExpandParameter)); } var builder = new UriBuilder(_serviceBase); builder.Query = (string.IsNullOrEmpty(builder.Query) ? string.Empty : builder.Query.Substring(1) + "&") + string.Join("&", parameters); var resultUri = builder.Uri; #if !NETFX_CORE Contract.Assume(_serviceBase.Scheme == Uri.UriSchemeHttp || _serviceBase.Scheme == Uri.UriSchemeHttps); Contract.Assume(resultUri.Scheme == Uri.UriSchemeHttp || resultUri.Scheme == Uri.UriSchemeHttps); #endif return(resultUri); }
public Uri GetFullUri() { var parameters = new List <string>(); if (!FilterParameter.IsNullOrWhiteSpace()) { parameters.Add(BuildParameter(StringConstants.FilterParameter, HttpUtility.UrlEncode(FilterParameter))); } if (!SelectParameter.IsNullOrWhiteSpace()) { parameters.Add(BuildParameter(StringConstants.SelectParameter, SelectParameter)); } if (!SkipParameter.IsNullOrWhiteSpace()) { parameters.Add(BuildParameter(StringConstants.SkipParameter, SkipParameter)); } if (!TakeParameter.IsNullOrWhiteSpace()) { parameters.Add(BuildParameter(StringConstants.TopParameter, TakeParameter)); } if (OrderByParameter.Any()) { parameters.Add(BuildParameter(StringConstants.OrderByParameter, OrderByParameter.Join(","))); } if (!ExpandParameter.IsNullOrWhiteSpace()) { parameters.Add(BuildParameter(StringConstants.ExpandParameter, ExpandParameter)); } var builder = new UriBuilder(m_serviceBase); builder.Query = (string.IsNullOrEmpty(builder.Query) ? string.Empty : "&") + parameters.Join("&"); var resultUri = builder.Uri; return(resultUri); }
public IEnumerable <KeyValuePair <string, string> > Build() { var parameters = new List <KeyValuePair <string, string> >(); if (!string.IsNullOrWhiteSpace(FilterParameter)) { parameters.Add(BuildParameter(StringConstants.FilterParameter, FilterParameter)); } if (!string.IsNullOrWhiteSpace(SelectParameter)) { parameters.Add(BuildParameter(StringConstants.SelectParameter, SelectParameter)); } if (!string.IsNullOrWhiteSpace(SkipParameter)) { parameters.Add(BuildParameter(StringConstants.SkipParameter, SkipParameter)); } if (!string.IsNullOrWhiteSpace(TakeParameter)) { parameters.Add(BuildParameter(StringConstants.TopParameter, TakeParameter)); } if (OrderByParameter.Any()) { parameters.Add(BuildParameter(StringConstants.OrderByParameter, string.Join(",", OrderByParameter))); } if (!string.IsNullOrWhiteSpace(ExpandParameter)) { parameters.Add(BuildParameter(StringConstants.ExpandParameter, ExpandParameter)); } if (IncludeCount) { parameters.Add(BuildParameter("$inlinecount", "allpages")); } return(parameters); }
/// <summary> /// 构建查询 Uri.Query 部分。 /// </summary> /// <returns>Uri.Query 部分的字符串。</returns> public string BuildUri() { var parameters = new List <string>(); if (!string.IsNullOrWhiteSpace(FilterParameter)) { parameters.Add(BuildParameter("$filter", HttpUtility.UrlEncode(FilterParameter))); } if (!string.IsNullOrWhiteSpace(SelectParameter)) { parameters.Add(BuildParameter("$select", SelectParameter)); } if (!string.IsNullOrWhiteSpace(SkipParameter)) { parameters.Add(BuildParameter("$skip", SkipParameter)); } if (!string.IsNullOrWhiteSpace(TakeParameter)) { parameters.Add(BuildParameter("$top", TakeParameter)); } if (OrderByParameter.Any()) { parameters.Add(BuildParameter("$orderby", string.Join(",", OrderByParameter))); } if (!string.IsNullOrWhiteSpace(ExpandParameter)) { parameters.Add(BuildParameter("$expand", ExpandParameter)); } return(string.Join("&", parameters)); }