From e677a57bf1cedc55214b0e457778311b8f1ea5ac Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Mon, 17 Jun 2013 16:35:43 -0400 Subject: switch to flat file storage --- MediaBrowser.Controller/Dto/DtoBuilder.cs | 22 +++---- MediaBrowser.Controller/Entities/BaseItem.cs | 43 +++++-------- MediaBrowser.Controller/Entities/Folder.cs | 65 +++++++++++++++---- MediaBrowser.Controller/Entities/Movies/Movie.cs | 16 +++-- MediaBrowser.Controller/Entities/Video.cs | 12 ++-- MediaBrowser.Controller/Library/ILibraryManager.cs | 21 +----- .../MediaBrowser.Controller.csproj | 1 + .../Persistence/IItemRepository.cs | 74 +++++++++++++--------- .../Persistence/IUserDataRepository.cs | 2 +- MediaBrowser.Controller/Reflection/TypeMapper.cs | 47 ++++++++++++++ 10 files changed, 190 insertions(+), 113 deletions(-) create mode 100644 MediaBrowser.Controller/Reflection/TypeMapper.cs (limited to 'MediaBrowser.Controller') diff --git a/MediaBrowser.Controller/Dto/DtoBuilder.cs b/MediaBrowser.Controller/Dto/DtoBuilder.cs index 7fd188acb5..1e0e5286fa 100644 --- a/MediaBrowser.Controller/Dto/DtoBuilder.cs +++ b/MediaBrowser.Controller/Dto/DtoBuilder.cs @@ -73,11 +73,6 @@ namespace MediaBrowser.Controller.Dto tasks.Add(AttachPeople(dto, item)); } - if (user != null) - { - tasks.Add(AttachUserSpecificInfo(dto, item, user, fields)); - } - if (fields.Contains(ItemFields.PrimaryImageAspectRatio)) { try @@ -91,6 +86,11 @@ namespace MediaBrowser.Controller.Dto } } + if (user != null) + { + AttachUserSpecificInfo(dto, item, user, fields); + } + AttachBasicFields(dto, item, fields); // Make sure all the tasks we kicked off have completed. @@ -109,7 +109,7 @@ namespace MediaBrowser.Controller.Dto /// The item. /// The user. /// The fields. - private async Task AttachUserSpecificInfo(BaseItemDto dto, BaseItem item, User user, List fields) + private void AttachUserSpecificInfo(BaseItemDto dto, BaseItem item, User user, List fields) { if (item.IsFolder && fields.Contains(ItemFields.DisplayPreferencesId)) { @@ -127,13 +127,13 @@ namespace MediaBrowser.Controller.Dto // Skip sorting since all we want is a count dto.ChildCount = folder.GetChildren(user).Count(); - await SetSpecialCounts(folder, user, dto, _userDataRepository).ConfigureAwait(false); + SetSpecialCounts(folder, user, dto, _userDataRepository); } } if (addUserData) { - var userData = await _userDataRepository.GetUserData(user.Id, item.GetUserDataKey()).ConfigureAwait(false); + var userData = _userDataRepository.GetUserData(user.Id, item.GetUserDataKey()); dto.UserData = GetUserItemDataDto(userData); @@ -529,7 +529,7 @@ namespace MediaBrowser.Controller.Dto /// The dto. /// The user data repository. /// Task. - private static async Task SetSpecialCounts(Folder folder, User user, BaseItemDto dto, IUserDataRepository userDataRepository) + private static void SetSpecialCounts(Folder folder, User user, BaseItemDto dto, IUserDataRepository userDataRepository) { var rcentlyAddedItemCount = 0; var recursiveItemCount = 0; @@ -540,7 +540,7 @@ namespace MediaBrowser.Controller.Dto // Loop through each recursive child foreach (var child in folder.GetRecursiveChildren(user).Where(i => !i.IsFolder).ToList()) { - var userdata = await userDataRepository.GetUserData(user.Id, child.GetUserDataKey()).ConfigureAwait(false); + var userdata = userDataRepository.GetUserData(user.Id, child.GetUserDataKey()); recursiveItemCount++; @@ -767,7 +767,7 @@ namespace MediaBrowser.Controller.Dto { if (data == null) { - throw new ArgumentNullException(); + throw new ArgumentNullException("data"); } return new UserItemDataDto diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs index 6ae465aa7e..2850d7092a 100644 --- a/MediaBrowser.Controller/Entities/BaseItem.cs +++ b/MediaBrowser.Controller/Entities/BaseItem.cs @@ -273,7 +273,7 @@ namespace MediaBrowser.Controller.Entities { return Guid.Empty; } - + try { if (!ResolveArgs.IsDirectory) @@ -681,11 +681,6 @@ namespace MediaBrowser.Controller.Entities /// List{Video}. private IEnumerable LoadLocalTrailers() { - if (LocationType != LocationType.FileSystem) - { - return new List(); - } - ItemResolveArgs resolveArgs; try @@ -737,7 +732,7 @@ namespace MediaBrowser.Controller.Entities return LibraryManager.ResolvePaths(files, null).Select(video => { // Try to retrieve it from the db. If we don't find it, use the resolved version - var dbItem = LibraryManager.RetrieveItem(video.Id) as Trailer; + var dbItem = LibraryManager.RetrieveItem(video.Id, typeof(Trailer)) as Trailer; if (dbItem != null) { @@ -756,11 +751,6 @@ namespace MediaBrowser.Controller.Entities /// List{Audio.Audio}. private IEnumerable LoadThemeSongs() { - if (LocationType != LocationType.FileSystem) - { - return new List(); - } - ItemResolveArgs resolveArgs; try @@ -803,7 +793,7 @@ namespace MediaBrowser.Controller.Entities return LibraryManager.ResolvePaths(files, null).Select(audio => { // Try to retrieve it from the db. If we don't find it, use the resolved version - var dbItem = LibraryManager.RetrieveItem(audio.Id) as Audio.Audio; + var dbItem = LibraryManager.RetrieveItem(audio.Id, typeof(Audio.Audio)) as Audio.Audio; if (dbItem != null) { @@ -821,11 +811,6 @@ namespace MediaBrowser.Controller.Entities /// List{Video}. private IEnumerable