From 5a5b48feff3a0b0a660aaaa9bdfd04fd0fe711ed Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 23 Oct 2014 00:26:01 -0400 Subject: added new cabac value --- MediaBrowser.Controller/Connect/UserLinkResult.cs | 2 ++ .../Entities/CollectionFolder.cs | 3 +- MediaBrowser.Controller/Entities/Folder.cs | 38 ++++++++++++++++++++-- MediaBrowser.Controller/Library/ILibraryManager.cs | 30 +++++++---------- MediaBrowser.Controller/Library/ItemResolveArgs.cs | 32 ++++-------------- MediaBrowser.Controller/Library/TVUtils.cs | 2 +- .../Persistence/IItemRepository.cs | 11 +++++-- .../Resolvers/EntityResolutionHelper.cs | 2 +- MediaBrowser.Controller/Session/SessionInfo.cs | 6 ++++ 9 files changed, 75 insertions(+), 51 deletions(-) (limited to 'MediaBrowser.Controller') diff --git a/MediaBrowser.Controller/Connect/UserLinkResult.cs b/MediaBrowser.Controller/Connect/UserLinkResult.cs index 4ed57cfc2..16ebfc70a 100644 --- a/MediaBrowser.Controller/Connect/UserLinkResult.cs +++ b/MediaBrowser.Controller/Connect/UserLinkResult.cs @@ -4,5 +4,7 @@ namespace MediaBrowser.Controller.Connect public class UserLinkResult { public bool IsPending { get; set; } + public bool IsNewUserInvitation { get; set; } + public string GuestDisplayName { get; set; } } } diff --git a/MediaBrowser.Controller/Entities/CollectionFolder.cs b/MediaBrowser.Controller/Entities/CollectionFolder.cs index 4b90741c0..a10742f01 100644 --- a/MediaBrowser.Controller/Entities/CollectionFolder.cs +++ b/MediaBrowser.Controller/Entities/CollectionFolder.cs @@ -74,7 +74,8 @@ namespace MediaBrowser.Controller.Entities { FileInfo = new DirectoryInfo(path), Path = path, - Parent = Parent + Parent = Parent, + CollectionType = CollectionType }; // Gather child folder and files diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs index 4614f2f8a..4abdde8dd 100644 --- a/MediaBrowser.Controller/Entities/Folder.cs +++ b/MediaBrowser.Controller/Entities/Folder.cs @@ -736,7 +736,9 @@ namespace MediaBrowser.Controller.Entities /// IEnumerable{BaseItem}. protected virtual IEnumerable GetNonCachedChildren(IDirectoryService directoryService) { - return LibraryManager.ResolvePaths(GetFileSystemChildren(directoryService), directoryService, this); + var collectionType = LibraryManager.FindCollectionType(this); + + return LibraryManager.ResolvePaths(GetFileSystemChildren(directoryService), directoryService, this, collectionType); } /// @@ -745,7 +747,16 @@ namespace MediaBrowser.Controller.Entities /// IEnumerable{BaseItem}. protected IEnumerable GetCachedChildren() { - return ItemRepository.GetChildren(Id).Select(RetrieveChild).Where(i => i != null); + var childrenItems = ItemRepository.GetChildrenItems(Id).Select(RetrieveChild).Where(i => i != null); + + //var children = ItemRepository.GetChildren(Id).Select(RetrieveChild).Where(i => i != null).ToList(); + + //if (children.Count != childrenItems.Count) + //{ + // var b = this; + //} + + return childrenItems; } /// @@ -770,6 +781,29 @@ namespace MediaBrowser.Controller.Entities return item; } + private BaseItem RetrieveChild(BaseItem child) + { + var item = LibraryManager.GetMemoryItemById(child.Id); + + if (item != null) + { + if (item is IByReferenceItem) + { + return LibraryManager.GetOrAddByReferenceItem(item); + } + + item.Parent = this; + } + else + { + child.Parent = this; + LibraryManager.RegisterItem(child); + item = child; + } + + return item; + } + public virtual Task> GetItems(InternalItemsQuery query) { var user = query.User; diff --git a/MediaBrowser.Controller/Library/ILibraryManager.cs b/MediaBrowser.Controller/Library/ILibraryManager.cs index 951513962..f93564882 100644 --- a/MediaBrowser.Controller/Library/ILibraryManager.cs +++ b/MediaBrowser.Controller/Library/ILibraryManager.cs @@ -17,30 +17,14 @@ namespace MediaBrowser.Controller.Library /// public interface ILibraryManager { - /// - /// Resolves the item. - /// - /// The args. - /// BaseItem. - BaseItem ResolveItem(ItemResolveArgs args); - - /// - /// Resolves a path into a BaseItem - /// - /// The file info. - /// The directory service. - /// The parent. - /// BaseItem. - /// - BaseItem ResolvePath(FileSystemInfo fileInfo, IDirectoryService directoryService, Folder parent = null); - /// /// Resolves the path. /// /// The file information. /// The parent. + /// Type of the collection. /// BaseItem. - BaseItem ResolvePath(FileSystemInfo fileInfo, Folder parent = null); + BaseItem ResolvePath(FileSystemInfo fileInfo, Folder parent = null, string collectionType = null); /// /// Resolves a set of files into a list of BaseItem @@ -49,8 +33,9 @@ namespace MediaBrowser.Controller.Library /// The files. /// The directory service. /// The parent. + /// Type of the collection. /// List{``0}. - List ResolvePaths(IEnumerable files, IDirectoryService directoryService, Folder parent) + List ResolvePaths(IEnumerable files, IDirectoryService directoryService, Folder parent, string collectionType = null) where T : BaseItem; /// @@ -151,6 +136,13 @@ namespace MediaBrowser.Controller.Library /// BaseItem. BaseItem GetItemById(Guid id); + /// + /// Gets the memory item by identifier. + /// + /// The identifier. + /// BaseItem. + BaseItem GetMemoryItemById(Guid id); + /// /// Gets the intros. /// diff --git a/MediaBrowser.Controller/Library/ItemResolveArgs.cs b/MediaBrowser.Controller/Library/ItemResolveArgs.cs index c1fcdc9fe..d1692aabf 100644 --- a/MediaBrowser.Controller/Library/ItemResolveArgs.cs +++ b/MediaBrowser.Controller/Library/ItemResolveArgs.cs @@ -230,29 +230,18 @@ namespace MediaBrowser.Controller.Library } /// - /// Gets the name of the meta file by. + /// Determines whether [contains meta file by name] [the specified name]. /// /// The name. - /// FileSystemInfo. - /// - public FileSystemInfo GetMetaFileByName(string name) + /// true if [contains meta file by name] [the specified name]; otherwise, false. + public bool ContainsMetaFileByName(string name) { if (string.IsNullOrEmpty(name)) { throw new ArgumentNullException(); } - return GetFileSystemEntryByName(name); - } - - /// - /// Determines whether [contains meta file by name] [the specified name]. - /// - /// The name. - /// true if [contains meta file by name] [the specified name]; otherwise, false. - public bool ContainsMetaFileByName(string name) - { - return GetMetaFileByName(name) != null; + return GetFileSystemEntryByName(name) != null; } /// @@ -265,20 +254,13 @@ namespace MediaBrowser.Controller.Library return GetFileSystemEntryByName(name) != null; } - private bool _collectionTypeDiscovered; - private string _collectionType; - public string GetCollectionType() { - if (!_collectionTypeDiscovered) - { - _collectionType = Parent == null ? null : _libraryManager.FindCollectionType(Parent); - _collectionTypeDiscovered = true; - } - - return _collectionType; + return CollectionType; } + public string CollectionType { get; set; } + #region Equality Overrides /// diff --git a/MediaBrowser.Controller/Library/TVUtils.cs b/MediaBrowser.Controller/Library/TVUtils.cs index 34486182b..c85a8f335 100644 --- a/MediaBrowser.Controller/Library/TVUtils.cs +++ b/MediaBrowser.Controller/Library/TVUtils.cs @@ -284,7 +284,7 @@ namespace MediaBrowser.Controller.Library { if (IsSeasonFolder(child.FullName, directoryService, fileSystem)) { - logger.Debug("{0} is a series because of season folder {1}.", path, child.FullName); + //logger.Debug("{0} is a series because of season folder {1}.", path, child.FullName); return true; } diff --git a/MediaBrowser.Controller/Persistence/IItemRepository.cs b/MediaBrowser.Controller/Persistence/IItemRepository.cs index 02bca739f..edaa15c9d 100644 --- a/MediaBrowser.Controller/Persistence/IItemRepository.cs +++ b/MediaBrowser.Controller/Persistence/IItemRepository.cs @@ -33,7 +33,7 @@ namespace MediaBrowser.Controller.Persistence /// The cancellation token. /// Task. Task DeleteItem(Guid id, CancellationToken cancellationToken); - + /// /// Gets the critic reviews. /// @@ -41,6 +41,13 @@ namespace MediaBrowser.Controller.Persistence /// Task{IEnumerable{ItemReview}}. IEnumerable GetCriticReviews(Guid itemId); + /// + /// Gets the children items. + /// + /// The parent identifier. + /// IEnumerable<BaseItem>. + IEnumerable GetChildrenItems(Guid parentId); + /// /// Saves the critic reviews. /// @@ -101,7 +108,7 @@ namespace MediaBrowser.Controller.Persistence /// The type. /// IEnumerable{Guid}. IEnumerable GetItemsOfType(Type type); - + /// /// Saves the children. /// diff --git a/MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs b/MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs index 7d9c9d876..5b4007322 100644 --- a/MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs +++ b/MediaBrowser.Controller/Resolvers/EntityResolutionHelper.cs @@ -246,7 +246,7 @@ namespace MediaBrowser.Controller.Resolvers if (config.UseFileCreationTimeForDateAdded) { - item.DateModified = fileSystem.GetCreationTimeUtc(info); + item.DateCreated = fileSystem.GetCreationTimeUtc(info); } else { diff --git a/MediaBrowser.Controller/Session/SessionInfo.cs b/MediaBrowser.Controller/Session/SessionInfo.cs index 53a8d5a7c..d8a2464d6 100644 --- a/MediaBrowser.Controller/Session/SessionInfo.cs +++ b/MediaBrowser.Controller/Session/SessionInfo.cs @@ -80,6 +80,12 @@ namespace MediaBrowser.Controller.Session /// The last activity date. public DateTime LastActivityDate { get; set; } + /// + /// Gets or sets the last playback check in. + /// + /// The last playback check in. + public DateTime LastPlaybackCheckIn { get; set; } + /// /// Gets or sets the name of the device. /// -- cgit v1.2.3