From a1c2986af894b5bb9b3a057ff10009c3346b1c3f Mon Sep 17 00:00:00 2001 From: ta264 Date: Sun, 14 Nov 2021 21:28:58 +0000 Subject: [PATCH] Fixed: UI updates when new author book monitor state set Fixes #1298 --- .../AlbumMonitoredServiceFixture.cs | 6 +++--- src/NzbDrone.Core/Books/Services/BookMonitoredService.cs | 6 +++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/NzbDrone.Core.Test/MusicTests/AlbumMonitoredServiceTests/AlbumMonitoredServiceFixture.cs b/src/NzbDrone.Core.Test/MusicTests/AlbumMonitoredServiceTests/AlbumMonitoredServiceFixture.cs index 59ba9d853..3ca576a5a 100644 --- a/src/NzbDrone.Core.Test/MusicTests/AlbumMonitoredServiceTests/AlbumMonitoredServiceFixture.cs +++ b/src/NzbDrone.Core.Test/MusicTests/AlbumMonitoredServiceTests/AlbumMonitoredServiceFixture.cs @@ -80,7 +80,7 @@ namespace NzbDrone.Core.Test.MusicTests.BookMonitoredServiceTests Subject.SetBookMonitoredStatus(_author, new MonitoringOptions { Monitor = MonitorTypes.All }); Mocker.GetMock() - .Verify(v => v.UpdateMany(It.Is>(l => l.All(e => e.Monitored)))); + .Verify(v => v.UpdateBook(It.Is(l => l.Monitored)), Times.Exactly(_books.Count)); } [Test] @@ -101,13 +101,13 @@ namespace NzbDrone.Core.Test.MusicTests.BookMonitoredServiceTests private void VerifyMonitored(Func predicate) { Mocker.GetMock() - .Verify(v => v.UpdateMany(It.Is>(l => l.Where(predicate).All(e => e.Monitored)))); + .Verify(v => v.UpdateBook(It.Is(b => b.Monitored)), Times.AtLeast(_books.Where(predicate).Count())); } private void VerifyNotMonitored(Func predicate) { Mocker.GetMock() - .Verify(v => v.UpdateMany(It.Is>(l => l.Where(predicate).All(e => !e.Monitored)))); + .Verify(v => v.UpdateBook(It.Is(b => !b.Monitored)), Times.AtLeast(_books.Where(predicate).Count())); } } } diff --git a/src/NzbDrone.Core/Books/Services/BookMonitoredService.cs b/src/NzbDrone.Core/Books/Services/BookMonitoredService.cs index ff33a26ee..3e8044612 100644 --- a/src/NzbDrone.Core/Books/Services/BookMonitoredService.cs +++ b/src/NzbDrone.Core/Books/Services/BookMonitoredService.cs @@ -86,7 +86,11 @@ namespace NzbDrone.Core.Books } } - _bookService.UpdateMany(books); + // Use individual update to ensure updates are sent to frontend + foreach (var book in books) + { + _bookService.UpdateBook(book); + } } _authorService.UpdateAuthor(author);