aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers/Music/AlbumMetadataService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Providers/Music/AlbumMetadataService.cs')
-rw-r--r--MediaBrowser.Providers/Music/AlbumMetadataService.cs61
1 files changed, 32 insertions, 29 deletions
diff --git a/MediaBrowser.Providers/Music/AlbumMetadataService.cs b/MediaBrowser.Providers/Music/AlbumMetadataService.cs
index 0a3359156..96020791e 100644
--- a/MediaBrowser.Providers/Music/AlbumMetadataService.cs
+++ b/MediaBrowser.Providers/Music/AlbumMetadataService.cs
@@ -46,46 +46,49 @@ namespace MediaBrowser.Providers.Music
{
var updateType = base.BeforeSave(item);
- var songs = item.RecursiveChildren.OfType<Audio>().ToList();
-
- if (!item.LockedFields.Contains(MetadataFields.Genres))
+ var songs = item.RecursiveChildren.OfType<Audio>().ToList();
+
+ if (!item.IsLocked)
{
- var currentList = item.Genres.ToList();
+ if (!item.LockedFields.Contains(MetadataFields.Genres))
+ {
+ var currentList = item.Genres.ToList();
- item.Genres = songs.SelectMany(i => i.Genres)
- .Distinct(StringComparer.OrdinalIgnoreCase)
- .ToList();
+ item.Genres = songs.SelectMany(i => i.Genres)
+ .Distinct(StringComparer.OrdinalIgnoreCase)
+ .ToList();
- if (currentList.Count != item.Genres.Count || !currentList.OrderBy(i => i).SequenceEqual(item.Genres.OrderBy(i => i), StringComparer.OrdinalIgnoreCase))
- {
- updateType = updateType | ItemUpdateType.MetadataDownload;
+ if (currentList.Count != item.Genres.Count || !currentList.OrderBy(i => i).SequenceEqual(item.Genres.OrderBy(i => i), StringComparer.OrdinalIgnoreCase))
+ {
+ updateType = updateType | ItemUpdateType.MetadataDownload;
+ }
}
- }
- if (!item.LockedFields.Contains(MetadataFields.Studios))
- {
- var currentList = item.Studios.ToList();
+ if (!item.LockedFields.Contains(MetadataFields.Studios))
+ {
+ var currentList = item.Studios.ToList();
- item.Studios = songs.SelectMany(i => i.Studios)
- .Distinct(StringComparer.OrdinalIgnoreCase)
- .ToList();
+ item.Studios = songs.SelectMany(i => i.Studios)
+ .Distinct(StringComparer.OrdinalIgnoreCase)
+ .ToList();
- if (currentList.Count != item.Studios.Count || !currentList.OrderBy(i => i).SequenceEqual(item.Studios.OrderBy(i => i), StringComparer.OrdinalIgnoreCase))
- {
- updateType = updateType | ItemUpdateType.MetadataDownload;
+ if (currentList.Count != item.Studios.Count || !currentList.OrderBy(i => i).SequenceEqual(item.Studios.OrderBy(i => i), StringComparer.OrdinalIgnoreCase))
+ {
+ updateType = updateType | ItemUpdateType.MetadataDownload;
+ }
}
- }
-
- if (!item.LockedFields.Contains(MetadataFields.Name))
- {
- var name = songs.Select(i => i.Album).FirstOrDefault(i => !string.IsNullOrEmpty(i));
- if (!string.IsNullOrEmpty(name))
+ if (!item.LockedFields.Contains(MetadataFields.Name))
{
- if (!string.Equals(item.Name, name, StringComparison.Ordinal))
+ var name = songs.Select(i => i.Album).FirstOrDefault(i => !string.IsNullOrEmpty(i));
+
+ if (!string.IsNullOrEmpty(name))
{
- item.Name = name;
- updateType = updateType | ItemUpdateType.MetadataDownload;
+ if (!string.Equals(item.Name, name, StringComparison.Ordinal))
+ {
+ item.Name = name;
+ updateType = updateType | ItemUpdateType.MetadataDownload;
+ }
}
}
}