protected override async Task <bool> RefreshedOwnedItems(MetadataRefreshOptions options, List <FileSystemMetadata> fileSystemChildren, CancellationToken cancellationToken) { var hasChanges = await base.RefreshedOwnedItems(options, fileSystemChildren, cancellationToken).ConfigureAwait(false); if (IsStacked) { var tasks = AdditionalParts .Select(i => RefreshMetadataForOwnedVideo(options, true, i, cancellationToken)); await Task.WhenAll(tasks).ConfigureAwait(false); } // Must have a parent to have additional parts or alternate versions // In other words, it must be part of the Parent/Child tree // The additional parts won't have additional parts themselves if (LocationType == LocationType.FileSystem && GetParent() != null) { if (!IsStacked) { RefreshLinkedAlternateVersions(); var tasks = LocalAlternateVersions .Select(i => RefreshMetadataForOwnedVideo(options, false, i, cancellationToken)); await Task.WhenAll(tasks).ConfigureAwait(false); } } return(hasChanges); }
public IEnumerable <Guid> GetLocalAlternateVersionIds() { return(LocalAlternateVersions.Select(i => LibraryManager.GetNewItemId(i, typeof(Video)))); }