using System.Linq; using API.DTOs; using API.DTOs.Scrobbling; using API.Entities; using API.Extensions; using API.Services.Plus; namespace API.Helpers.Builders; public class PlusSeriesDtoBuilder : IEntityBuilder { private readonly PlusSeriesRequestDto _seriesRequestDto; public PlusSeriesRequestDto Build() => _seriesRequestDto; /// /// This must be a FULL Series /// /// public PlusSeriesDtoBuilder(Series series) { _seriesRequestDto = new PlusSeriesRequestDto() { MediaFormat = series.Library.Type.ConvertToPlusMediaFormat(series.Format), SeriesName = series.Name, AltSeriesName = series.LocalizedName, AniListId = ScrobblingService.ExtractId(series.Metadata.WebLinks, ScrobblingService.AniListWeblinkWebsite), MalId = ScrobblingService.ExtractId(series.Metadata.WebLinks, ScrobblingService.MalWeblinkWebsite), GoogleBooksId = ScrobblingService.ExtractId(series.Metadata.WebLinks, ScrobblingService.GoogleBooksWeblinkWebsite), MangaDexId = ScrobblingService.ExtractId(series.Metadata.WebLinks, ScrobblingService.MangaDexWeblinkWebsite), VolumeCount = series.Volumes.Count, ChapterCount = series.Volumes.SelectMany(v => v.Chapters).Count(c => !c.IsSpecial), Year = series.Metadata.ReleaseYear }; } }