| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | using System;using System.Linq;using MediaBrowser.Model.Entities;using MediaBrowser.Model.Querying;namespace MediaBrowser.Controller.Dto{    public class DtoOptions    {        private static readonly ItemFields[] DefaultExcludedFields = new[]        {            ItemFields.SeasonUserData,            ItemFields.RefreshState        };        public ItemFields[] Fields { get; set; }        public ImageType[] ImageTypes { get; set; }        public int ImageTypeLimit { get; set; }        public bool EnableImages { get; set; }        public bool AddProgramRecordingInfo { get; set; }        public bool EnableUserData { get; set; }        public bool AddCurrentProgram { get; set; }        public DtoOptions()            : this(true)        {        }        private static readonly ImageType[] AllImageTypes = Enum.GetNames(typeof(ImageType))            .Select(i => (ImageType)Enum.Parse(typeof(ImageType), i, true))            .ToArray();        private static readonly ItemFields[] AllItemFields = Enum.GetNames(typeof(ItemFields))            .Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true))            .Except(DefaultExcludedFields)            .ToArray();        public bool ContainsField(ItemFields field)        {            return AllItemFields.Contains(field);        }        public DtoOptions(bool allFields)        {            ImageTypeLimit = int.MaxValue;            EnableImages = true;            EnableUserData = true;            AddCurrentProgram = true;            if (allFields)            {                Fields = AllItemFields;            }            else            {                Fields = new ItemFields[] { };            }            ImageTypes = AllImageTypes;        }        public int GetImageLimit(ImageType type)        {            if (EnableImages && ImageTypes.Contains(type))            {                return ImageTypeLimit;            }            return 0;        }    }}
 |