private string GetCommonPartForRequest(TRequest request) { QueryParametersUrlBuilder queryParametersUrlBuilder = new QueryParametersUrlBuilder(this.restGrammar, this.sscGrammar); string queryParamsUrl = queryParametersUrlBuilder.BuildUrlString(request.QueryParameters); ItemSourceUrlBuilder sourceBuilder = new ItemSourceUrlBuilder(this.restGrammar, this.sscGrammar, request.ItemSource); string itemSourceArgs = sourceBuilder.BuildUrlQueryString(); string result = string.Empty; string[] restSubQueries = { itemSourceArgs, queryParamsUrl }; foreach (string currentSubQuery in restSubQueries) { if (!string.IsNullOrEmpty(currentSubQuery)) { result = result + this.restGrammar.FieldSeparator + currentSubQuery; } } if (request.IncludeStandardTemplateFields) { result = result + this.restGrammar.FieldSeparator + this.sscGrammar.IncludeStandardTemplateFieldsParameterName + this.restGrammar.KeyValuePairSeparator + "true"; } return(result.ToLowerInvariant()); }
public void TestUrlBuilderExcapesArgs() { ItemSource data = new ItemSource("{master}", "da???", 123); ItemSourceUrlBuilder builder = new ItemSourceUrlBuilder(RestServiceGrammar.ItemWebApiV2Grammar(), WebApiUrlParameters.ItemWebApiV2UrlParameters(), data); string expected = "sc_database=%7bmaster%7d&language=da%3f%3f%3f&sc_itemversion=123"; Assert.AreEqual(expected, builder.BuildUrlQueryString()); }
public void TestSerializationSupportsVersion() { ItemSource data = new ItemSource("master", "da", 100500); ItemSourceUrlBuilder builder = new ItemSourceUrlBuilder(RestServiceGrammar.ItemWebApiV2Grammar(), WebApiUrlParameters.ItemWebApiV2UrlParameters(), data); string expected = "sc_database=master&language=da&sc_itemversion=100500"; Assert.AreEqual(expected, builder.BuildUrlQueryString()); }
public void TestSerializeDafaultSource() { ItemSource data = LegacyConstants.DefaultSource(); ItemSourceUrlBuilder builder = new ItemSourceUrlBuilder(RestServiceGrammar.ItemWebApiV2Grammar(), WebApiUrlParameters.ItemWebApiV2UrlParameters(), data); string expected = "sc_database=web&language=en"; Assert.AreEqual(expected, builder.BuildUrlQueryString()); }