| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 | 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;        }    }}
 |