Exemplo n.º 1
0
        private object Execute <T>(RestQueryableTreeParser parser, bool executeAsync)
        {
            LambdaExpression clientSideSelectPart;
            var uri = BuildUri(parser, out clientSideSelectPart);

            if (parser.ResultMode == RestQueryableTreeParser.ResultModeType.ToUri)
            {
                return(new Uri(uri));
            }

            var requestOptions = RequestOptions.Create <T>(x => parser.RequestOptionActions.ForEach(y => y(x)));

            if (parser.ResultMode == RestQueryableTreeParser.ResultModeType.ToJson)
            {
                return(Client.Get <JToken>(uri, requestOptions));
            }

            var queryProjection = parser.Projection;

            if (clientSideSelectPart != null)
            {
                return(executeWithClientSelectPart.Invoke(clientSideSelectPart.Parameters[0].Type,
                                                          clientSideSelectPart.ReturnType,
                                                          this,
                                                          uri,
                                                          queryProjection,
                                                          clientSideSelectPart,
                                                          requestOptions,
                                                          executeAsync));
            }

            return(Execute <T, T>(uri, queryProjection, null, requestOptions, executeAsync));
        }
Exemplo n.º 2
0
        public void GetResourceById_WithExpandedProperty_ReturnedResourceHasExpandedProperty()
        {
            // TOOD: Get single item with expand is not yet implemented in client
            var critter = Client.Get <ICritter>(((IHasResourceUri)Client.Critters.GetLazy(CritterEntities.First().Id)).Uri,
                                                RequestOptions.Create <ICritter>(x => x.Expand(y => y.Weapons)));

            Assert.That(critter.Weapons.IsLoaded());
        }