Exemplo n.º 1
0
        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;
        }
Exemplo n.º 3
0
 internal static Series CloneSeries(Series series)
 {
     return JsonConvert.DeserializeObject<Series>(JsonConvert.SerializeObject(series));
 }