Fixed: Errors logged during import when existing episode file is partial removed in the DB

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
pull/1689/head
Qstick 5 years ago
parent d00285540d
commit 9ec56708e7

@ -224,5 +224,18 @@ namespace NzbDrone.Core.Test.MediaFiles.TrackImport.Specifications
Subject.IsSatisfiedBy(_localTrack).Accepted.Should().BeTrue();
}
[Test]
public void should_return_true_if_track_file_is_null()
{
_localTrack.Tracks = Builder<Track>.CreateListOfSize(2)
.All()
.With(e => e.TrackFileId = 1)
.With(e => e.TrackFile = new LazyLoaded<TrackFile>(null))
.Build()
.ToList();
Subject.IsSatisfiedBy(_localTrack).Accepted.Should().BeTrue();
}
}
}

@ -181,5 +181,20 @@ namespace NzbDrone.Core.Test.MediaFiles
Subject.UpgradeTrackFile(_trackFile, _localTrack).OldFiles.Count.Should().Be(2);
}
[Test]
public void should_import_if_existing_file_doesnt_exist_in_db()
{
_localTrack.Tracks = Builder<Track>.CreateListOfSize(1)
.All()
.With(e => e.TrackFileId = 1)
.With(e => e.TrackFile = new LazyLoaded<TrackFile>(null))
.Build()
.ToList();
Subject.UpgradeTrackFile(_trackFile, _localTrack);
Mocker.GetMock<IMediaFileService>().Verify(v => v.Delete(_localTrack.Tracks.Single().TrackFile.Value, It.IsAny<DeleteMediaFileReason>()), Times.Never());
}
}
}

@ -27,6 +27,13 @@ namespace NzbDrone.Core.MediaFiles.TrackImport.Specifications
foreach (var track in localTrack.Tracks.Where(e => e.TrackFileId > 0))
{
var trackFile = track.TrackFile.Value;
if (trackFile == null)
{
_logger.Trace("Unable to get track file details from the DB. TrackId: {0} TrackFileId: {1}", track.Id, track.TrackFileId);
continue;
}
var qualityCompare = qualityComparer.Compare(localTrack.Quality.Quality, trackFile.Quality.Quality);
if (qualityCompare < 0)

@ -43,6 +43,7 @@ namespace NzbDrone.Core.MediaFiles
var existingFiles = localTrack.Tracks
.Where(e => e.TrackFileId > 0)
.Select(e => e.TrackFile.Value)
.Where(e => e != null)
.GroupBy(e => e.Id)
.ToList();

Loading…
Cancel
Save