private List <AnimeSeriesVM> GetSeriesForGroupFilter() { List <AnimeSeriesVM> serList = new List <AnimeSeriesVM>(); try { if (LevelType != RandomSeriesEpisodeLevel.GroupFilter) { return(serList); } GroupFilterVM gf = LevelObject as GroupFilterVM; if (gf == null) { return(serList); } List <AnimeGroupVM> grps = new List <AnimeGroupVM>(MainListHelperVM.Instance.AllGroups); foreach (AnimeGroupVM grp in grps) { // ignore sub groups if (grp.AnimeGroupParentID.HasValue) { continue; } if (gf.EvaluateGroupFilter(grp)) { foreach (AnimeSeriesVM ser in grp.AllAnimeSeries) { if (gf.EvaluateGroupFilter(ser)) { // categories if (!string.IsNullOrEmpty(SelectedCategories)) { string filterParm = SelectedCategories.Trim(); string[] cats = filterParm.Split(','); bool foundCat = false; if (cboCatFilter.SelectedIndex == 1) { foundCat = true; // all } int index = 0; foreach (string cat in cats) { if (cat.Trim().Length == 0) { continue; } if (cat.Trim() == ",") { continue; } index = ser.CategoriesString.IndexOf(cat, 0, StringComparison.InvariantCultureIgnoreCase); if (cboCatFilter.SelectedIndex == 0) // any { if (index > -1) { foundCat = true; break; } } else //all { if (index < 0) { foundCat = false; break; } } } if (!foundCat) { continue; } } if (!ser.IsComplete && chkComplete.IsChecked.Value) { continue; } if (chkWatched.IsChecked.Value && ser.AllFilesWatched) { serList.Add(ser); continue; } if (chkUnwatched.IsChecked.Value && !ser.AnyFilesWatched) { serList.Add(ser); continue; } if (chkPartiallyWatched.IsChecked.Value && ser.AnyFilesWatched && !ser.AllFilesWatched) { serList.Add(ser); continue; } } } } } } catch (Exception ex) { Utils.ShowErrorMessage(ex); } return(serList); }
private List <AnimeSeriesVM> GetSeriesForGroup() { List <AnimeSeriesVM> serList = new List <AnimeSeriesVM>(); try { if (LevelType != RandomSeriesEpisodeLevel.Group) { return(serList); } AnimeGroupVM grp = LevelObject as AnimeGroupVM; if (grp == null) { return(serList); } foreach (AnimeSeriesVM ser in grp.AllAnimeSeries) { // categories if (!string.IsNullOrEmpty(SelectedCategories)) { string filterParm = SelectedCategories.Trim(); string[] cats = filterParm.Split(','); bool foundCat = false; if (cboCatFilter.SelectedIndex == 1) { foundCat = true; // all } int index = 0; foreach (string cat in cats) { if (cat.Trim().Length == 0) { continue; } if (cat.Trim() == ",") { continue; } index = ser.CategoriesString.IndexOf(cat, 0, StringComparison.InvariantCultureIgnoreCase); if (cboCatFilter.SelectedIndex == 0) // any { if (index > -1) { foundCat = true; break; } } else //all { if (index < 0) { foundCat = false; break; } } } if (!foundCat) { continue; } } serList.Add(ser); } } catch (Exception ex) { Utils.ShowErrorMessage(ex); } return(serList); }