UserView.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. using MediaBrowser.Controller.Playlists;
  2. using MediaBrowser.Controller.TV;
  3. using MediaBrowser.Model.Entities;
  4. using MediaBrowser.Model.Querying;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Runtime.Serialization;
  8. using System.Threading.Tasks;
  9. namespace MediaBrowser.Controller.Entities
  10. {
  11. public class UserView : Folder
  12. {
  13. public string ViewType { get; set; }
  14. public Guid ParentId { get; set; }
  15. public static ITVSeriesManager TVSeriesManager;
  16. public static IPlaylistManager PlaylistManager;
  17. public bool ContainsDynamicCategories(User user)
  18. {
  19. return true;
  20. }
  21. public override Task<QueryResult<BaseItem>> GetItems(InternalItemsQuery query)
  22. {
  23. var parent = this as Folder;
  24. if (ParentId != Guid.Empty)
  25. {
  26. parent = LibraryManager.GetItemById(ParentId) as Folder ?? parent;
  27. }
  28. return new UserViewBuilder(UserViewManager, LiveTvManager, ChannelManager, LibraryManager, Logger, UserDataManager, TVSeriesManager, CollectionManager, PlaylistManager)
  29. .GetUserItems(parent, this, ViewType, query);
  30. }
  31. public override IEnumerable<BaseItem> GetChildren(User user, bool includeLinkedChildren)
  32. {
  33. var result = GetItems(new InternalItemsQuery
  34. {
  35. User = user
  36. }).Result;
  37. return result.Items;
  38. }
  39. public override bool CanDelete()
  40. {
  41. return false;
  42. }
  43. public override bool IsSaveLocalMetadataEnabled()
  44. {
  45. return true;
  46. }
  47. public override IEnumerable<BaseItem> GetRecursiveChildren(User user, Func<BaseItem, bool> filter)
  48. {
  49. var result = GetItems(new InternalItemsQuery
  50. {
  51. User = user,
  52. Recursive = true,
  53. Filter = filter
  54. }).Result;
  55. return result.Items;
  56. }
  57. protected override IEnumerable<BaseItem> GetEligibleChildrenForRecursiveChildren(User user)
  58. {
  59. return GetChildren(user, false);
  60. }
  61. public static bool IsExcludedFromGrouping(Folder folder)
  62. {
  63. var standaloneTypes = new List<string>
  64. {
  65. CollectionType.Books,
  66. CollectionType.HomeVideos,
  67. CollectionType.Photos
  68. };
  69. var collectionFolder = folder as ICollectionFolder;
  70. if (collectionFolder == null)
  71. {
  72. return false;
  73. }
  74. return standaloneTypes.Contains(collectionFolder.CollectionType ?? string.Empty);
  75. }
  76. [IgnoreDataMember]
  77. public override bool SupportsPeople
  78. {
  79. get
  80. {
  81. return false;
  82. }
  83. }
  84. }
  85. }