Ejemplo n.º 1
0
        public ActionResult <List <Series> > GetSeries(int filterID, int groupID)
        {
            var grp = RepoFactory.AnimeGroup.GetByID(groupID);

            if (grp == null)
            {
                return(BadRequest("No Group with ID"));
            }
            if (filterID == 0)
            {
                return(grp.GetSeries().Where(a => User.AllowedSeries(a)).Select(a => new Series(HttpContext, a))
                       .ToList());
            }

            var f = RepoFactory.GroupFilter.GetByID(filterID);

            if (f == null)
            {
                return(BadRequest("No Filter with ID"));
            }

            if (f.ApplyToSeries != 1)
            {
                return(grp.GetSeries().Where(a => User.AllowedSeries(a)).Select(a => new Series(HttpContext, a))
                       .ToList());
            }

            if (!f.SeriesIds.ContainsKey(User.JMMUserID))
            {
                return(new List <Series>());
            }

            return(f.SeriesIds[User.JMMUserID].Select(id => RepoFactory.AnimeSeries.GetByID(id))
                   .Where(ser => ser?.AnimeGroupID == groupID).Select(ser => new Series(HttpContext, ser)).OrderBy(a =>
                                                                                                                   Series.GetAniDBInfo(HttpContext, RepoFactory.AniDB_Anime.GetByAnimeID(a.IDs.ID)))
                   .ToList());
        }