public static bool EvaluateGroupFilter(VM_GroupFilter gf, VM_AnimeGroup_User grp)
 {
     return(gf.EvaluateGroupFilter(grp));
 }
 public static bool EvaluateGroupFilter(VM_GroupFilter gf, VM_AnimeSeries_User ser)
 {
     return(gf.EvaluateGroupFilter(ser));
 }
Ejemplo n.º 3
0
        private List <VM_AnimeSeries_User> GetSeriesForGroupFilter()
        {
            List <VM_AnimeSeries_User> serList = new List <VM_AnimeSeries_User>();

            try
            {
                if (LevelType != RandomSeriesEpisodeLevel.GroupFilter)
                {
                    return(serList);
                }
                VM_GroupFilter gf = LevelObject as VM_GroupFilter;
                if (gf == null)
                {
                    return(serList);
                }

                foreach (VM_AnimeGroup_User grp in VM_MainListHelper.Instance.AllGroupsDictionary.Values)
                {
                    // ignore sub groups
                    if (grp.AnimeGroupParentID.HasValue)
                    {
                        continue;
                    }

                    foreach (VM_AnimeSeries_User ser in grp.AllAnimeSeries)
                    {
                        if (gf.EvaluateGroupFilter(ser))
                        {
                            // tags
                            if (!string.IsNullOrEmpty(SelectedTags))
                            {
                                string filterParm = SelectedTags.Trim();

                                string[] cats = filterParm.Split(',');

                                bool foundCat = false;
                                if (cboCatFilter.SelectedIndex == 1)
                                {
                                    foundCat = true;                                                                  // all
                                }
                                foreach (string cat in cats)
                                {
                                    if (cat.Trim().Length == 0)
                                    {
                                        continue;
                                    }
                                    if (cat.Trim() == ",")
                                    {
                                        continue;
                                    }

                                    bool fnd = ser.AllTags.Contains(cat, StringComparer.InvariantCultureIgnoreCase);

                                    if (cboCatFilter.SelectedIndex == 0)                                     // any
                                    {
                                        if (fnd)
                                        {
                                            foundCat = true;
                                            break;
                                        }
                                    }
                                    else                                     //all
                                    {
                                        if (!fnd)
                                        {
                                            foundCat = false;
                                            break;
                                        }
                                    }
                                }
                                if (!foundCat)
                                {
                                    continue;
                                }
                            }

                            serList.Add(ser);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Utils.ShowErrorMessage(ex);
            }

            return(serList);
        }