aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-11-21 15:48:26 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-11-21 15:48:26 -0500
commit17bacee0890cb03a579f9469e435d922bbdfdd50 (patch)
tree7445da7bb2087c35075a37b6a1d8a71db480381a /MediaBrowser.Api
parentee1a746031f15bdfc5c5e38fab704f5fcb9b67ee (diff)
consolidate Artist & MusicArtist
Diffstat (limited to 'MediaBrowser.Api')
-rw-r--r--MediaBrowser.Api/BaseApiService.cs18
-rw-r--r--MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs15
-rw-r--r--MediaBrowser.Api/ItemRefreshService.cs14
-rw-r--r--MediaBrowser.Api/ItemUpdateService.cs9
-rw-r--r--MediaBrowser.Api/LibraryService.cs16
-rw-r--r--MediaBrowser.Api/SearchService.cs6
-rw-r--r--MediaBrowser.Api/UserLibrary/ArtistsService.cs21
7 files changed, 17 insertions, 82 deletions
diff --git a/MediaBrowser.Api/BaseApiService.cs b/MediaBrowser.Api/BaseApiService.cs
index d01e96a5ad..ee0721d5eb 100644
--- a/MediaBrowser.Api/BaseApiService.cs
+++ b/MediaBrowser.Api/BaseApiService.cs
@@ -92,7 +92,7 @@ namespace MediaBrowser.Api
private readonly char[] _dashReplaceChars = new[] { '?', '/' };
private const char SlugChar = '-';
- protected Artist GetArtist(string name, ILibraryManager libraryManager)
+ protected MusicArtist GetArtist(string name, ILibraryManager libraryManager)
{
return libraryManager.GetArtist(DeSlugArtistName(name, libraryManager));
}
@@ -147,21 +147,7 @@ namespace MediaBrowser.Api
return name;
}
- return libraryManager.RootFolder.GetRecursiveChildren()
- .OfType<Audio>()
- .SelectMany(i =>
- {
- var list = new List<string>();
-
- if (!string.IsNullOrEmpty(i.AlbumArtist))
- {
- list.Add(i.AlbumArtist);
- }
- list.AddRange(i.Artists);
-
- return list;
- })
- .Distinct(StringComparer.OrdinalIgnoreCase)
+ return libraryManager.GetAllArtists()
.FirstOrDefault(i =>
{
i = _dashReplaceChars.Aggregate(i, (current, c) => current.Replace(c, SlugChar));
diff --git a/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs b/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs
index ee313ea3bb..4e8864644e 100644
--- a/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs
+++ b/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs
@@ -194,20 +194,7 @@ namespace MediaBrowser.Api.DefaultTheme
.Select(i => _dtoService.GetBaseItemDto(i, fields, user))
.ToList();
- var artists = allItems.OfType<Audio>()
- .SelectMany(i =>
- {
- var list = new List<string>();
-
- if (!string.IsNullOrEmpty(i.AlbumArtist))
- {
- list.Add(i.AlbumArtist);
- }
- list.AddRange(i.Artists);
-
- return list;
- })
- .Distinct(StringComparer.OrdinalIgnoreCase)
+ var artists = _libraryManager.GetAllArtists(allItems)
.Randomize()
.Select(i =>
{
diff --git a/MediaBrowser.Api/ItemRefreshService.cs b/MediaBrowser.Api/ItemRefreshService.cs
index 260d938604..8fca3f338f 100644
--- a/MediaBrowser.Api/ItemRefreshService.cs
+++ b/MediaBrowser.Api/ItemRefreshService.cs
@@ -264,16 +264,14 @@ namespace MediaBrowser.Api
{
var item = _dtoService.GetItemByDtoId(request.Id);
- var folder = item as Folder;
-
try
{
await item.RefreshMetadata(CancellationToken.None, forceRefresh: request.Forced).ConfigureAwait(false);
- if (folder != null)
+ if (item.IsFolder)
{
// Collection folders don't validate their children so we'll have to simulate that here
- var collectionFolder = folder as CollectionFolder;
+ var collectionFolder = item as CollectionFolder;
if (collectionFolder != null)
{
@@ -281,6 +279,8 @@ namespace MediaBrowser.Api
}
else
{
+ var folder = (Folder)item;
+
await folder.ValidateChildren(new Progress<double>(), CancellationToken.None, request.Recursive, request.Forced).ConfigureAwait(false);
}
}
@@ -303,10 +303,10 @@ namespace MediaBrowser.Api
{
await child.RefreshMetadata(CancellationToken.None, forceRefresh: request.Forced).ConfigureAwait(false);
- var folder = child as Folder;
-
- if (folder != null)
+ if (child.IsFolder)
{
+ var folder = (Folder)child;
+
await folder.ValidateChildren(new Progress<double>(), CancellationToken.None, request.Recursive, request.Forced).ConfigureAwait(false);
}
}
diff --git a/MediaBrowser.Api/ItemUpdateService.cs b/MediaBrowser.Api/ItemUpdateService.cs
index cfbaf70c90..10149906c9 100644
--- a/MediaBrowser.Api/ItemUpdateService.cs
+++ b/MediaBrowser.Api/ItemUpdateService.cs
@@ -126,15 +126,6 @@ namespace MediaBrowser.Api
UpdateItem(request, item);
await _libraryManager.UpdateItem(item, ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false);
-
- var musicArtist = Artist.FindMusicArtist(item, _libraryManager);
-
- if (musicArtist != null)
- {
- UpdateItem(request, musicArtist);
-
- await _libraryManager.UpdateItem(musicArtist, ItemUpdateType.MetadataEdit, CancellationToken.None).ConfigureAwait(false);
- }
}
public void Post(UpdateStudio request)
diff --git a/MediaBrowser.Api/LibraryService.cs b/MediaBrowser.Api/LibraryService.cs
index 06b90b32cb..3863ef2094 100644
--- a/MediaBrowser.Api/LibraryService.cs
+++ b/MediaBrowser.Api/LibraryService.cs
@@ -367,7 +367,7 @@ namespace MediaBrowser.Api
BoxSetCount = boxsets.Count,
BookCount = books.Count,
- UniqueTypes = items.Select(i => i.GetType().Name).Distinct().ToList()
+ UniqueTypes = items.Select(i => i.GetClientTypeName()).Distinct().ToList()
};
var people = items.SelectMany(i => i.People)
@@ -390,19 +390,7 @@ namespace MediaBrowser.Api
people = request.UserId.HasValue ? FilterItems(people, request, request.UserId.Value).ToList() : people;
counts.PersonCount = people.Count;
- var artists = items.OfType<Audio>().SelectMany(i =>
- {
- var list = new List<string>();
-
- if (!string.IsNullOrEmpty(i.AlbumArtist))
- {
- list.Add(i.AlbumArtist);
- }
- list.AddRange(i.Artists);
-
- return list;
- })
- .Distinct(StringComparer.OrdinalIgnoreCase)
+ var artists = _libraryManager.GetAllArtists(items)
.Select(i =>
{
try
diff --git a/MediaBrowser.Api/SearchService.cs b/MediaBrowser.Api/SearchService.cs
index f87434e976..113df4e38c 100644
--- a/MediaBrowser.Api/SearchService.cs
+++ b/MediaBrowser.Api/SearchService.cs
@@ -144,7 +144,7 @@ namespace MediaBrowser.Api
IndexNumber = item.IndexNumber,
ParentIndexNumber = item.ParentIndexNumber,
ItemId = _dtoService.GetDtoId(item),
- Type = item.GetType().Name,
+ Type = item.GetClientTypeName(),
MediaType = item.MediaType,
MatchedTerm = hintInfo.MatchedTerm,
DisplayMediaType = item.DisplayMediaType,
@@ -187,9 +187,7 @@ namespace MediaBrowser.Api
result.SongCount = songs.Count;
- result.Artists = songs
- .SelectMany(i => i.Artists)
- .Distinct(StringComparer.OrdinalIgnoreCase)
+ result.Artists = _libraryManager.GetAllArtists(songs)
.ToArray();
result.AlbumArtist = songs.Select(i => i.AlbumArtist).FirstOrDefault(i => !string.IsNullOrEmpty(i));
diff --git a/MediaBrowser.Api/UserLibrary/ArtistsService.cs b/MediaBrowser.Api/UserLibrary/ArtistsService.cs
index ca626116a1..4dd3d744fa 100644
--- a/MediaBrowser.Api/UserLibrary/ArtistsService.cs
+++ b/MediaBrowser.Api/UserLibrary/ArtistsService.cs
@@ -43,7 +43,7 @@ namespace MediaBrowser.Api.UserLibrary
/// <summary>
/// Class ArtistsService
/// </summary>
- public class ArtistsService : BaseItemsByNameService<Artist>
+ public class ArtistsService : BaseItemsByNameService<MusicArtist>
{
/// <summary>
/// Initializes a new instance of the <see cref="ArtistsService" /> class.
@@ -109,24 +109,9 @@ namespace MediaBrowser.Api.UserLibrary
/// <param name="request">The request.</param>
/// <param name="items">The items.</param>
/// <returns>IEnumerable{Tuple{System.StringFunc{System.Int32}}}.</returns>
- protected override IEnumerable<Artist> GetAllItems(GetItemsByName request, IEnumerable<BaseItem> items)
+ protected override IEnumerable<MusicArtist> GetAllItems(GetItemsByName request, IEnumerable<BaseItem> items)
{
- var itemsList = items.OfType<Audio>().ToList();
-
- return itemsList
- .SelectMany(i =>
- {
- var list = new List<string>();
-
- if (!string.IsNullOrEmpty(i.AlbumArtist))
- {
- list.Add(i.AlbumArtist);
- }
- list.AddRange(i.Artists);
-
- return list;
- })
- .Distinct(StringComparer.OrdinalIgnoreCase)
+ return LibraryManager.GetAllArtists(items)
.Select(name => LibraryManager.GetArtist(name));
}
}