Ejemplo n.º 1
0
        private async Task <Anime> DatabaseToAnime(AnimeDbo animeDbo)
        {
            var anime = new Anime();

            anime.CopyBaseProperties(source: animeDbo);

            anime.Genres = await database.GenreMappings.Where(m => m.AnimeId == anime.Id)
                           .Join(database.Genres, m => m.GenreId, g => g.Id, (m, g) => g).ToListAsync();

            anime.Studios = await database.StudioMappings.Where(m => m.AnimeId == anime.Id)
                            .Join(database.Studios, m => m.StudioId, s => s.Id, (m, s) => s).ToListAsync();

            anime.Titles = await database.Titles.Where(t => t.AnimeId == anime.Id).ToListAsync();

            anime.Episodes = await database.Episodes.Where(e => e.AnimeId == anime.Id)
                             .OrderBy(e => e.SeasonNumber).ThenBy(e => e.EpisodeNumber).ToListAsync();

            anime.Characters = await database.Characters.Where(c => c.AnimeId == anime.Id).ToListAsync();

            anime.StreamingLinks = await database.StreamingLinks.Where(l => l.AnimeId == anime.Id).ToListAsync();

            return(anime);
        }