diff --git a/LarkatorGUI/MainWindow.xaml.cs b/LarkatorGUI/MainWindow.xaml.cs index 0a3c9bc..d0a87a8 100644 --- a/LarkatorGUI/MainWindow.xaml.cs +++ b/LarkatorGUI/MainWindow.xaml.cs @@ -477,7 +477,6 @@ private void CreateSearch_Click(object sender, RoutedEventArgs e) speciesCombo.ItemsSource = arkReader.AllSpecies; groupsCombo.ItemsSource = ListSearches.Select(sc => sc.Group).Distinct().OrderBy(g => g).ToArray(); - int temp = Properties.Settings.Default.lastGroup; groupsCombo.SelectedIndex = Properties.Settings.Default.lastGroup; } @@ -528,12 +527,16 @@ private void Dev_DummyData_Click(object sender, MouseButtonEventArgs e) private void SaveSearch_Click(object sender, RoutedEventArgs e) { - List NewSearchList; - SearchCriteria tempSearch; if (String.IsNullOrWhiteSpace(NewSearch.Species)) return; + + List NewSearchList = new List(AllSpecies.Where(species => species.Contains(NewSearch.Species))); + SearchCriteria tempSearch; + int order = 100; + Properties.Settings.Default.lastGroup = groupsCombo.SelectedIndex; Properties.Settings.Default.Save(); - NewSearchList = new List(AllSpecies.Where(species => species.Contains(NewSearch.Species))); + + if (NewSearchList.Count == 0) // No matches { //Trigger default values so the user knows we tried to match NewSearch = null; @@ -546,12 +549,19 @@ private void SaveSearch_Click(object sender, RoutedEventArgs e) try { ObservableCollection tempListSearch = new ObservableCollection(ListSearches.Where(sc => sc.Group == (String) groupsCombo.SelectedValue)); + if (tempListSearch.Count > 0) + { + order = (int) ListSearches.Where(sc => sc.Group == NewSearch.Group).Max(sc => sc.Order) + 100; + } foreach (String newDino in NewSearchList) { - tempSearch = new SearchCriteria(NewSearch); - tempSearch.Species = newDino; - tempSearch.Order = ListSearches.Where(sc => sc.Group == tempSearch.Group).Max(sc => sc.Order) + 100; - ListSearches.Add(tempSearch); + if (tempListSearch.Count == 0 || tempListSearch.Where(dino =>dino.Species == newDino).Count() == 0) { + tempSearch = new SearchCriteria(NewSearch); + tempSearch.Species = newDino; + tempSearch.Order = order; + ListSearches.Add(tempSearch); + order += 100; + } } } catch (InvalidOperationException) // no entries for .Max - ignore