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);