/// <summary> /// Update all fields of the object with the given information /// </summary> /// <param name="fields">the fields for the update</param> /// <param name="replaceEpisodes">Should the episodes be replaced or kept</param> internal void UpdateTvdbFields(TvdbSeriesFields fields, bool replaceEpisodes) { //Update series details Id = fields.Id; Actors = fields.Actors; AirsDayOfWeek = fields.AirsDayOfWeek; AirsTime = fields.AirsTime; ContentRating = fields.ContentRating; FirstAired = fields.FirstAired; Genre = fields.Genre; ImdbId = fields.ImdbId; Language = fields.Language; Network = fields.Network; NetworkID = fields.NetworkID; Overview = fields.Overview; Rating = fields.Rating; RatingCount = fields.RatingCount; Runtime = fields.Runtime; TvDotComId = fields.TvDotComId; SeriesName = fields.SeriesName; Status = fields.Status; BannerPath = fields.BannerPath; FanartPath = fields.FanartPath; PosterPath = fields.PosterPath; LastUpdated = fields.LastUpdated; Zap2itId = fields.Zap2itId; if (replaceEpisodes) { if (Episodes != null && fields.EpisodesLoaded) { //check for each episode if episode images have been loaded... //if yes -> copy image foreach (TvdbEpisode f in fields.Episodes) { foreach (TvdbEpisode e in Episodes) { if (e.Id == f.Id && e.Banner != null && e.Banner.IsLoaded) { f.Banner = e.Banner; break; } } } } EpisodesLoaded = fields.EpisodesLoaded; if (Episodes == null) { Episodes = new UniqueList <TvdbEpisode>(); } else { Episodes.Clear(); } Episodes.AddRange(fields.Episodes); } }
internal void SetEpisodes(List <TvdbEpisode> episodes) { foreach (KeyValuePair <TvdbLanguage, TvdbSeriesFields> kvp in _seriesTranslations) { if (kvp.Key.Abbriviation.Equals(Language.Abbriviation)) { kvp.Value.EpisodesLoaded = true; kvp.Value.Episodes.Clear(); kvp.Value.Episodes.AddRange(episodes); } } EpisodesLoaded = true; Episodes.Clear(); Episodes.AddRange(episodes); }
/// <summary> /// Update the info of the current series with the updated one /// </summary> /// <param name="series">TvdbSeries object</param> protected void UpdateSeriesInfo(TvdbSeries series) { Actors = series.Actors; AirsDayOfWeek = series.AirsDayOfWeek; AirsTime = series.AirsTime; BannerPath = series.BannerPath; Banners = series.Banners; ContentRating = series.ContentRating; FanartPath = series.FanartPath; FirstAired = series.FirstAired; Genre = series.Genre; Id = series.Id; ImdbId = series.ImdbId; Language = series.Language; LastUpdated = series.LastUpdated; Network = series.Network; Overview = series.Overview; Rating = series.Rating; Runtime = series.Runtime; SeriesName = series.SeriesName; Status = series.Status; TvDotComId = series.TvDotComId; Zap2itId = series.Zap2itId; if (series.EpisodesLoaded) {//check if the old series has any images loaded already -> if yes, save them if (EpisodesLoaded) { foreach (TvdbEpisode oe in Episodes) { foreach (TvdbEpisode ne in series.Episodes) { if (oe.SeasonNumber == ne.SeasonNumber && oe.EpisodeNumber == ne.EpisodeNumber) { if (oe.Banner != null && oe.Banner.IsLoaded) { ne.Banner = oe.Banner; } } } } } Episodes.Clear(); Episodes.AddRange(series.Episodes); } if (series.TvdbActorsLoaded) {//check if the old series has any images loaded already -> if yes, save them if (TvdbActorsLoaded) { foreach (TvdbActor oa in TvdbActors) { foreach (TvdbActor na in series.TvdbActors) { if (oa.Id == na.Id) { if (oa.ActorImage != null && oa.ActorImage.IsLoaded) { na.ActorImage = oa.ActorImage; } } } } } TvdbActors = series.TvdbActors; } if (series.BannersLoaded) { //check if the old series has any images loaded already -> if yes, save them if (BannersLoaded) { foreach (TvdbBanner ob in Banners) { foreach (TvdbBanner nb in series.Banners) { if (ob.BannerPath.Equals(nb.BannerPath))//I have to check for the banner path since the Update file doesn't include IDs { if (ob.BannerImage != null && ob.IsLoaded) { nb.BannerImage = ob.BannerImage; } if (ob.GetType() == typeof(TvdbFanartBanner)) { TvdbFanartBanner newFaBanner = (TvdbFanartBanner)nb; TvdbFanartBanner oldFaBanner = (TvdbFanartBanner)ob; if (oldFaBanner.ThumbImage != null && oldFaBanner.IsThumbLoaded) { newFaBanner.ThumbImage = oldFaBanner.ThumbImage; } if (oldFaBanner.ThumbImage != null && oldFaBanner.IsVignetteLoaded) { newFaBanner.VignetteImage = oldFaBanner.VignetteImage; } } } } } } Banners = series.Banners; } }