public void UpdateShow(TvShow show) { var newSeries = series.GetSeriesAsync(show.TvdbId).GetAwaiter().GetResult(); if (show.Banner != newSeries.Data.Banner) { show.Banner = newSeries.Data.Banner; var banner = series.GetBannerAsnyc(newSeries.Data).Result; var targetPath = $"Images{Path.DirectorySeparatorChar}{show.TvdbId}.jpg"; streamWriter.WriteStream(banner, targetPath); } var newEpisodes = series.GetAllEpisodesAsync(show.TvdbId) .GetAwaiter() .GetResult() .Select( x => new Episode { TvdbId = x.Id.ToString(), EpisodeNumber = show.UseDvdOrder && x.DvdEpisodeNumber.HasValue ? x.DvdEpisodeNumber.Value : x.AiredEpisodeNumber.Value, SeasonNumber = show.UseDvdOrder && x.DvdSeason.HasValue ? x.DvdSeason.Value : x.AiredSeason.Value, FirstAir = x.FirstAired.ValidateTime() ? DateTime.Parse(x.FirstAired) : DateTime.Parse("1970-01-01"), Name = x.EpisodeName ?? string.Empty, Show = show, }) .ToList(); if (show.Episodes != null) { foreach (var episode in newEpisodes) { var currentEpisode = show.Episodes.FirstOrDefault(x => x.Equals(episode)); if (currentEpisode != null) { episode.FileCount = currentEpisode.FileCount; } } } show.Episodes = newEpisodes; show.LastUpdated = DateTime.UtcNow; }