From 803e8b4a2eb5fcf1b5a3679fe551d541620d4743 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 11 Sep 2013 13:54:59 -0400 Subject: improved performance of item counts --- .../Library/Validators/MusicGenresValidator.cs | 25 ++++++++-------------- 1 file changed, 9 insertions(+), 16 deletions(-) (limited to 'MediaBrowser.Server.Implementations/Library/Validators/MusicGenresValidator.cs') diff --git a/MediaBrowser.Server.Implementations/Library/Validators/MusicGenresValidator.cs b/MediaBrowser.Server.Implementations/Library/Validators/MusicGenresValidator.cs index 53e4435277..9063027ec9 100644 --- a/MediaBrowser.Server.Implementations/Library/Validators/MusicGenresValidator.cs +++ b/MediaBrowser.Server.Implementations/Library/Validators/MusicGenresValidator.cs @@ -52,10 +52,10 @@ namespace MediaBrowser.Server.Implementations.Library.Validators var allLibraryItems = allItems; - var masterDictionary = new Dictionary>>(StringComparer.OrdinalIgnoreCase); + var masterDictionary = new Dictionary>>(StringComparer.OrdinalIgnoreCase); // Populate counts of items - SetItemCounts(null, allLibraryItems, masterDictionary); + //SetItemCounts(null, allLibraryItems, masterDictionary); progress.Report(2); @@ -75,10 +75,10 @@ namespace MediaBrowser.Server.Implementations.Library.Validators progress.Report(10); - var names = masterDictionary.Keys.ToList(); + var count = masterDictionary.Count; numComplete = 0; - foreach (var name in names) + foreach (var name in masterDictionary.Keys) { try { @@ -91,7 +91,7 @@ namespace MediaBrowser.Server.Implementations.Library.Validators numComplete++; double percent = numComplete; - percent /= names.Count; + percent /= count; percent *= 90; progress.Report(percent + 10); @@ -100,26 +100,19 @@ namespace MediaBrowser.Server.Implementations.Library.Validators progress.Report(100); } - private async Task UpdateItemByNameCounts(string name, CancellationToken cancellationToken, Dictionary> counts) + private async Task UpdateItemByNameCounts(string name, CancellationToken cancellationToken, Dictionary> counts) { var itemByName = await _libraryManager.GetMusicGenre(name, cancellationToken, true, true).ConfigureAwait(false); - foreach (var libraryId in counts.Keys.ToList()) + foreach (var libraryId in counts.Keys) { var itemCounts = CountHelpers.GetCounts(counts[libraryId]); - if (libraryId == Guid.Empty) - { - itemByName.ItemCounts = itemCounts; - } - else - { - itemByName.UserItemCounts[libraryId] = itemCounts; - } + itemByName.UserItemCounts[libraryId] = itemCounts; } } - private void SetItemCounts(Guid? userId, IEnumerable allItems, Dictionary>> masterDictionary) + private void SetItemCounts(Guid userId, IEnumerable allItems, Dictionary>> masterDictionary) { foreach (var media in allItems) { -- cgit v1.2.3