mirror of
https://github.com/lidarr/Lidarr
synced 2024-12-26 01:27:00 +00:00
Update episode info now uses UpdateMany, InsertMany
This commit is contained in:
parent
2980c91f19
commit
9244a4e6ef
2 changed files with 12 additions and 22 deletions
|
@ -388,8 +388,8 @@ public void existing_episodes_only_calls_Update()
|
||||||
mocker.Resolve<EpisodeProvider>().RefreshEpisodeInfo(fakeSeries);
|
mocker.Resolve<EpisodeProvider>().RefreshEpisodeInfo(fakeSeries);
|
||||||
|
|
||||||
//Assert
|
//Assert
|
||||||
mocker.GetMock<IDatabase>().Verify(c => c.Insert(It.IsAny<Object>()), Times.Never());
|
mocker.GetMock<IDatabase>().Verify(c => c.InsertMany(It.Is<IEnumerable<Episode>>(l => l.Count() == 0)), Times.Once());
|
||||||
mocker.GetMock<IDatabase>().Verify(c => c.Update(It.IsAny<Object>()), Times.Exactly(tvdbSeries.Episodes.Count));
|
mocker.GetMock<IDatabase>().Verify(c => c.UpdateMany(It.Is<IEnumerable<Episode>>(l => l.Count() == 5)), Times.Once());
|
||||||
mocker.VerifyAllMocks();
|
mocker.VerifyAllMocks();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -499,9 +499,8 @@ public void existing_episodes_keep_their_episodeId_file_id()
|
||||||
.Returns(currentEpisodes);
|
.Returns(currentEpisodes);
|
||||||
|
|
||||||
mocker.GetMock<IDatabase>()
|
mocker.GetMock<IDatabase>()
|
||||||
.Setup(c => c.Update(It.IsAny<Episode>()))
|
.Setup(c => c.UpdateMany(It.IsAny<IEnumerable<Episode>>()))
|
||||||
.Returns(1)
|
.Callback<IEnumerable<Episode>>(ep => updatedEpisodes =ep.ToList());
|
||||||
.Callback<Episode>(ep => updatedEpisodes.Add(ep));
|
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
mocker.Resolve<EpisodeProvider>().RefreshEpisodeInfo(fakeSeries);
|
mocker.Resolve<EpisodeProvider>().RefreshEpisodeInfo(fakeSeries);
|
||||||
|
@ -1175,7 +1174,7 @@ public void EpisodesWithoutFiles_no_specials()
|
||||||
db.InsertMany(specials);
|
db.InsertMany(specials);
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
var missingFiles= mocker.Resolve<EpisodeProvider>().EpisodesWithoutFiles(false);
|
var missingFiles = mocker.Resolve<EpisodeProvider>().EpisodesWithoutFiles(false);
|
||||||
|
|
||||||
//Assert
|
//Assert
|
||||||
missingFiles.Should().HaveCount(1);
|
missingFiles.Should().HaveCount(1);
|
||||||
|
@ -1203,7 +1202,7 @@ public void EpisodesWithoutFiles_with_specials()
|
||||||
.Have(c => c.Ignored = true)
|
.Have(c => c.Ignored = true)
|
||||||
.WhereTheFirst(2)
|
.WhereTheFirst(2)
|
||||||
.Have(c => c.EpisodeFileId = 0)
|
.Have(c => c.EpisodeFileId = 0)
|
||||||
.WhereSection(1,2)
|
.WhereSection(1, 2)
|
||||||
.Have(c => c.Ignored = false)
|
.Have(c => c.Ignored = false)
|
||||||
.Build().ToList();
|
.Build().ToList();
|
||||||
|
|
||||||
|
|
|
@ -241,17 +241,8 @@ public virtual void RefreshEpisodeInfo(Series series)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
using (var tran = _database.GetTransaction())
|
_database.InsertMany(newList);
|
||||||
{
|
_database.UpdateMany(updateList);
|
||||||
newList.ForEach(AddEpisode);
|
|
||||||
updateList.ForEach(episode => _database.Update(episode));
|
|
||||||
|
|
||||||
//Shouldn't run if Database is a mock since transaction will be null
|
|
||||||
if (_database.GetType().Namespace != "Castle.Proxies" && tran != null)
|
|
||||||
{
|
|
||||||
tran.Complete();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Logger.Info("Finished episode refresh for series: {0}. Successful: {1} - Failed: {2} ",
|
Logger.Info("Finished episode refresh for series: {0}. Successful: {1} - Failed: {2} ",
|
||||||
tvDbSeriesInfo.SeriesName, successCount, failCount);
|
tvDbSeriesInfo.SeriesName, successCount, failCount);
|
||||||
|
@ -264,7 +255,7 @@ public virtual void UpdateEpisode(Episode episode)
|
||||||
|
|
||||||
public virtual bool IsIgnored(int seriesId, int seasonNumber)
|
public virtual bool IsIgnored(int seriesId, int seasonNumber)
|
||||||
{
|
{
|
||||||
var episodes =_database.Fetch<Episode>(@"SELECT * FROM Episodes WHERE SeriesId=@0 AND SeasonNumber=@1", seriesId, seasonNumber);
|
var episodes = _database.Fetch<Episode>(@"SELECT * FROM Episodes WHERE SeriesId=@0 AND SeasonNumber=@1", seriesId, seasonNumber);
|
||||||
|
|
||||||
if (episodes == null || episodes.Count == 0)
|
if (episodes == null || episodes.Count == 0)
|
||||||
{
|
{
|
||||||
|
@ -276,10 +267,10 @@ public virtual bool IsIgnored(int seriesId, int seasonNumber)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
//else
|
//else
|
||||||
var lastSeasonsEpisodes =_database.Fetch<Episode>(@"SELECT * FROM Episodes
|
var lastSeasonsEpisodes = _database.Fetch<Episode>(@"SELECT * FROM Episodes
|
||||||
WHERE SeriesId=@0 AND SeasonNumber=@1", seriesId, seasonNumber - 1);
|
WHERE SeriesId=@0 AND SeasonNumber=@1", seriesId, seasonNumber - 1);
|
||||||
|
|
||||||
if (lastSeasonsEpisodes !=null && lastSeasonsEpisodes.Count > 0 && lastSeasonsEpisodes.Count == lastSeasonsEpisodes.Where(e => e.Ignored).Count())
|
if (lastSeasonsEpisodes != null && lastSeasonsEpisodes.Count > 0 && lastSeasonsEpisodes.Count == lastSeasonsEpisodes.Where(e => e.Ignored).Count())
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@ -309,7 +300,7 @@ public virtual void SetSeasonIgnore(long seriesId, int seasonNumber, bool isIgno
|
||||||
WHERE SeriesId = @1 AND SeasonNumber = @2 AND Ignored = @3",
|
WHERE SeriesId = @1 AND SeasonNumber = @2 AND Ignored = @3",
|
||||||
isIgnored, seriesId, seasonNumber, !isIgnored);
|
isIgnored, seriesId, seasonNumber, !isIgnored);
|
||||||
|
|
||||||
Logger.Info("Ignore flag for Series:{0} Season:{1} successfully set to {2}", seriesId, seasonNumber, isIgnored);
|
Logger.Info("Ignore flag for Series:{0} Season:{1} successfully set to {2}", seriesId, seasonNumber, isIgnored);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void SetEpisodeIgnore(int episodeId, bool isIgnored)
|
public virtual void SetEpisodeIgnore(int episodeId, bool isIgnored)
|
||||||
|
|
Loading…
Reference in a new issue