diff options
Diffstat (limited to 'MediaBrowser.ServerApplication')
| -rw-r--r-- | MediaBrowser.ServerApplication/ApplicationHost.cs | 15 | ||||
| -rw-r--r-- | MediaBrowser.ServerApplication/LibraryViewer.cs | 76 | ||||
| -rw-r--r-- | MediaBrowser.ServerApplication/MainStartup.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.ServerApplication/ServerNotifyIcon.cs | 8 |
4 files changed, 58 insertions, 43 deletions
diff --git a/MediaBrowser.ServerApplication/ApplicationHost.cs b/MediaBrowser.ServerApplication/ApplicationHost.cs index 51dccddff..e97c21204 100644 --- a/MediaBrowser.ServerApplication/ApplicationHost.cs +++ b/MediaBrowser.ServerApplication/ApplicationHost.cs @@ -38,6 +38,7 @@ using MediaBrowser.Controller.Sorting; using MediaBrowser.Controller.Subtitles; using MediaBrowser.Controller.Sync; using MediaBrowser.Controller.Themes; +using MediaBrowser.Controller.TV; using MediaBrowser.Dlna; using MediaBrowser.Dlna.ConnectionManager; using MediaBrowser.Dlna.ContentDirectory; @@ -79,6 +80,7 @@ using MediaBrowser.Server.Implementations.ServerManager; using MediaBrowser.Server.Implementations.Session; using MediaBrowser.Server.Implementations.Sync; using MediaBrowser.Server.Implementations.Themes; +using MediaBrowser.Server.Implementations.TV; using MediaBrowser.ServerApplication.FFMpeg; using MediaBrowser.ServerApplication.IO; using MediaBrowser.ServerApplication.Native; @@ -213,10 +215,11 @@ namespace MediaBrowser.ServerApplication private ISubtitleManager SubtitleManager { get; set; } private IChapterManager ChapterManager { get; set; } - private IUserViewManager UserViewManager { get; set; } + internal IUserViewManager UserViewManager { get; set; } private IAuthenticationRepository AuthenticationRepository { get; set; } private ISyncRepository SyncRepository { get; set; } + private ITVSeriesManager TVSeriesManager { get; set; } /// <summary> /// Initializes a new instance of the <see cref="ApplicationHost" /> class. @@ -466,6 +469,9 @@ namespace MediaBrowser.ServerApplication ChannelManager = new ChannelManager(UserManager, DtoService, LibraryManager, Logger, ServerConfigurationManager, FileSystemManager, UserDataManager, JsonSerializer, LocalizationManager); RegisterSingleInstance(ChannelManager); + TVSeriesManager = new TVSeriesManager(UserManager, UserDataManager, LibraryManager); + RegisterSingleInstance(TVSeriesManager); + var appThemeManager = new AppThemeManager(ApplicationPaths, FileSystemManager, JsonSerializer, Logger); RegisterSingleInstance<IAppThemeManager>(appThemeManager); @@ -487,7 +493,7 @@ namespace MediaBrowser.ServerApplication UserViewManager = new UserViewManager(LibraryManager, LocalizationManager, FileSystemManager, UserManager, ChannelManager, LiveTvManager, ApplicationPaths, playlistManager); RegisterSingleInstance(UserViewManager); - var contentDirectory = new ContentDirectory(dlnaManager, UserDataManager, ImageProcessor, LibraryManager, ServerConfigurationManager, UserManager, LogManager.GetLogger("UpnpContentDirectory"), HttpClient, UserViewManager, ChannelManager); + var contentDirectory = new ContentDirectory(dlnaManager, UserDataManager, ImageProcessor, LibraryManager, ServerConfigurationManager, UserManager, LogManager.GetLogger("UpnpContentDirectory"), HttpClient); RegisterSingleInstance<IContentDirectory>(contentDirectory); NotificationManager = new NotificationManager(LogManager, UserManager, ServerConfigurationManager); @@ -682,9 +688,10 @@ namespace MediaBrowser.ServerApplication Folder.UserManager = UserManager; BaseItem.FileSystem = FileSystemManager; BaseItem.UserDataManager = UserDataManager; - ChannelVideoItem.ChannelManager = ChannelManager; + BaseItem.ChannelManager = ChannelManager; BaseItem.LiveTvManager = LiveTvManager; - UserView.UserViewManager = UserViewManager; + Folder.UserViewManager = UserViewManager; + UserView.TVSeriesManager = TVSeriesManager; } /// <summary> diff --git a/MediaBrowser.ServerApplication/LibraryViewer.cs b/MediaBrowser.ServerApplication/LibraryViewer.cs index 26cf243da..e89cbd0c0 100644 --- a/MediaBrowser.ServerApplication/LibraryViewer.cs +++ b/MediaBrowser.ServerApplication/LibraryViewer.cs @@ -1,6 +1,9 @@ -using MediaBrowser.Controller.Entities; +using System.Threading; +using System.Threading.Tasks; +using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Persistence; +using MediaBrowser.Model.Library; using MediaBrowser.Model.Querying; using MediaBrowser.Model.Serialization; using System; @@ -16,17 +19,17 @@ namespace MediaBrowser.ServerApplication { private readonly IJsonSerializer _jsonSerializer; private readonly ILibraryManager _libraryManager; - private readonly IItemRepository _itemRepository; + private readonly IUserViewManager _userViewManager; private User _currentUser; - public LibraryViewer(IJsonSerializer jsonSerializer, IUserManager userManager, ILibraryManager libraryManager, IItemRepository itemRepo) + public LibraryViewer(IJsonSerializer jsonSerializer, IUserManager userManager, ILibraryManager libraryManager, IUserViewManager userViewManager) { InitializeComponent(); _jsonSerializer = jsonSerializer; _libraryManager = libraryManager; - _itemRepository = itemRepo; + _userViewManager = userViewManager; foreach (var user in userManager.Users) selectUser.Items.Add(user); @@ -72,23 +75,50 @@ namespace MediaBrowser.ServerApplication LoadTree(); } + private IEnumerable<BaseItem> GetItems(Folder parent, User user) + { + if (parent == null) + { + var task = _userViewManager.GetUserViews(new UserViewQuery + { + UserId = user.Id.ToString("N") + + }, CancellationToken.None); + + task.RunSynchronously(); + + return task.Result; + } + else + { + var task = parent.GetUserItems(new UserItemsQuery + { + User = user, + SortBy = new[] { ItemSortBy.SortName } + + }); + + task.RunSynchronously(); + + return task.Result.Items; + } + } + private void LoadTree() { treeView1.Nodes.Clear(); var isPhysical = _currentUser.Name == "Physical"; - IEnumerable<BaseItem> children = isPhysical ? new[] { _libraryManager.RootFolder } : _libraryManager.RootFolder.GetChildren(_currentUser, true); - children = OrderByName(children, _currentUser); + IEnumerable<BaseItem> children = isPhysical ? new[] { _libraryManager.RootFolder } : GetItems(null, _currentUser); - foreach (Folder folder in children) + foreach (var folder in children.OfType<Folder>()) { - var currentFolder = folder; var node = new TreeNode { Tag = currentFolder }; - var subChildren = isPhysical ? currentFolder.Children : currentFolder.GetChildren(_currentUser, true); - subChildren = OrderByName(subChildren, _currentUser); + var subChildren = isPhysical ? currentFolder.Children.OrderBy(i => i.SortName) : GetItems(currentFolder, _currentUser); + AddChildren(node, subChildren, _currentUser, isPhysical); node.Text = currentFolder.Name + " (" + node.Nodes.Count + ")"; @@ -111,9 +141,9 @@ namespace MediaBrowser.ServerApplication var subFolder = item as Folder; if (subFolder != null) { - var subChildren = isPhysical ? subFolder.Children : subFolder.GetChildren(_currentUser, true); + var subChildren = isPhysical ? subFolder.Children.OrderBy(i => i.SortName) : GetItems(subFolder, _currentUser); - AddChildren(node, OrderBy(subChildren, user, ItemSortBy.SortName), user, isPhysical); + AddChildren(node, subChildren, user, isPhysical); node.Text = item.Name + " (" + node.Nodes.Count + ")"; } else @@ -125,28 +155,6 @@ namespace MediaBrowser.ServerApplication } /// <summary> - /// Orders the name of the by. - /// </summary> - /// <param name="items">The items.</param> - /// <param name="user">The user.</param> - /// <returns>IEnumerable{BaseItem}.</returns> - private IEnumerable<BaseItem> OrderByName(IEnumerable<BaseItem> items, User user) - { - return OrderBy(items, user, ItemSortBy.SortName); - } - - /// <summary> - /// Orders the name of the by. - /// </summary> - /// <param name="items">The items.</param> - /// <param name="user">The user.</param> - /// <returns>IEnumerable{BaseItem}.</returns> - private IEnumerable<BaseItem> OrderBy(IEnumerable<BaseItem> items, User user, string order) - { - return _libraryManager.Sort(items, user, new[] { order }, SortOrder.Ascending); - } - - /// <summary> /// The INDEN t_ STRING /// </summary> private const string INDENT_STRING = " "; diff --git a/MediaBrowser.ServerApplication/MainStartup.cs b/MediaBrowser.ServerApplication/MainStartup.cs index 81c04060a..6e6377a64 100644 --- a/MediaBrowser.ServerApplication/MainStartup.cs +++ b/MediaBrowser.ServerApplication/MainStartup.cs @@ -249,7 +249,7 @@ namespace MediaBrowser.ServerApplication { //Application.EnableVisualStyles(); //Application.SetCompatibleTextRenderingDefault(false); - _serverNotifyIcon = new ServerNotifyIcon(_appHost.LogManager, _appHost, _appHost.ServerConfigurationManager, _appHost.UserManager, _appHost.LibraryManager, _appHost.JsonSerializer, _appHost.ItemRepository, _appHost.LocalizationManager); + _serverNotifyIcon = new ServerNotifyIcon(_appHost.LogManager, _appHost, _appHost.ServerConfigurationManager, _appHost.UserManager, _appHost.LibraryManager, _appHost.JsonSerializer, _appHost.LocalizationManager, _appHost.UserViewManager); Application.Run(); } diff --git a/MediaBrowser.ServerApplication/ServerNotifyIcon.cs b/MediaBrowser.ServerApplication/ServerNotifyIcon.cs index 47a4be8e3..8740b707b 100644 --- a/MediaBrowser.ServerApplication/ServerNotifyIcon.cs +++ b/MediaBrowser.ServerApplication/ServerNotifyIcon.cs @@ -39,7 +39,7 @@ namespace MediaBrowser.ServerApplication private readonly IUserManager _userManager; private readonly ILibraryManager _libraryManager; private readonly IJsonSerializer _jsonSerializer; - private readonly IItemRepository _itemRepository; + private readonly IUserViewManager _userViewManager; private readonly ILocalizationManager _localization; private LogForm _logForm; @@ -61,11 +61,11 @@ namespace MediaBrowser.ServerApplication IServerConfigurationManager configurationManager, IUserManager userManager, ILibraryManager libraryManager, IJsonSerializer jsonSerializer, - IItemRepository itemRepo, ILocalizationManager localization) + ILocalizationManager localization, IUserViewManager userViewManager) { _logger = logManager.GetLogger("MainWindow"); - _itemRepository = itemRepo; _localization = localization; + _userViewManager = userViewManager; _appHost = appHost; _logManager = logManager; _configurationManager = configurationManager; @@ -318,7 +318,7 @@ namespace MediaBrowser.ServerApplication void cmdLibraryExplorer_Click(object sender, EventArgs e) { - new LibraryViewer(_jsonSerializer, _userManager, _libraryManager, _itemRepository).Show(); + new LibraryViewer(_jsonSerializer, _userManager, _libraryManager, _userViewManager).Show(); } void cmdRestart_Click(object sender, EventArgs e) |
