public int TotalCompaniesFiltered(DataTableParamModel tableParam) { if (!string.IsNullOrEmpty(tableParam.Search.Value)) { var filterCol = from i in tableParam.Columns where i.Searchable select i.Name; StringBuilder filterString = new StringBuilder(); bool beginFlag = true; foreach (string col in filterCol) // Loop through all strings { if (beginFlag) { beginFlag = false; } else { filterString.Append(" Or "); } filterString.AppendFormat("{0}.ToLower().Contains(@0)", col); } return _session.Query<Company>() .Where(filterString.ToString(), tableParam.Search.Value.ToLower()).Count(); } return _session.Query<Company>().Count(); }
public IList<Company> Companies(DataTableParamModel tableParam) { IQueryable<Company> companies; if (!string.IsNullOrEmpty(tableParam.Search.Value)) { var filterCol = from i in tableParam.Columns where i.Searchable select i.Name; StringBuilder filterString = new StringBuilder(); bool beginFlag = true; foreach (string col in filterCol) // Loop through all strings { if(beginFlag) { beginFlag = false; } else { filterString.Append(" Or "); } filterString.AppendFormat("{0}.ToLower().Contains(@0)", col); } companies = _session.Query<Company>() .Where(filterString.ToString(), tableParam.Search.Value.ToLower()); } else { companies = _session.Query<Company>(); } int sortColIndex = tableParam.Order[0].Column; if (tableParam.Columns[sortColIndex].Orderable) { companies = companies.OrderBy(tableParam.Columns[sortColIndex].Name + ((tableParam.Order[0].Dir == "desc") ? " descending" : "")); } return companies.Skip(tableParam.Start).Take(tableParam.Length).ToList(); }