| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 | #nullable disable#pragma warning disable CS1591using System;using System.Collections.Generic;using MediaBrowser.Model.Entities;namespace MediaBrowser.Controller.Entities{    public interface IHasTrailers : IHasProviderIds    {        /// <summary>        /// Gets or sets the remote trailers.        /// </summary>        /// <value>The remote trailers.</value>        IReadOnlyList<MediaUrl> RemoteTrailers { get; set; }        /// <summary>        /// Gets or sets the local trailer ids.        /// </summary>        /// <value>The local trailer ids.</value>        IReadOnlyList<Guid> LocalTrailerIds { get; set; }        /// <summary>        /// Gets or sets the remote trailer ids.        /// </summary>        /// <value>The remote trailer ids.</value>        IReadOnlyList<Guid> RemoteTrailerIds { get; set; }        Guid Id { get; set; }    }    /// <summary>    /// Class providing extension methods for working with <see cref="IHasTrailers" />.    /// </summary>    public static class HasTrailerExtensions    {        /// <summary>        /// Gets the trailer count.        /// </summary>        /// <returns><see cref="IReadOnlyList{Guid}" />.</returns>        public static int GetTrailerCount(this IHasTrailers item)            => item.LocalTrailerIds.Count + item.RemoteTrailerIds.Count;        /// <summary>        /// Gets the trailer ids.        /// </summary>        /// <returns><see cref="IReadOnlyList{Guid}" />.</returns>        public static IReadOnlyList<Guid> GetTrailerIds(this IHasTrailers item)        {            var localIds = item.LocalTrailerIds;            var remoteIds = item.RemoteTrailerIds;            var all = new Guid[localIds.Count + remoteIds.Count];            var index = 0;            foreach (var id in localIds)            {                all[index++] = id;            }            foreach (var id in remoteIds)            {                all[index++] = id;            }            return all;        }        /// <summary>        /// Gets the trailers.        /// </summary>        /// <returns><see cref="IReadOnlyList{BaseItem}" />.</returns>        public static IReadOnlyList<BaseItem> GetTrailers(this IHasTrailers item)        {            var localIds = item.LocalTrailerIds;            var remoteIds = item.RemoteTrailerIds;            var libraryManager = BaseItem.LibraryManager;            var all = new BaseItem[localIds.Count + remoteIds.Count];            var index = 0;            foreach (var id in localIds)            {                all[index++] = libraryManager.GetItemById(id);            }            foreach (var id in remoteIds)            {                all[index++] = libraryManager.GetItemById(id);            }            return all;        }    }}
 |