BrightIdeasSoftware.ObjectListView.FilterObjects C# (CSharp) Method

FilterObjects() protected method

Do the actual work of filtering
protected FilterObjects ( IEnumerable originalObjects, IModelFilter aModelFilter, IListFilter aListFilter ) : IEnumerable
originalObjects IEnumerable
aModelFilter IModelFilter
aListFilter IListFilter
return IEnumerable
        protected virtual IEnumerable FilterObjects(IEnumerable originalObjects, IModelFilter aModelFilter, IListFilter aListFilter)
        {
            // Being cautious
            originalObjects = originalObjects ?? new ArrayList();

            // Tell the world to filter the objects. If they do so, don't do anything else
            FilterEventArgs args = new FilterEventArgs(originalObjects);
            this.OnFilter(args);
            if (args.FilteredObjects != null)
                return args.FilteredObjects;

            // Apply a filter to the list as a whole
            if (aListFilter != null)
                originalObjects = aListFilter.Filter(originalObjects);

            // Apply the object filter if there is one
            if (aModelFilter != null) {
                ArrayList filteredObjects = new ArrayList();
                foreach (object model in originalObjects) {
                    if (aModelFilter.Filter(model))
                        filteredObjects.Add(model);
                }
                originalObjects = filteredObjects;
            }

            return originalObjects;
        }
ObjectListView