Aspectacular.LogOutputAspectBase.FilterLogEntries C# (CSharp) Method

FilterLogEntries() protected method

Whittles down log item collection according with values of entryTypeFilter, keys, and writeAllEntriesIfKeyFound.
protected FilterLogEntries ( List entries ) : IEnumerable
entries List
return IEnumerable
        protected virtual IEnumerable<CallLogEntry> FilterLogEntries(List<CallLogEntry> entries)
        {
            IEnumerable<CallLogEntry> filtered;

            if(this.writeAllEntriesIfKeyFound && this.keys.Length != 0)
            {
                bool keyFound = entries.Any(entry => this.keys.Contains(entry.Key));
                if(!keyFound)
                    filtered = new CallLogEntry[0];
                else
                    filtered = entries.Where(entry => this.entryTypeFilter.IsAnyFlagOn(entry.What));
            } else
            {
                filtered = from entry in entries
                    where this.entryTypeFilter.IsAnyFlagOn(entry.What) && (this.keys.Length == 0 || this.keys.Contains(entry.Key))
                    select entry;
            }

            return filtered;
        }