public IReadEntityByIdRequest FillReadEntityByIdGaps(IReadEntityByIdRequest userRequest)
        {
            IEntitySource newSource = this.EntitySourceMerger.FillEntitySourceGaps(userRequest.EntitySource);

            ISessionConfig mergedSessionConfig = this.SessionConfigMerger.FillSessionConfigGaps(userRequest.SessionSettings);

            ReadEntityByIdParameters newRequest = new ReadEntityByIdParameters(userRequest.EntityID, newSource, userRequest.ParametersRawValuesByName, mergedSessionConfig);

            return(newRequest);
        }
        public async Task <ScEntityResponse> ReadEntityAsync(IReadEntityByIdRequest request, CancellationToken cancelToken = default(CancellationToken))
        {
            IReadEntityByIdRequest requestCopy = request.DeepCopyReadEntitiesByIdRequest();

            //await this.GetPublicKeyAsync(cancelToken);
            IReadEntityByIdRequest autocompletedRequest = this.requestMerger.FillReadEntityByIdGaps(requestCopy);

            var urlBuilder = new EntityByIdUrlBuilder <IReadEntityByIdRequest>(this.restGrammar, this.sscGrammar);
            var taskFlow   = new GetEntityByIdTask(urlBuilder, this.httpClient);

            return(await RestApiCallFlow.LoadRequestFromNetworkFlow(autocompletedRequest, taskFlow, cancelToken));
        }
Пример #3
0
        public void TestBuildentityActionCanNotBeNull()
        {
            MockReadEntityByIdParameters mutableParameters = new MockReadEntityByIdParameters();

            mutableParameters.ItemSource      = LegacyConstants.DefaultSource();
            mutableParameters.SessionSettings = this.sessionConfig;
            mutableParameters.EntitySource    = new EntitySource("Namespace", null, "Controller", null);
            mutableParameters.EntityID        = "bla";

            IReadEntityByIdRequest request = mutableParameters;

            TestDelegate action = () => this.entitybyIdBuilder.GetUrlForRequest(request);

            Assert.Throws <ArgumentNullException>(action);
        }
Пример #4
0
        public void TestBuildWithValidPath()
        {
            MockReadEntityByIdParameters mutableParameters = new MockReadEntityByIdParameters();

            mutableParameters.ItemSource      = LegacyConstants.DefaultSource();
            mutableParameters.SessionSettings = this.sessionConfig;
            mutableParameters.EntitySource    = new EntitySource("namespace", "controller", "id", "action");
            mutableParameters.EntityID        = "bla";

            IReadEntityByIdRequest request = mutableParameters;

            string result   = this.entitybyIdBuilder.GetUrlForRequest(request);
            string expected = "https://mobiledev1ua1.dk.sitecore.net/sitecore/api/ssc/namespace/controller/id/action('bla')";

            Assert.AreEqual(expected, result);
        }
Пример #5
0
        public void TestBuildCustomParametersIsCaseSensitive()
        {
            MockReadEntityByIdParameters mutableParameters = new MockReadEntityByIdParameters();

            mutableParameters.ItemSource                = LegacyConstants.DefaultSource();
            mutableParameters.SessionSettings           = this.sessionConfig;
            mutableParameters.EntitySource              = new EntitySource("namespace", "controller", "id", "action");
            mutableParameters.ParametersRawValuesByName = new Dictionary <string, string>()
            {
                { "fIeLd1", "VaLuE1" }, { "FiElD2", "vAlUe2" }
            };
            mutableParameters.EntityID = "bla";

            IReadEntityByIdRequest request = mutableParameters;

            string result   = this.entitybyIdBuilder.GetUrlForRequest(request);
            string expected = "https://mobiledev1ua1.dk.sitecore.net/sitecore/api/ssc/namespace/controller/id/action('bla')?fIeLd1=VaLuE1&FiElD2=vAlUe2";

            Assert.AreEqual(expected, result);
        }
Пример #6
0
 public async Task <ScEntityResponse> ReadEntityAsync(IReadEntityByIdRequest request, CancellationToken cancelToken = default(CancellationToken))
 {
     return(await this.InvokeNoThrow(this.workerSession.ReadEntityAsync(request, cancelToken)));
 }