using MediaBrowser.Controller.Providers; using System; using System.Collections.Generic; using System.Linq; namespace MediaBrowser.Controller.Entities { /// /// This is the full Person object that can be retrieved with all of it's data. /// public class Person : BaseItem, IItemByName, IHasLookupInfo { /// /// Gets or sets the place of birth. /// /// The place of birth. public string PlaceOfBirth { get; set; } /// /// Gets the user data key. /// /// System.String. protected override string CreateUserDataKey() { return "Person-" + Name; } public PersonLookupInfo GetLookupInfo() { return GetItemLookupInfo(); } /// /// Returns the folder containing the item. /// If the item is a folder, it returns the folder itself /// /// The containing folder path. public override string ContainingFolderPath { get { return Path; } } /// /// Gets a value indicating whether this instance is owned item. /// /// true if this instance is owned item; otherwise, false. public override bool IsOwnedItem { get { return false; } } public IEnumerable GetTaggedItems(IEnumerable inputItems) { return inputItems.Where(i => i.People.Any(p => string.Equals(p.Name, Name, StringComparison.OrdinalIgnoreCase))); } } /// /// This is the small Person stub that is attached to BaseItems /// public class PersonInfo { /// /// Gets or sets the name. /// /// The name. public string Name { get; set; } /// /// Gets or sets the role. /// /// The role. public string Role { get; set; } /// /// Gets or sets the type. /// /// The type. public string Type { get; set; } /// /// Gets or sets the sort order - ascending /// /// The sort order. public int? SortOrder { get; set; } /// /// Returns a that represents this instance. /// /// A that represents this instance. public override string ToString() { return Name; } public bool IsType(string type) { return string.Equals(Type, type, StringComparison.OrdinalIgnoreCase) || string.Equals(Role, type, StringComparison.OrdinalIgnoreCase); } } }