using System.Collections.Generic; using System.Linq; using API.Comparators; using API.Entities; using API.Entities.Enums; namespace API.Extensions; public static class VolumeListExtensions { /// /// Selects the first Volume to get the cover image from. For a book with only a special, the special will be returned. /// If there are both specials and non-specials, then the first non-special will be returned. /// /// /// /// public static Volume GetCoverImage(this IList volumes, MangaFormat seriesFormat) { if (seriesFormat == MangaFormat.Epub || seriesFormat == MangaFormat.Pdf) { return volumes.MinBy(x => x.Number); } if (volumes.Any(x => x.Number != 0)) { return volumes.OrderBy(x => x.Number).FirstOrDefault(x => x.Number != 0); } // We only have 1 volume of chapters, we need to be cautious if there are specials, as we don't want to order them first return volumes.MinBy(x => x.Number); } }