/// <summary>
        /// Returns a list of up to 100 collections, given the provided paging, sorting and filtering.
        /// </summary>
        /// <param name="query">provided paging, sorting and filtering.</param>
        /// <returns>The new <see cref="CollectionQueryResponse"/>.</returns>
        public virtual async Task <CollectionQueryResponse> GetQueryCollectionsAsync(CollectionQuery query)
        {
            var         req     = PrepareRequest("collections/query");
            HttpContent content = null;

            if (query != null)
            {
                var body = query.ToDictionary();
                content = new JsonContent(body);
            }
            return(await ExecuteRequestAsync <CollectionQueryResponse>(req, HttpMethod.Post, content));
        }