public SearchResponse SearchIssuesByQuery(JqlQuery jqlQuery, List <string> fields, int startAt, int maxResults)
        {
            var searchRequest = new SearchRequest
            {
                JqlQuery   = jqlQuery.CreateJqlQuery(),
                Fields     = fields,
                StartAt    = startAt,
                MaxResults = maxResults
            };

            try
            {
                var request  = CreateRequest(Method.GET, searchRequest.CreateSearchRequest());
                var response = ExecuteRequest(request);

                AssertStatus(response, HttpStatusCode.OK);

                var data = _deserializer.Deserialize <SearchResponse>(response);
                return(data);
            }
            catch (Exception ex)
            {
                Trace.TraceError("SearchIssuesByQuery(jqlQuery, fields, startAt, maxResults) error: {0}", ex);
                throw new JiraClientException("Could not load issues", ex);
            }
        }