Search Api usage and BoolQueryDescriptor - Nest Client

Hi ,
Nest Version : 2.10
Elasticsearch.Net Version : 2.10

I am trying to write a query which goes like below

BoolQueryDescriptor<ErrorLog> queryParameter;
queryParameter = QueryFilterBuilder.BuildQueryFilter<ErrorLog>(searchInputs.SearchParameters);   

if (queryParameter != null)
{
  var searchResultnew = elasticClient.Search<ErrorLog>(query => query
    .Query(q=>q.Bool(queryParameter))
      .Index("errorlogs")
      .Size(searchInputs.ResultCount)
      .From(searchInputs.From)
      .Sort(s => s.OnField(sortField)
      .Order(sortOrder)
    )
  );
}

Here the query.Query(q=>q.Bool(queryParameter)) is not taking queryParameter as parameter even though queryParameter is of type BoolQueryDescriptor . Not sure what is wrong here.

Have copied the Generic class query builder class below ie, QueryFilterBuilder Please let me know if you need more details.
This class was written using Nest 1.x now we are trying to fix the broken thing with Nest 2.0.

    public static class QueryFilterBuilder
    {
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")]
        public static BoolQueryDescriptor<T> BuildQueryFilter<T>(IList<SearchParameters> searchParameterList) where T : class
        {
            QueryContainer filterContainer = null;
            BoolQueryDescriptor<T> bqd = new BoolQueryDescriptor<T>();
            if (searchParameterList == null)
            {
                throw (new ArgumentNullException("searchParameterList"));
            }

            var fieldGroups = from parameter in searchParameterList
                              group parameter by parameter.FieldName into fieldList
                              orderby fieldList.Key
                              select fieldList;
            foreach (var fgrp in fieldGroups)
            {
                string fieldName = string.Empty;
                string fieldDataType = string.Empty;
                string searchText = string.Empty;
                SearchFilterType operand = SearchFilterType.Unknown;
                foreach (var sp in fgrp.ToList())
                {
                    switch (sp.Operand)
                    {
                        case SearchFilterType.Equals:
                            bqd.Must(EqualTo(searchText, sp.FieldName, sp.Analysed));
                            operand = sp.Operand;
                            break;

                        case SearchFilterType.Contains:
                            bqd.Must(Contains(searchText, sp.FieldName, sp.Analysed, fieldDataType));
                            operand = sp.Operand;
                            break;
                    }
                }
            }

            return bqd;
        }

        public static QueryContainer EqualTo(string searchText, string field, bool fieldanalysis)
        {
            QueryContainer queryContainer = null;
            if (searchText == null)
            {
                throw (new ArgumentNullException("searchText"));
            }

            if (fieldanalysis)
            {
                searchText = searchText.ToLower();
                queryContainer = new TermQuery()
                {
                    Field = field + ".sort",
                    Value = searchText
                };
            }
            else
            {
                queryContainer &= new TermQuery()
                {
                    Field = field,
                    Value = searchText
                };
            }
            return queryContainer;
        }

     
    }

---------------------
 public class SearchParameters
    {
        /// <summary>
        /// Gets or sets SearchText
        /// </summary>
        public String SearchText { get; set; }

        /// <summary>
        /// Gets or sets FieldName
        /// </summary>
        public String FieldName { get; set; }

        /// <summary>
        /// Gets or sets Operand
        /// </summary>
        public SearchFilterType Operand { get; set; }

        /// <summary>
        /// Gets or sets FieldName
        /// </summary>
        public String FieldDataType { get; set; }

        /// <summary>
        /// Gets or sets Analyzed status
        /// </summary>
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Analysed")]
        public bool Analysed { get; set; }
    }

Thanks,
Pavan