Studio.cs 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Runtime.Serialization;
  5. using MediaBrowser.Common.Extensions;
  6. namespace MediaBrowser.Controller.Entities
  7. {
  8. /// <summary>
  9. /// Class Studio
  10. /// </summary>
  11. public class Studio : BaseItem, IItemByName
  12. {
  13. public override List<string> GetUserDataKeys()
  14. {
  15. var list = base.GetUserDataKeys();
  16. list.Insert(0, GetType().Name + "-" + (Name ?? string.Empty).RemoveDiacritics());
  17. return list;
  18. }
  19. public override string PresentationUniqueKey
  20. {
  21. get
  22. {
  23. return GetUserDataKeys()[0];
  24. }
  25. }
  26. /// <summary>
  27. /// Returns the folder containing the item.
  28. /// If the item is a folder, it returns the folder itself
  29. /// </summary>
  30. /// <value>The containing folder path.</value>
  31. [IgnoreDataMember]
  32. public override string ContainingFolderPath
  33. {
  34. get
  35. {
  36. return Path;
  37. }
  38. }
  39. public override bool CanDelete()
  40. {
  41. return false;
  42. }
  43. public override bool IsSaveLocalMetadataEnabled()
  44. {
  45. return true;
  46. }
  47. /// <summary>
  48. /// Gets a value indicating whether this instance is owned item.
  49. /// </summary>
  50. /// <value><c>true</c> if this instance is owned item; otherwise, <c>false</c>.</value>
  51. [IgnoreDataMember]
  52. public override bool IsOwnedItem
  53. {
  54. get
  55. {
  56. return false;
  57. }
  58. }
  59. public IEnumerable<BaseItem> GetTaggedItems(IEnumerable<BaseItem> inputItems)
  60. {
  61. return inputItems.Where(GetItemFilter());
  62. }
  63. public Func<BaseItem, bool> GetItemFilter()
  64. {
  65. return i => i.Studios.Contains(Name, StringComparer.OrdinalIgnoreCase);
  66. }
  67. public IEnumerable<BaseItem> GetTaggedItems(InternalItemsQuery query)
  68. {
  69. query.Studios = new[] { Name };
  70. return LibraryManager.GetItemList(query);
  71. }
  72. [IgnoreDataMember]
  73. public override bool SupportsPeople
  74. {
  75. get
  76. {
  77. return false;
  78. }
  79. }
  80. }
  81. }