Example #1
0
        /// <summary>
        /// Gets the linked children.
        /// </summary>
        /// <returns>IEnumerable{BaseItem}.</returns>
        public IEnumerable <Video> GetAlternateVersions()
        {
            var filesWithinSameDirectory = LocalAlternateVersionIds
                                           .Select(i => LibraryManager.GetItemById(i))
                                           .Where(i => i != null)
                                           .OfType <Video>();

            return(filesWithinSameDirectory.Concat(GetLinkedAlternateVersions())
                   .OrderBy(i => i.SortName));
        }
Example #2
0
        public override async Task UpdateToRepository(ItemUpdateType updateReason, CancellationToken cancellationToken)
        {
            await base.UpdateToRepository(updateReason, cancellationToken).ConfigureAwait(false);

            foreach (var item in LocalAlternateVersionIds.Select(i => LibraryManager.GetItemById(i)))
            {
                item.ImageInfos      = ImageInfos;
                item.Overview        = Overview;
                item.ProductionYear  = ProductionYear;
                item.PremiereDate    = PremiereDate;
                item.CommunityRating = CommunityRating;
                item.OfficialRating  = OfficialRating;
                item.Genres          = Genres;
                item.ProviderIds     = ProviderIds;

                await item.UpdateToRepository(ItemUpdateType.MetadataDownload, cancellationToken).ConfigureAwait(false);
            }
        }
Example #3
0
        private async Task <bool> RefreshAlternateVersionsWithinSameDirectory(MetadataRefreshOptions options, IEnumerable <FileSystemInfo> fileSystemChildren, CancellationToken cancellationToken)
        {
            var newItems = HasLocalAlternateVersions ?
                           LoadAlternateVersionsWithinSameDirectory(fileSystemChildren, options.DirectoryService).ToList() :
                           new List <Video>();

            var newItemIds = newItems.Select(i => i.Id).ToList();

            var itemsChanged = !LocalAlternateVersionIds.SequenceEqual(newItemIds);

            var tasks = newItems.Select(i => RefreshAlternateVersion(options, i, cancellationToken));

            await Task.WhenAll(tasks).ConfigureAwait(false);

            LocalAlternateVersionIds = newItemIds;

            return(itemsChanged);
        }