/// <summary>
        /// Set query on request and execute request
        /// </summary>
        /// <param name="request">The request</param>
        /// <param name="cancellationToken">The cancellation token</param>
        /// <returns>The response</returns>
        public Task <ApiResponse <TResponse> > Execute(ApiRequest <TRequest> request, CancellationToken cancellationToken)
        {
            Argument.NotNull(request, nameof(request));

            if (request.Context == null)
            {
                request.Context = new RequestContext();
            }

            if (request.Context.Query == null)
            {
                string query = _queryProvider.GetQueryString(request.Model);

                request.Context.Query = query;
            }

            return(_apiClient.Execute(request, cancellationToken));
        }