public bool Matches(string filter, FilterMatching criteria = FilterMatching.Any) { if (criteria == FilterMatching.Never) { return(false); } string desc = description; string name = this.name; if (!FilterMatching.Case.In(criteria)) { filter = filter.ToLower(); if (FilterMatching.Name.In(criteria)) { name = this.name.ToLower(); } if (FilterMatching.Description.In(criteria)) { desc = description.ToLower(); } } if (FilterMatching.Any.In(criteria)) { return(name.Contains(filter) || desc.Contains(filter)); } else if (FilterMatching.Both.In(criteria)) { return(name.Contains(filter) && desc.Contains(filter)); } else if (FilterMatching.Name.In(criteria)) { return(name.Contains(filter)); } else if (FilterMatching.Description.In(criteria)) { return(desc.Contains(filter)); } else { throw new System.MissingMemberException("Can't filter on requested criteria: " + criteria); } }
public static bool In(this FilterMatching me, FilterMatching other) { return((me & other) == me); }
} // Dummy constructor public MenuGenericItemModel(bool isLoop, ItemFormat funcFormat, FilterMatching funcFilter, Action <int, T> onSelect) { }