private bool IsSupported(FilterFunctions op, Procedure procedure, Parameter parameter) { if (op == FilterFunctions.None) return false; var fullTextFunctions = new[] { FilterFunctions.FullTextContains, FilterFunctions.NotFullTextContains, FilterFunctions.FreeText, FilterFunctions.NotFreeText }; var likeFunctions = new[] { FilterFunctions.StartsWith, FilterFunctions.EndsWith, FilterFunctions.Contains, FilterFunctions.NotContains }; var parameterFunctions = GetFilterFunctions(parameter); if ((parameterFunctions & op) != op) return false; if (fullTextFunctions.Contains(op)) { if (!IsFullTextCompatible(parameter.DbType)) return false; } if (op == FilterFunctions.StartsWith || op == FilterFunctions.EndsWith || op == FilterFunctions.Contains || op == FilterFunctions.NotContains) { if (!IsLikeCompatible(parameter.DbType)) return false; } return true; }