Ejemplo n.º 1
0
        private void btnSearch_Click(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrWhiteSpace(tbSearch.Text))
            {
                // Effectively reset the results when searching for nothing
                DataGridSource = Images;
                ClearDataGridSearch();
            }
            else
            {
                List <string>   searchTerms   = tbSearch.Text.Split(',').ToList();
                ImageCollection searchResults = new ImageCollection();

                foreach (string term in searchTerms)
                {
                    Regex pattern = new Regex(term.ToLower().Trim());
                    foreach (ImageModel model in Images)
                    {
                        bool matchWasFound = IsPatternMatch(pattern, model.Author.ToLower()) ||
                                             IsPatternMatch(pattern, model.Title.ToLower()) ||
                                             IsPatternMatch(pattern, model.Description.ToLower()) ||
                                             IsPatternMatch(pattern, model.Keywords.ToLower());

                        bool unique = !searchResults.ContainsId(model.Id);

                        if (matchWasFound && unique)
                        {
                            searchResults.Add(model);
                        }
                    }
                }

                DataGridSource = searchResults;
                dataGridImageCollection.ItemsSource = DataGridSource;
                dataGridImageCollection.Items.Refresh();
            }
        }