private async Task<bool> GetActorsForSeriesAsync(Series series) { var data = await _restConnection.MakeRequestAsync<SeriesActors, object>(Method.Get, ResponseType.Xml, PlexResources.TheTvdbBaseUrl, string.Format(PlexResources.TheTvdbSeriesActors, series.Id)); if (data != null && data.ResponseObject != null) { var actors = data.ResponseObject; foreach (var actor in actors.Actors.Where(a => !a.Image.StartsWith(PlexResources.TheTvdbActorImageRoot))) actor.Image = PlexResources.TheTvdbActorImageRoot + actor.Image; series.Actors = data.ResponseObject.Actors; return true; } return false; }
private static void MergeRoles(Video video, Series series) { if ((video.RolesComeFromTvdb || video.RolesComeFromTmdb) && video.Roles != null && video.Roles.Any()) return; if (series.Actors == null || !series.Actors.Any()) return; if (video.Roles == null) video.Roles = new ObservableCollectionEx<Role>(); var roles = new List<Role>(); var nextId = 0; foreach (var actor in series.Actors) { roles.Add(new Role { Id = nextId, RoleName = actor.Role, Tag = actor.Name, Thumb = actor.Image, ExternalIds = new ExternalIds { TvdbId = actor.Id } }); nextId++; } video.Roles.ClearAndAddRange(roles); video.RolesComeFromTvdb = true; }
internal static Series CloneSeries(Series series) { return JsonConvert.DeserializeObject<Series>(JsonConvert.SerializeObject(series)); }