/// <summary> /// Apply all filters to the specified INewsItem. /// </summary> public bool Apply(ThreadedListViewItem lvItem) { INewsItem item = lvItem.Key as INewsItem; if (item == null) { return(false); } bool anyApplied = false; foreach (string key in filters.Keys) { INewsItemFilter filter = filters[key]; if (filter != null && filter.Match(item)) { if (!CancelFilterAction(key)) { filter.ApplyAction(item, lvItem); anyApplied = true; } } } return(anyApplied); }
/// <summary> /// Add a new filter to the internal collection. If the filter exists, /// it will be replaced by the new one. /// </summary> /// <param name="key">Filter Identifier</param> /// <param name="newFilter">A INewsItemFilter instance</param> /// <returns>The INewsItemFilter instance</returns> public INewsItemFilter Add(string key, INewsItemFilter newFilter) { if (key == null || newFilter == null) { throw new ArgumentException("Parameter cannot be null", (newFilter == null ? "key" : "newFilter")); } if (filters.ContainsKey(key)) { filters.Remove(key); } filters.Add(key, newFilter); return(newFilter); }
/// <summary> /// Apply a specific filter to the specified INewsItem. /// </summary> /// <param name="key"></param> /// <param name="item">The INewsItem instance</param> public bool Apply(string key, INewsItem item) { bool anyApplied = false; if (!filters.ContainsKey(key)) { return(anyApplied); } INewsItemFilter filter = filters[key]; if (filter.Match(item)) { if (!CancelFilterAction(key)) { filter.ApplyAction(item, null); anyApplied = true; } } return(anyApplied); }