Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        /// <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);
        }