private async Task <EpisodeInfo> CreateEpisodeInfo(Episode episode, string episodeId = null) { if (episode == null) { return(null); } if (string.IsNullOrEmpty(episodeId)) { episodeId = episode.IDs.ID.ToString(); } var cacheKey = $"episode:{episodeId}"; EpisodeInfo info = null; if (DataCache.TryGetValue <EpisodeInfo>(cacheKey, out info)) { return(info); } var aniDB = (await ShokoAPI.GetEpisodeAniDb(episodeId)); info = new EpisodeInfo { Id = episodeId, ExtraType = GetExtraType(aniDB), Shoko = (await ShokoAPI.GetEpisode(episodeId)), AniDB = aniDB, TvDB = ((await ShokoAPI.GetEpisodeTvDb(episodeId))?.FirstOrDefault()), }; DataCache.Set <EpisodeInfo>(cacheKey, info, DefaultTimeSpan); return(info); }
public async Task <EpisodeInfo> GetEpisodeInfo(string episodeId) { if (string.IsNullOrEmpty(episodeId)) { return(null); } if (DataCache.TryGetValue <EpisodeInfo>($"episode:{episodeId}", out var info)) { return(info); } var episode = await ShokoAPI.GetEpisode(episodeId); return(await CreateEpisodeInfo(episode, episodeId)); }