| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 | using System;using System.Collections.Generic;using System.Globalization;using System.Linq;using System.Runtime.Serialization;namespace MediaBrowser.Controller.Entities{    /// <summary>    /// Class Year    /// </summary>    public class Year : BaseItem, IItemByName    {        /// <summary>        /// Gets the user data key.        /// </summary>        /// <returns>System.String.</returns>        protected override string CreateUserDataKey()        {            return "Year-" + Name;        }        /// <summary>        /// Returns the folder containing the item.        /// If the item is a folder, it returns the folder itself        /// </summary>        /// <value>The containing folder path.</value>        [IgnoreDataMember]        public override string ContainingFolderPath        {            get            {                return Path;            }        }        public override bool CanDelete()        {            return false;        }        /// <summary>        /// Gets a value indicating whether this instance is owned item.        /// </summary>        /// <value><c>true</c> if this instance is owned item; otherwise, <c>false</c>.</value>        [IgnoreDataMember]        public override bool IsOwnedItem        {            get            {                return false;            }        }        public override bool IsSaveLocalMetadataEnabled()        {            return true;        }        public IEnumerable<BaseItem> GetTaggedItems(IEnumerable<BaseItem> inputItems)        {            int year;            var usCulture = new CultureInfo("en-US");            if (!int.TryParse(Name, NumberStyles.Integer, usCulture, out year))            {                return inputItems;            }            return inputItems.Where(i => i.ProductionYear.HasValue && i.ProductionYear.Value == year);        }        public int? GetYearValue()        {            int i;            if (int.TryParse(Name, NumberStyles.Integer, CultureInfo.InvariantCulture, out i))            {                return i;            }            return null;        }        public Func<BaseItem, bool> GetItemFilter()        {            var val = GetYearValue();            return i => i.ProductionYear.HasValue && val.HasValue && i.ProductionYear.Value == val.Value;        }        [IgnoreDataMember]        public override bool SupportsPeople        {            get            {                return false;            }        }    }}
 |