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); }