diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index 988d0a534a..9461b01e31 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -2606,6 +2606,20 @@ namespace MediaBrowser.Controller.Entities .OrderBy(i => i.SortName); } + /// + /// Get all extras with specific types that are associated with this item. + /// + /// The types of extras to retrieve. + /// An enumerable containing the extras. + public IEnumerable GetExtras(IReadOnlyCollection extraTypes) + { + return ExtraIds + .Select(LibraryManager.GetItemById) + .Where(i => i != null) + .Where(i => i.ExtraType.HasValue && extraTypes.Contains(i.ExtraType.Value)) + .OrderBy(i => i.SortName); + } + public virtual long GetRunTimeTicksForPlayState() { return RunTimeTicks ?? 0;