public void TestFieldsAppending()
        {
            Dictionary <string, string> fields = new Dictionary <string, string>();

            fields.Add("field1", "VaLuE1");
            fields.Add("field2", "VaLuE2");

            IUpdateItemByPathRequest request = ItemWebApiRequestBuilder.UpdateItemRequestWithPath("/sitecore/content/home")
                                               .Database("db")
                                               .Language("lg")
                                               .Version(2)
                                               .Payload(PayloadType.Full)
                                               .AddFieldsRawValuesByNameToSet(fields)
                                               .AddFieldsRawValuesByNameToSet("field3", "VaLuE3")
                                               .Build();

            IUpdateItemByPathRequest autocompletedRequest = this.requestMerger.FillUpdateItemByPathGaps(request);

            string result   = this.builder.GetUrlForRequest(autocompletedRequest);
            string expected =
                "http://mobiledev1ua1.dk.sitecore.net:7119/-/item/v234%2fsitecore%2fshell%2"
                + "fsitecore%2fcontent%2fhome"
                + "?sc_database=db"
                + "&language=lg"
                + "&sc_itemversion=2"
                + "&payload=full";

            string fieldsResult         = this.builder.GetFieldValuesList(autocompletedRequest);
            string expectedFieldsResult = "field1=VaLuE1&field2=VaLuE2&field3=VaLuE3";

            Assert.AreEqual(expected, result);
            Assert.AreEqual(expectedFieldsResult, fieldsResult);
        }
Example #2
0
        public IUpdateItemByPathRequest FillUpdateItemByPathGaps(IUpdateItemByPathRequest userRequest)
        {
            IItemSource    mergedSource        = this.ItemSourceMerger.FillItemSourceGaps(userRequest.ItemSource);
            ISessionConfig mergedSessionConfig = this.SessionConfigMerger.FillSessionConfigGaps(userRequest.SessionSettings);

            return(new UpdateItemByPathParameters(mergedSessionConfig, mergedSource, userRequest.QueryParameters, userRequest.FieldsRawValuesByName, userRequest.ItemPath));
        }
        public async Task <ScItemsResponse> UpdateItemAsync(IUpdateItemByPathRequest request, CancellationToken cancelToken = default(CancellationToken))
        {
            IUpdateItemByPathRequest requestCopy = request.DeepCopyUpdateItemByPathRequest();

            using (ICredentialsHeadersCryptor cryptor = await this.GetCredentialsCryptorAsync(cancelToken))
            {
                IUpdateItemByPathRequest autocompletedRequest = this.requestMerger.FillUpdateItemByPathGaps(requestCopy);

                var urlBuilder = new UpdateItemByPathUrlBuilder(this.restGrammar, this.webApiGrammar);
                var taskFlow   = new UpdateItemByPathTask(urlBuilder, this.httpClient, cryptor);

                return(await RestApiCallFlow.LoadRequestFromNetworkFlow(autocompletedRequest, taskFlow, cancelToken));
            }
        }
        public void TestItemNameAndFieldNameIsCaseInsensitive()
        {
            IUpdateItemByPathRequest request = ItemWebApiRequestBuilder.UpdateItemRequestWithPath("/sitecore/content/home")
                                               .AddFieldsRawValuesByNameToSet("field1", "VaLuE1")
                                               .AddFieldsRawValuesByNameToSet("field2", "VaLuE2")
                                               .Build();

            IUpdateItemByPathRequest autocompletedRequest = this.requestMerger.FillUpdateItemByPathGaps(request);

            string result   = this.builder.GetUrlForRequest(autocompletedRequest);
            string expected = "http://mobiledev1ua1.dk.sitecore.net:7119/-/item/v234%2fsitecore%2fshell%2f"
                              + "sitecore%2fcontent%2fhome"
                              + "?sc_database=web"
                              + "&language=en";

            string fieldsResult         = this.builder.GetFieldValuesList(autocompletedRequest);
            string expectedFieldsResult = "field1=VaLuE1&field2=VaLuE2";

            Assert.AreEqual(expected, result);
            Assert.AreEqual(expectedFieldsResult, fieldsResult);
        }
    public IUpdateItemByPathRequest FillUpdateItemByPathGaps(IUpdateItemByPathRequest userRequest)
    {
      IItemSource mergedSource = this.ItemSourceMerger.FillItemSourceGaps(userRequest.ItemSource);
      ISessionConfig mergedSessionConfig = this.SessionConfigMerger.FillSessionConfigGaps(userRequest.SessionSettings);

      return new UpdateItemByPathParameters(mergedSessionConfig, mergedSource, userRequest.QueryParameters, userRequest.FieldsRawValuesByName, userRequest.ItemPath);
    }
    public async Task<ScItemsResponse> UpdateItemAsync(IUpdateItemByPathRequest request, CancellationToken cancelToken = default(CancellationToken))
    {
      IUpdateItemByPathRequest requestCopy = request.DeepCopyUpdateItemByPathRequest();

      using (ICredentialsHeadersCryptor cryptor = await this.GetCredentialsCryptorAsync(cancelToken))
      {
        IUpdateItemByPathRequest autocompletedRequest = this.requestMerger.FillUpdateItemByPathGaps(requestCopy);

        var urlBuilder = new UpdateItemByPathUrlBuilder(this.restGrammar, this.webApiGrammar);
        var taskFlow = new UpdateItemByPathTask(urlBuilder, this.httpClient, cryptor);

        return await RestApiCallFlow.LoadRequestFromNetworkFlow(autocompletedRequest, taskFlow, cancelToken);
      }
    }
 public async Task <ScItemsResponse> UpdateItemAsync(IUpdateItemByPathRequest request, CancellationToken cancelToken = default(CancellationToken))
 {
     return(await this.InvokeNoThrow(this.workerSession.UpdateItemAsync(request, cancelToken)));
 }