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)); }
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()); }