| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 | using MediaBrowser.Controller.Entities;using MediaBrowser.Model.Channels;using MediaBrowser.Model.Querying;using MediaBrowser.Model.Users;using System;using System.Threading;using System.Threading.Tasks;namespace MediaBrowser.Controller.Channels{    public class ChannelFolderItem : Folder, IChannelItem    {        public string ExternalId { get; set; }        public string DataVersion { get; set; }        public ChannelItemType ChannelItemType { get; set; }        public ChannelFolderType ChannelFolderType { get; set; }        public string OriginalImageUrl { get; set; }        protected override bool GetBlockUnratedValue(UserPolicy config)        {            // Don't block.             return false;        }        public override bool SupportsLocalMetadata        {            get            {                return false;            }        }        public override bool IsSaveLocalMetadataEnabled()        {            return false;        }        protected override string CreateUserDataKey()        {            return ExternalId;        }        public override async Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)        {            try            {                // Don't blow up here because it could cause parent screens with other content to fail                return await ChannelManager.GetChannelItemsInternal(new ChannelItemQuery                {                    ChannelId = ChannelId,                    FolderId = Id.ToString("N"),                    Limit = query.Limit,                    StartIndex = query.StartIndex,                    UserId = query.User.Id.ToString("N"),                    SortBy = query.SortBy,                    SortOrder = query.SortOrder                }, new Progress<double>(), CancellationToken.None);            }            catch            {                // Already logged at lower levels                return new QueryResult<BaseItem>                {                };            }        }        protected override string GetInternalMetadataPath(string basePath)        {            return System.IO.Path.Combine(basePath, "channels", ChannelId, Id.ToString("N"));        }        public override bool CanDelete()        {            return false;        }        public override bool IsVisibleStandalone(User user)        {            return IsVisibleStandaloneInternal(user, false) && ChannelVideoItem.IsChannelVisible(this, user);        }    }}
 |