Пример #1
0
        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());
    }