aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/UserLibrary
diff options
context:
space:
mode:
authorEric Reed <ebr@mediabrowser3.com>2013-06-18 15:28:18 -0400
committerEric Reed <ebr@mediabrowser3.com>2013-06-18 15:28:18 -0400
commitcc728d87c2507d5392686df6e18c7ad2ba5c45bd (patch)
tree1eee3719a4cd8abd78f422900620e62042161766 /MediaBrowser.Api/UserLibrary
parent90155278f8b4465a4b5eaf140c5e6e4905cc8dcf (diff)
parent5d8ed2c16fdeaec1344964778e98cadfaa9571b4 (diff)
Merge branch 'master' of https://github.com/MediaBrowser/MediaBrowser
Diffstat (limited to 'MediaBrowser.Api/UserLibrary')
-rw-r--r--MediaBrowser.Api/UserLibrary/ArtistsService.cs9
-rw-r--r--MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs17
-rw-r--r--MediaBrowser.Api/UserLibrary/GenresService.cs6
-rw-r--r--MediaBrowser.Api/UserLibrary/ItemByNameUserDataService.cs8
-rw-r--r--MediaBrowser.Api/UserLibrary/ItemsService.cs31
-rw-r--r--MediaBrowser.Api/UserLibrary/MusicGenresService.cs6
-rw-r--r--MediaBrowser.Api/UserLibrary/PersonsService.cs9
-rw-r--r--MediaBrowser.Api/UserLibrary/StudiosService.cs6
-rw-r--r--MediaBrowser.Api/UserLibrary/UserLibraryService.cs20
-rw-r--r--MediaBrowser.Api/UserLibrary/YearsService.cs6
10 files changed, 54 insertions, 64 deletions
diff --git a/MediaBrowser.Api/UserLibrary/ArtistsService.cs b/MediaBrowser.Api/UserLibrary/ArtistsService.cs
index fc981d0ded..7a027a0527 100644
--- a/MediaBrowser.Api/UserLibrary/ArtistsService.cs
+++ b/MediaBrowser.Api/UserLibrary/ArtistsService.cs
@@ -69,13 +69,14 @@ namespace MediaBrowser.Api.UserLibrary
public class ArtistsService : BaseItemsByNameService<Artist>
{
/// <summary>
- /// Initializes a new instance of the <see cref="ArtistsService"/> class.
+ /// Initializes a new instance of the <see cref="ArtistsService" /> class.
/// </summary>
/// <param name="userManager">The user manager.</param>
/// <param name="libraryManager">The library manager.</param>
/// <param name="userDataRepository">The user data repository.</param>
- public ArtistsService(IUserManager userManager, ILibraryManager libraryManager, IUserDataRepository userDataRepository)
- : base(userManager, libraryManager, userDataRepository)
+ /// <param name="itemRepo">The item repo.</param>
+ public ArtistsService(IUserManager userManager, ILibraryManager libraryManager, IUserDataRepository userDataRepository, IItemRepository itemRepo)
+ : base(userManager, libraryManager, userDataRepository, itemRepo)
{
}
@@ -103,7 +104,7 @@ namespace MediaBrowser.Api.UserLibrary
// Get everything
var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true));
- var builder = new DtoBuilder(Logger, LibraryManager, UserDataRepository);
+ var builder = new DtoBuilder(Logger, LibraryManager, UserDataRepository, ItemRepository);
if (request.UserId.HasValue)
{
diff --git a/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs b/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs
index 26b0aa1921..b93d339ced 100644
--- a/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs
+++ b/MediaBrowser.Api/UserLibrary/BaseItemsByNameService.cs
@@ -29,6 +29,7 @@ namespace MediaBrowser.Api.UserLibrary
/// </summary>
protected readonly ILibraryManager LibraryManager;
protected readonly IUserDataRepository UserDataRepository;
+ protected readonly IItemRepository ItemRepository;
/// <summary>
/// Initializes a new instance of the <see cref="BaseItemsByNameService{TItemType}" /> class.
@@ -36,11 +37,12 @@ namespace MediaBrowser.Api.UserLibrary
/// <param name="userManager">The user manager.</param>
/// <param name="libraryManager">The library manager.</param>
/// <param name="userDataRepository">The user data repository.</param>
- protected BaseItemsByNameService(IUserManager userManager, ILibraryManager libraryManager, IUserDataRepository userDataRepository)
+ protected BaseItemsByNameService(IUserManager userManager, ILibraryManager libraryManager, IUserDataRepository userDataRepository, IItemRepository itemRepository)
{
UserManager = userManager;
LibraryManager = libraryManager;
UserDataRepository = userDataRepository;
+ ItemRepository = itemRepository;
}
/// <summary>
@@ -265,8 +267,8 @@ namespace MediaBrowser.Api.UserLibrary
return null;
}
- var dto = user == null ? await new DtoBuilder(Logger, LibraryManager, UserDataRepository).GetBaseItemDto(item, fields).ConfigureAwait(false) :
- await new DtoBuilder(Logger, LibraryManager, UserDataRepository).GetBaseItemDto(item, fields, user).ConfigureAwait(false);
+ var dto = user == null ? await new DtoBuilder(Logger, LibraryManager, UserDataRepository, ItemRepository).GetBaseItemDto(item, fields).ConfigureAwait(false) :
+ await new DtoBuilder(Logger, LibraryManager, UserDataRepository, ItemRepository).GetBaseItemDto(item, fields, user).ConfigureAwait(false);
if (fields.Contains(ItemFields.ItemCounts))
{
@@ -337,7 +339,7 @@ namespace MediaBrowser.Api.UserLibrary
public string Name;
public BaseItem Item;
- private Task<UserItemData> _userData;
+ private UserItemData _userData;
public List<BaseItem> Items
{
@@ -353,12 +355,7 @@ namespace MediaBrowser.Api.UserLibrary
{
var item = await GetItem().ConfigureAwait(false);
- if (_userData == null)
- {
- _userData = repo.GetUserData(userId, item.GetUserDataKey());
- }
-
- return await _userData.ConfigureAwait(false);
+ return _userData ?? (_userData = repo.GetUserData(userId, item.GetUserDataKey()));
}
public IbnStub(string name, Func<IEnumerable<BaseItem>> childItems, Func<string,Task<T>> item)
diff --git a/MediaBrowser.Api/UserLibrary/GenresService.cs b/MediaBrowser.Api/UserLibrary/GenresService.cs
index d44394c4fd..7c49501abd 100644
--- a/MediaBrowser.Api/UserLibrary/GenresService.cs
+++ b/MediaBrowser.Api/UserLibrary/GenresService.cs
@@ -69,8 +69,8 @@ namespace MediaBrowser.Api.UserLibrary
/// </summary>
public class GenresService : BaseItemsByNameService<Genre>
{
- public GenresService(IUserManager userManager, ILibraryManager libraryManager, IUserDataRepository userDataRepository)
- : base(userManager, libraryManager, userDataRepository)
+ public GenresService(IUserManager userManager, ILibraryManager libraryManager, IUserDataRepository userDataRepository, IItemRepository itemRepo)
+ : base(userManager, libraryManager, userDataRepository, itemRepo)
{
}
@@ -98,7 +98,7 @@ namespace MediaBrowser.Api.UserLibrary
// Get everything
var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true));
- var builder = new DtoBuilder(Logger, LibraryManager, UserDataRepository);
+ var builder = new DtoBuilder(Logger, LibraryManager, UserDataRepository, ItemRepository);
if (request.UserId.HasValue)
{
diff --git a/MediaBrowser.Api/UserLibrary/ItemByNameUserDataService.cs b/MediaBrowser.Api/UserLibrary/ItemByNameUserDataService.cs
index 42b76e29d9..eaa65dc2db 100644
--- a/MediaBrowser.Api/UserLibrary/ItemByNameUserDataService.cs
+++ b/MediaBrowser.Api/UserLibrary/ItemByNameUserDataService.cs
@@ -240,9 +240,9 @@ namespace MediaBrowser.Api.UserLibrary
}
var key = item.GetUserDataKey();
-
+
// Get the user data for this item
- var data = await UserDataRepository.GetUserData(userId, key).ConfigureAwait(false);
+ var data = UserDataRepository.GetUserData(userId, key);
// Set favorite status
data.IsFavorite = isFavorite;
@@ -288,9 +288,9 @@ namespace MediaBrowser.Api.UserLibrary
}
var key = item.GetUserDataKey();
-
+
// Get the user data for this item
- var data = await UserDataRepository.GetUserData(userId, key).ConfigureAwait(false);
+ var data = UserDataRepository.GetUserData(userId, key);
data.Likes = likes;
diff --git a/MediaBrowser.Api/UserLibrary/ItemsService.cs b/MediaBrowser.Api/UserLibrary/ItemsService.cs
index a06ac68b72..b96b94823e 100644
--- a/MediaBrowser.Api/UserLibrary/ItemsService.cs
+++ b/MediaBrowser.Api/UserLibrary/ItemsService.cs
@@ -204,6 +204,8 @@ namespace MediaBrowser.Api.UserLibrary
private readonly ILibrarySearchEngine _searchEngine;
private readonly ILocalizationManager _localization;
+ private readonly IItemRepository _itemRepo;
+
/// <summary>
/// Initializes a new instance of the <see cref="ItemsService" /> class.
/// </summary>
@@ -211,13 +213,14 @@ namespace MediaBrowser.Api.UserLibrary
/// <param name="libraryManager">The library manager.</param>
/// <param name="searchEngine">The search engine.</param>
/// <param name="userDataRepository">The user data repository.</param>
- public ItemsService(IUserManager userManager, ILibraryManager libraryManager, ILibrarySearchEngine searchEngine, IUserDataRepository userDataRepository, ILocalizationManager localization)
+ public ItemsService(IUserManager userManager, ILibraryManager libraryManager, ILibrarySearchEngine searchEngine, IUserDataRepository userDataRepository, ILocalizationManager localization, IItemRepository itemRepo)
{
_userManager = userManager;
_libraryManager = libraryManager;
_searchEngine = searchEngine;
_userDataRepository = userDataRepository;
_localization = localization;
+ _itemRepo = itemRepo;
}
/// <summary>
@@ -266,7 +269,7 @@ namespace MediaBrowser.Api.UserLibrary
var fields = request.GetItemFields().ToList();
- var dtoBuilder = new DtoBuilder(Logger, _libraryManager, _userDataRepository);
+ var dtoBuilder = new DtoBuilder(Logger, _libraryManager, _userDataRepository, _itemRepo);
var returnItems = await Task.WhenAll(pagedItems.Select(i => dtoBuilder.GetBaseItemDto(i, fields, user))).ConfigureAwait(false);
@@ -335,7 +338,7 @@ namespace MediaBrowser.Api.UserLibrary
case ItemFilter.Likes:
return items.Where(item =>
{
- var userdata = repository.GetUserData(user.Id, item.GetUserDataKey()).Result;
+ var userdata = repository.GetUserData(user.Id, item.GetUserDataKey());
return userdata != null && userdata.Likes.HasValue && userdata.Likes.Value;
});
@@ -343,7 +346,7 @@ namespace MediaBrowser.Api.UserLibrary
case ItemFilter.Dislikes:
return items.Where(item =>
{
- var userdata = repository.GetUserData(user.Id, item.GetUserDataKey()).Result;
+ var userdata = repository.GetUserData(user.Id, item.GetUserDataKey());
return userdata != null && userdata.Likes.HasValue && !userdata.Likes.Value;
});
@@ -351,7 +354,7 @@ namespace MediaBrowser.Api.UserLibrary
case ItemFilter.IsFavorite:
return items.Where(item =>
{
- var userdata = repository.GetUserData(user.Id, item.GetUserDataKey()).Result;
+ var userdata = repository.GetUserData(user.Id, item.GetUserDataKey());
return userdata != null && userdata.IsFavorite;
});
@@ -362,7 +365,7 @@ namespace MediaBrowser.Api.UserLibrary
case ItemFilter.IsResumable:
return items.Where(item =>
{
- var userdata = repository.GetUserData(user.Id, item.GetUserDataKey()).Result;
+ var userdata = repository.GetUserData(user.Id, item.GetUserDataKey());
return userdata != null && userdata.PlaybackPositionTicks > 0;
});
@@ -370,7 +373,7 @@ namespace MediaBrowser.Api.UserLibrary
case ItemFilter.IsPlayed:
return items.Where(item =>
{
- var userdata = repository.GetUserData(user.Id, item.GetUserDataKey()).Result;
+ var userdata = repository.GetUserData(user.Id, item.GetUserDataKey());
return userdata != null && userdata.Played;
});
@@ -378,7 +381,7 @@ namespace MediaBrowser.Api.UserLibrary
case ItemFilter.IsUnplayed:
return items.Where(item =>
{
- var userdata = repository.GetUserData(user.Id, item.GetUserDataKey()).Result;
+ var userdata = repository.GetUserData(user.Id, item.GetUserDataKey());
return userdata == null || !userdata.Played;
});
@@ -663,18 +666,6 @@ namespace MediaBrowser.Api.UserLibrary
return item.ScreenshotImagePaths != null && item.ScreenshotImagePaths.Count > 0;
}
- if (imageType == ImageType.Chapter)
- {
- var video = item as Video;
-
- if (video != null)
- {
- return video.Chapters != null && video.Chapters.Any(c => !string.IsNullOrEmpty(c.ImagePath));
- }
-
- return false;
- }
-
return item.HasImage(imageType);
}
diff --git a/MediaBrowser.Api/UserLibrary/MusicGenresService.cs b/MediaBrowser.Api/UserLibrary/MusicGenresService.cs
index 0b482aaf45..a4c60e2d98 100644
--- a/MediaBrowser.Api/UserLibrary/MusicGenresService.cs
+++ b/MediaBrowser.Api/UserLibrary/MusicGenresService.cs
@@ -63,8 +63,8 @@ namespace MediaBrowser.Api.UserLibrary
public class MusicGenresService : BaseItemsByNameService<MusicGenre>
{
- public MusicGenresService(IUserManager userManager, ILibraryManager libraryManager, IUserDataRepository userDataRepository)
- : base(userManager, libraryManager, userDataRepository)
+ public MusicGenresService(IUserManager userManager, ILibraryManager libraryManager, IUserDataRepository userDataRepository, IItemRepository itemRepo)
+ : base(userManager, libraryManager, userDataRepository, itemRepo)
{
}
@@ -92,7 +92,7 @@ namespace MediaBrowser.Api.UserLibrary
// Get everything
var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true));
- var builder = new DtoBuilder(Logger, LibraryManager, UserDataRepository);
+ var builder = new DtoBuilder(Logger, LibraryManager, UserDataRepository, ItemRepository);
if (request.UserId.HasValue)
{
diff --git a/MediaBrowser.Api/UserLibrary/PersonsService.cs b/MediaBrowser.Api/UserLibrary/PersonsService.cs
index 9d0aa88c9d..06aa3111da 100644
--- a/MediaBrowser.Api/UserLibrary/PersonsService.cs
+++ b/MediaBrowser.Api/UserLibrary/PersonsService.cs
@@ -80,13 +80,14 @@ namespace MediaBrowser.Api.UserLibrary
public class PersonsService : BaseItemsByNameService<Person>
{
/// <summary>
- /// Initializes a new instance of the <see cref="PersonsService"/> class.
+ /// Initializes a new instance of the <see cref="PersonsService" /> class.
/// </summary>
/// <param name="userManager">The user manager.</param>
/// <param name="libraryManager">The library manager.</param>
/// <param name="userDataRepository">The user data repository.</param>
- public PersonsService(IUserManager userManager, ILibraryManager libraryManager, IUserDataRepository userDataRepository)
- : base(userManager, libraryManager, userDataRepository)
+ /// <param name="itemRepo">The item repo.</param>
+ public PersonsService(IUserManager userManager, ILibraryManager libraryManager, IUserDataRepository userDataRepository, IItemRepository itemRepo)
+ : base(userManager, libraryManager, userDataRepository, itemRepo)
{
}
@@ -114,7 +115,7 @@ namespace MediaBrowser.Api.UserLibrary
// Get everything
var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true));
- var builder = new DtoBuilder(Logger, LibraryManager, UserDataRepository);
+ var builder = new DtoBuilder(Logger, LibraryManager, UserDataRepository, ItemRepository);
if (request.UserId.HasValue)
{
diff --git a/MediaBrowser.Api/UserLibrary/StudiosService.cs b/MediaBrowser.Api/UserLibrary/StudiosService.cs
index 7b9539a409..687e237bdf 100644
--- a/MediaBrowser.Api/UserLibrary/StudiosService.cs
+++ b/MediaBrowser.Api/UserLibrary/StudiosService.cs
@@ -70,8 +70,8 @@ namespace MediaBrowser.Api.UserLibrary
/// </summary>
public class StudiosService : BaseItemsByNameService<Studio>
{
- public StudiosService(IUserManager userManager, ILibraryManager libraryManager, IUserDataRepository userDataRepository)
- : base(userManager, libraryManager, userDataRepository)
+ public StudiosService(IUserManager userManager, ILibraryManager libraryManager, IUserDataRepository userDataRepository, IItemRepository itemRepo)
+ : base(userManager, libraryManager, userDataRepository, itemRepo)
{
}
@@ -99,7 +99,7 @@ namespace MediaBrowser.Api.UserLibrary
// Get everything
var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true));
- var builder = new DtoBuilder(Logger, LibraryManager, UserDataRepository);
+ var builder = new DtoBuilder(Logger, LibraryManager, UserDataRepository, ItemRepository);
if (request.UserId.HasValue)
{
diff --git a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs
index 8c1f3b500b..197ba1f4a9 100644
--- a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs
+++ b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs
@@ -397,9 +397,9 @@ namespace MediaBrowser.Api.UserLibrary
var movie = (Movie)item;
- var dtoBuilder = new DtoBuilder(Logger, _libraryManager, _userDataRepository);
+ var dtoBuilder = new DtoBuilder(Logger, _libraryManager, _userDataRepository, _itemRepo);
- var items = _itemRepo.GetItems(movie.SpecialFeatureIds).OrderBy(i => i.SortName).Select(i => dtoBuilder.GetBaseItemDto(i, fields, user)).Select(t => t.Result).ToList();
+ var items = _itemRepo.RetrieveItems<Video>(movie.SpecialFeatureIds).OrderBy(i => i.SortName).Select(i => dtoBuilder.GetBaseItemDto(i, fields, user)).Select(t => t.Result).ToList();
return ToOptimizedResult(items);
}
@@ -418,9 +418,9 @@ namespace MediaBrowser.Api.UserLibrary
// Get everything
var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)).ToList();
- var dtoBuilder = new DtoBuilder(Logger, _libraryManager, _userDataRepository);
+ var dtoBuilder = new DtoBuilder(Logger, _libraryManager, _userDataRepository, _itemRepo);
- var items = _itemRepo.GetItems(item.LocalTrailerIds).OrderBy(i => i.SortName).Select(i => dtoBuilder.GetBaseItemDto(i, fields, user)).Select(t => t.Result).ToList();
+ var items = _itemRepo.RetrieveItems<Trailer>(item.LocalTrailerIds).OrderBy(i => i.SortName).Select(i => dtoBuilder.GetBaseItemDto(i, fields, user)).Select(t => t.Result).ToList();
return ToOptimizedResult(items);
}
@@ -439,7 +439,7 @@ namespace MediaBrowser.Api.UserLibrary
// Get everything
var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)).ToList();
- var dtoBuilder = new DtoBuilder(Logger, _libraryManager, _userDataRepository);
+ var dtoBuilder = new DtoBuilder(Logger, _libraryManager, _userDataRepository, _itemRepo);
var result = dtoBuilder.GetBaseItemDto(item, fields, user).Result;
@@ -460,7 +460,7 @@ namespace MediaBrowser.Api.UserLibrary
// Get everything
var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true)).ToList();
- var dtoBuilder = new DtoBuilder(Logger, _libraryManager, _userDataRepository);
+ var dtoBuilder = new DtoBuilder(Logger, _libraryManager, _userDataRepository, _itemRepo);
var result = dtoBuilder.GetBaseItemDto(item, fields, user).Result;
@@ -496,7 +496,7 @@ namespace MediaBrowser.Api.UserLibrary
// Get the user data for this item
var key = item.GetUserDataKey();
- var data = _userDataRepository.GetUserData(user.Id, key).Result;
+ var data = _userDataRepository.GetUserData(user.Id, key);
// Set favorite status
data.IsFavorite = true;
@@ -519,7 +519,7 @@ namespace MediaBrowser.Api.UserLibrary
var key = item.GetUserDataKey();
// Get the user data for this item
- var data = _userDataRepository.GetUserData(user.Id, key).Result;
+ var data = _userDataRepository.GetUserData(user.Id, key);
// Set favorite status
data.IsFavorite = false;
@@ -542,7 +542,7 @@ namespace MediaBrowser.Api.UserLibrary
var key = item.GetUserDataKey();
// Get the user data for this item
- var data = _userDataRepository.GetUserData(user.Id, key).Result;
+ var data = _userDataRepository.GetUserData(user.Id, key);
data.Rating = null;
@@ -564,7 +564,7 @@ namespace MediaBrowser.Api.UserLibrary
var key = item.GetUserDataKey();
// Get the user data for this item
- var data = _userDataRepository.GetUserData(user.Id, key).Result;
+ var data = _userDataRepository.GetUserData(user.Id, key);
data.Likes = request.Likes;
diff --git a/MediaBrowser.Api/UserLibrary/YearsService.cs b/MediaBrowser.Api/UserLibrary/YearsService.cs
index 16697e4009..bfd493240c 100644
--- a/MediaBrowser.Api/UserLibrary/YearsService.cs
+++ b/MediaBrowser.Api/UserLibrary/YearsService.cs
@@ -54,8 +54,8 @@ namespace MediaBrowser.Api.UserLibrary
/// </summary>
private static readonly CultureInfo UsCulture = new CultureInfo("en-US");
- public YearsService(IUserManager userManager, ILibraryManager libraryManager, IUserDataRepository userDataRepository)
- : base(userManager, libraryManager, userDataRepository)
+ public YearsService(IUserManager userManager, ILibraryManager libraryManager, IUserDataRepository userDataRepository, IItemRepository itemRepo)
+ : base(userManager, libraryManager, userDataRepository, itemRepo)
{
}
@@ -83,7 +83,7 @@ namespace MediaBrowser.Api.UserLibrary
// Get everything
var fields = Enum.GetNames(typeof(ItemFields)).Select(i => (ItemFields)Enum.Parse(typeof(ItemFields), i, true));
- var builder = new DtoBuilder(Logger, LibraryManager, UserDataRepository);
+ var builder = new DtoBuilder(Logger, LibraryManager, UserDataRepository, ItemRepository);
if (request.UserId.HasValue)
{