PowerArgs.Cli.MemoryDataSource.MatchesFilter C# (CSharp) Method

MatchesFilter() private method

private MatchesFilter ( object item, string filter ) : bool
item object
filter string
return bool
        private bool MatchesFilter(object item, string filter)
        {
            if (filter == null || filter.Length == 0) return true;

            var filterables = item.GetType().GetProperties().Where(prop => prop.HasAttr<FilterableAttribute>());

            if (filterables.Count() == 0)
            {
                return item.ToString().IndexOf(filter, StringComparison.InvariantCultureIgnoreCase) >= 0;
            }
            else
            {
                foreach (var filterable in filterables)
                {
                    var propValue = filterable.GetValue(item);
                    if (propValue != null && propValue.ToString().IndexOf(filter, StringComparison.InvariantCultureIgnoreCase) >= 0)
                    {
                        return true;
                    }
                }
                return false;
            }
        }