public async Task QueryCustomObjectsByContainer() { //Create container with 5 Custom FooBar Objects and container with 3 Foo Objects string fooBarContainer = $"FooBarContainer{TestingUtility.RandomInt()}"; string fooContainer = $"FooContainer{TestingUtility.RandomInt()}"; await WithListOfCustomObject <FooBar>(client, customObjectDraft => DefaultCustomObjectDraftWithContainerName(customObjectDraft, fooBarContainer), 5, async fooBarList => { Assert.Equal(5, fooBarList.Count); await WithListOfCustomObject <Foo>(client, customObjectDraft => DefaultCustomObjectDraftWithContainerName(customObjectDraft, fooContainer), 3, async fooList => { Assert.Equal(3, fooList.Count); //Query FooBar Custom Objects using Container name var queryCommand = new QueryByContainerCommand <CustomObject>(fooBarContainer); var returnedSet = await client.ExecuteAsync(queryCommand); Assert.NotNull(returnedSet); Assert.Equal(5, returnedSet.Results.Count); Assert.Equal(fooBarContainer, returnedSet.Results[0].Container); }); }); }
private Uri GetRequestUri <T>(QueryByContainerCommand <T> command) { string requestUri = this.GetMessageBase <T>(); requestUri += $"/{command.Container}"; List <KeyValuePair <string, string> > queryStringParameters = new List <KeyValuePair <string, string> >(); if (command.QueryParameters != null) { IQueryParametersBuilder queryParametersBuilder = this.queryParametersBuilderFactory.GetParameterBuilder(command.QueryParameters); queryStringParameters.AddRange(queryParametersBuilder.GetQueryParameters(command.QueryParameters)); } queryStringParameters.AddRange(this.GetAdditionalParameters(command.AdditionalParameters)); queryStringParameters.ForEach(x => { requestUri = QueryHelpers.AddQueryString(requestUri, x.Key, x.Value); }); return(new Uri(requestUri, UriKind.Relative)); }
public QueryByContainerHttpApiCommand(QueryByContainerCommand <T> command, IRequestMessageBuilderFactory requestMessageBuilderFactory) { this.command = command; this.requestBuilder = requestMessageBuilderFactory.GetRequestMessageBuilder <QueryByContainerRequestMessageBuilder>(); }
public HttpRequestMessage GetRequestMessage <T>(QueryByContainerCommand <T> command) { return(this.GetRequestMessage <T>(this.GetRequestUri <T>(command), null, HttpMethod)); }