private IEnumerable <string> _makeSafeLikeClauses() { string SearchTerm = _SearchTerm.Trim(); Collection <string> Clauses = new Collection <string>(); if (_SearchType == CswEnumSqlLikeMode.Contains) { // For Contains, we treat each word individually, unless enclosed in quotes // Find entries in quotes bool StopLoop = false; while (SearchTerm.Contains("\"") && false == StopLoop) { int begin = SearchTerm.IndexOf('"'); int length = SearchTerm.Substring(begin + 1).IndexOf('"'); if (length > 0) { string QueryItem = SearchTerm.Substring(begin + 1, length).Trim(); SearchTerm = SearchTerm.Remove(begin, length + 2).Trim(); if (false == string.IsNullOrEmpty(QueryItem)) { Clauses.Add(CswTools.SafeSqlLikeClause(QueryItem.ToLower(), CswEnumSqlLikeMode.Contains, true)); } } else { StopLoop = true; } } // while( SearchTerm.Contains( "\"" ) && Continue) // Split by spaces (case 27532) foreach (string TrimmedQueryItem in SearchTerm.Split(new char[] { ' ' }) .Select(QueryItem => QueryItem.Trim()) .Where(TrimmedQueryItem => false == string.IsNullOrEmpty(TrimmedQueryItem))) { Clauses.Add(CswTools.SafeSqlLikeClause(TrimmedQueryItem.ToLower(), CswEnumSqlLikeMode.Contains, true)); } } // if( _SearchType == CswEnumSqlLikeMode.Contains ) else { Clauses.Add(CswTools.SafeSqlLikeClause(SearchTerm.ToLower(), _SearchType, true)); } return(Clauses); } // makeSafeLikeClauses