Пример #1
0
        public static List <WebFile> Search(List <WebFile> dataFiles, string SearchQuery, SortBy SortBy)
        {
            lock (loadSearchListLock)
            {
                SortFiles(dataFiles, SortBy);

                return(dataFiles.Select(item =>
                                        new
                {
                    i = item,
                    Props = item.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public)
                })
                       .Where(item => item.Props.Any(p =>
                {
                    var val = p.GetValue(item.i, null);
                    return val != null &&
                    (p.Name.ToLower() == "URL".ToLower() || string.IsNullOrEmpty("URL")) &&
                    (TextExtensions.ContainsAll(Uri.UnescapeDataString(val.ToString().ToLower()), TextExtensions.GetWords(SearchQuery.ToLower())) || string.IsNullOrEmpty(SearchQuery));
                }))
                       .Select(item => item.i)
                       .ToList());
            }
        }