From d7d4f62737b9ba822c638d906eac42cbac96d013 Mon Sep 17 00:00:00 2001 From: Daniel Underwood Date: Mon, 28 May 2018 03:49:34 -0400 Subject: [PATCH] Changed: Force album refresh when artist refresh manually triggered (#374) * Force album refresh when artist refresh manually triggered * Refresh albums on single artist refresh --- .../MusicTests/RefreshAlbumServiceFixture.cs | 4 ++-- src/NzbDrone.Core/Music/RefreshAlbumService.cs | 6 +++--- src/NzbDrone.Core/Music/RefreshArtistService.cs | 11 ++++++----- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/NzbDrone.Core.Test/MusicTests/RefreshAlbumServiceFixture.cs b/src/NzbDrone.Core.Test/MusicTests/RefreshAlbumServiceFixture.cs index b0213a4ef..32e74c7c1 100644 --- a/src/NzbDrone.Core.Test/MusicTests/RefreshAlbumServiceFixture.cs +++ b/src/NzbDrone.Core.Test/MusicTests/RefreshAlbumServiceFixture.cs @@ -59,7 +59,7 @@ namespace NzbDrone.Core.Test.MusicTests [Test] public void should_log_error_if_musicbrainz_id_not_found() { - Subject.RefreshAlbumInfo(_albums); + Subject.RefreshAlbumInfo(_albums, false); Mocker.GetMock() .Verify(v => v.UpdateMany(It.IsAny>()), Times.Never()); @@ -75,7 +75,7 @@ namespace NzbDrone.Core.Test.MusicTests GivenNewAlbumInfo(newAlbumInfo); - Subject.RefreshAlbumInfo(_albums); + Subject.RefreshAlbumInfo(_albums, false); Mocker.GetMock() .Verify(v => v.UpdateMany(It.Is>(s => s.First().ForeignAlbumId == newAlbumInfo.ForeignAlbumId))); diff --git a/src/NzbDrone.Core/Music/RefreshAlbumService.cs b/src/NzbDrone.Core/Music/RefreshAlbumService.cs index d73f102bd..3f4456fd1 100644 --- a/src/NzbDrone.Core/Music/RefreshAlbumService.cs +++ b/src/NzbDrone.Core/Music/RefreshAlbumService.cs @@ -20,7 +20,7 @@ namespace NzbDrone.Core.Music public interface IRefreshAlbumService { void RefreshAlbumInfo(Album album); - void RefreshAlbumInfo(List albums); + void RefreshAlbumInfo(List albums, bool forceAlbumRefresh); } public class RefreshAlbumService : IRefreshAlbumService, IExecute @@ -50,11 +50,11 @@ namespace NzbDrone.Core.Music _logger = logger; } - public void RefreshAlbumInfo(List albums) + public void RefreshAlbumInfo(List albums, bool forceAlbumRefresh) { foreach (var album in albums) { - if (_checkIfAlbumShouldBeRefreshed.ShouldRefresh(album)) + if (forceAlbumRefresh || _checkIfAlbumShouldBeRefreshed.ShouldRefresh(album)) { RefreshAlbumInfo(album); } diff --git a/src/NzbDrone.Core/Music/RefreshArtistService.cs b/src/NzbDrone.Core/Music/RefreshArtistService.cs index 6ab261d61..3cf7ef3fd 100644 --- a/src/NzbDrone.Core/Music/RefreshArtistService.cs +++ b/src/NzbDrone.Core/Music/RefreshArtistService.cs @@ -52,7 +52,7 @@ namespace NzbDrone.Core.Music _logger = logger; } - private void RefreshArtistInfo(Artist artist) + private void RefreshArtistInfo(Artist artist, bool forceAlbumRefresh) { _logger.ProgressInfo("Updating Info for {0}", artist.Name); @@ -131,7 +131,7 @@ namespace NzbDrone.Core.Music _addAlbumService.AddAlbums(newAlbumsList); - _refreshAlbumService.RefreshAlbumInfo(updateAlbumsList); + _refreshAlbumService.RefreshAlbumInfo(updateAlbumsList, forceAlbumRefresh); _albumService.DeleteMany(existingAlbums); @@ -160,7 +160,7 @@ namespace NzbDrone.Core.Music if (message.ArtistId.HasValue) { var artist = _artistService.GetArtist(message.ArtistId.Value); - RefreshArtistInfo(artist); + RefreshArtistInfo(artist, true); } else { @@ -168,11 +168,12 @@ namespace NzbDrone.Core.Music foreach (var artist in allArtists) { - if (message.Trigger == CommandTrigger.Manual || _checkIfArtistShouldBeRefreshed.ShouldRefresh(artist)) + var manualTrigger = message.Trigger == CommandTrigger.Manual; + if (manualTrigger || _checkIfArtistShouldBeRefreshed.ShouldRefresh(artist)) { try { - RefreshArtistInfo(artist); + RefreshArtistInfo(artist, manualTrigger); } catch (Exception e) {