using System.Collections.Generic; using System.Linq; using API.Entities; using API.Parser; namespace API.Extensions { public static class ParserInfoListExtensions { /// /// Selects distinct volume numbers by the "Volumes" key on the ParserInfo /// /// /// public static IList DistinctVolumes(this IList infos) { return infos.Select(p => p.Volumes).Distinct().ToList(); } /// /// Checks if a list of ParserInfos has a given chapter or not. Lookup occurs on Range property. If a chapter is /// special, then the is matched, else the field is checked. /// /// /// /// public static bool HasInfo(this IList infos, Chapter chapter) { return chapter.IsSpecial ? infos.Any(v => v.Filename == chapter.Range) : infos.Any(v => v.Chapters == chapter.Range); } // /// // /// Returns the MangaFormat that is common to all the files. Unknown if files are mixed (should never happen) or no infos // /// // /// // /// // public static MangaFormat GetFormat(this IList infos) // { // if (infos.Count == 0) return MangaFormat.Unknown; // return infos.DistinctBy(x => x.Format).First().Format; // } } }