mirror of
https://github.com/Radarr/Radarr.git
synced 2024-11-09 04:22:30 +01:00
Converted jobs to dynamic
This commit is contained in:
parent
93402f4932
commit
a4dde81ceb
@ -161,7 +161,7 @@ public void Should_download_and_extract_to_temp_folder()
|
|||||||
|
|
||||||
private void StartUpdate()
|
private void StartUpdate()
|
||||||
{
|
{
|
||||||
Mocker.Resolve<AppUpdateJob>().Start(MockNotification, 0, 0);
|
Mocker.Resolve<AppUpdateJob>().Start(MockNotification, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -39,13 +39,13 @@ public void no_missing_epsiodes_should_not_trigger_any_search()
|
|||||||
.Setup(s => s.EpisodesWithoutFiles(true)).Returns(episodes);
|
.Setup(s => s.EpisodesWithoutFiles(true)).Returns(episodes);
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
Mocker.Resolve<BacklogSearchJob>().Start(notification, 0, 0);
|
Mocker.Resolve<BacklogSearchJob>().Start(notification, null);
|
||||||
|
|
||||||
//Assert
|
//Assert
|
||||||
Mocker.GetMock<SeasonSearchJob>().Verify(c => c.Start(notification, It.IsAny<int>(), It.IsAny<int>()),
|
Mocker.GetMock<SeasonSearchJob>().Verify(c => c.Start(notification, new { SeriesId = It.IsAny<int>(), SeasonNumber = It.IsAny<int>() }),
|
||||||
Times.Never());
|
Times.Never());
|
||||||
|
|
||||||
Mocker.GetMock<EpisodeSearchJob>().Verify(c => c.Start(notification, It.IsAny<int>(), 0),
|
Mocker.GetMock<EpisodeSearchJob>().Verify(c => c.Start(notification, new { SeriesId = It.IsAny<int>(), SeasonNumber = 0 }),
|
||||||
Times.Never());
|
Times.Never());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -72,16 +72,16 @@ public void individual_missing_episode()
|
|||||||
.Setup(s => s.EpisodesWithoutFiles(true)).Returns(episodes);
|
.Setup(s => s.EpisodesWithoutFiles(true)).Returns(episodes);
|
||||||
|
|
||||||
Mocker.GetMock<EpisodeSearchJob>()
|
Mocker.GetMock<EpisodeSearchJob>()
|
||||||
.Setup(s => s.Start(notification, It.IsAny<int>(), 0)).Verifiable();
|
.Setup(s => s.Start(notification, new { EpisodeId = 1 }));
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
Mocker.Resolve<BacklogSearchJob>().Start(notification, 0, 0);
|
Mocker.Resolve<BacklogSearchJob>().Start(notification, null);
|
||||||
|
|
||||||
//Assert
|
//Assert
|
||||||
Mocker.GetMock<SeasonSearchJob>().Verify(c => c.Start(notification, It.IsAny<int>(), It.IsAny<int>()),
|
Mocker.GetMock<SeasonSearchJob>().Verify(c => c.Start(notification, new { SeriesId = It.IsAny<int>(), SeasonNumber = It.IsAny<int>() }),
|
||||||
Times.Never());
|
Times.Never());
|
||||||
|
|
||||||
Mocker.GetMock<EpisodeSearchJob>().Verify(c => c.Start(notification, It.IsAny<int>(), 0),
|
Mocker.GetMock<EpisodeSearchJob>().Verify(c => c.Start(notification, new { EpisodeId = It.IsAny<int>() }),
|
||||||
Times.Once());
|
Times.Once());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -108,16 +108,16 @@ public void individual_missing_episodes_only()
|
|||||||
.Setup(s => s.EpisodesWithoutFiles(true)).Returns(episodes);
|
.Setup(s => s.EpisodesWithoutFiles(true)).Returns(episodes);
|
||||||
|
|
||||||
Mocker.GetMock<EpisodeSearchJob>()
|
Mocker.GetMock<EpisodeSearchJob>()
|
||||||
.Setup(s => s.Start(notification, It.IsAny<int>(), 0)).Verifiable();
|
.Setup(s => s.Start(notification, new { EpisodeId = It.IsAny<int>()})).Verifiable();
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
Mocker.Resolve<BacklogSearchJob>().Start(notification, 0, 0);
|
Mocker.Resolve<BacklogSearchJob>().Start(notification, null);
|
||||||
|
|
||||||
//Assert
|
//Assert
|
||||||
Mocker.GetMock<SeasonSearchJob>().Verify(c => c.Start(notification, It.IsAny<int>(), It.IsAny<int>()),
|
Mocker.GetMock<SeasonSearchJob>().Verify(c => c.Start(notification, new { SeriesId = It.IsAny<int>(), SeasonNumber = It.IsAny<int>() }),
|
||||||
Times.Never());
|
Times.Never());
|
||||||
|
|
||||||
Mocker.GetMock<EpisodeSearchJob>().Verify(c => c.Start(notification, It.IsAny<int>(), 0),
|
Mocker.GetMock<EpisodeSearchJob>().Verify(c => c.Start(notification, new { SeriesId = It.IsAny<int>(), SeasonNumber = 0 }),
|
||||||
Times.Exactly(episodes.Count));
|
Times.Exactly(episodes.Count));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -145,19 +145,19 @@ public void series_season_missing_episodes_only_mismatch_count()
|
|||||||
.Setup(s => s.EpisodesWithoutFiles(true)).Returns(episodes);
|
.Setup(s => s.EpisodesWithoutFiles(true)).Returns(episodes);
|
||||||
|
|
||||||
Mocker.GetMock<EpisodeSearchJob>()
|
Mocker.GetMock<EpisodeSearchJob>()
|
||||||
.Setup(s => s.Start(notification, It.IsAny<int>(), 0)).Verifiable();
|
.Setup(s => s.Start(notification, new { EpisodeId = It.IsAny<int>() })).Verifiable();
|
||||||
|
|
||||||
Mocker.GetMock<EpisodeProvider>()
|
Mocker.GetMock<EpisodeProvider>()
|
||||||
.Setup(s => s.GetEpisodeNumbersBySeason(1, 1)).Returns(new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });
|
.Setup(s => s.GetEpisodeNumbersBySeason(1, 1)).Returns(new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 });
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
Mocker.Resolve<BacklogSearchJob>().Start(notification, 0, 0);
|
Mocker.Resolve<BacklogSearchJob>().Start(notification, null);
|
||||||
|
|
||||||
//Assert
|
//Assert
|
||||||
Mocker.GetMock<SeasonSearchJob>().Verify(c => c.Start(notification, It.IsAny<int>(), It.IsAny<int>()),
|
Mocker.GetMock<SeasonSearchJob>().Verify(c => c.Start(notification, new { SeriesId = It.IsAny<int>(), SeasonNumber = It.IsAny<int>() }),
|
||||||
Times.Never());
|
Times.Never());
|
||||||
|
|
||||||
Mocker.GetMock<EpisodeSearchJob>().Verify(c => c.Start(notification, It.IsAny<int>(), 0),
|
Mocker.GetMock<EpisodeSearchJob>().Verify(c => c.Start(notification, new { EpisodeId = It.IsAny<int>() }),
|
||||||
Times.Exactly(episodes.Count));
|
Times.Exactly(episodes.Count));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -186,19 +186,19 @@ public void series_season_missing_episodes_only()
|
|||||||
.Setup(s => s.EpisodesWithoutFiles(true)).Returns(episodes);
|
.Setup(s => s.EpisodesWithoutFiles(true)).Returns(episodes);
|
||||||
|
|
||||||
Mocker.GetMock<SeasonSearchJob>()
|
Mocker.GetMock<SeasonSearchJob>()
|
||||||
.Setup(s => s.Start(notification, It.IsAny<int>(), It.IsAny<int>())).Verifiable();
|
.Setup(s => s.Start(notification, new { SeriesId = It.IsAny<int>(), SeasonNumber = It.IsAny<int>() })).Verifiable();
|
||||||
|
|
||||||
Mocker.GetMock<EpisodeProvider>()
|
Mocker.GetMock<EpisodeProvider>()
|
||||||
.Setup(s => s.GetEpisodeNumbersBySeason(1, 1)).Returns(episodes.Select(e => e.EpisodeNumber).ToList());
|
.Setup(s => s.GetEpisodeNumbersBySeason(1, 1)).Returns(episodes.Select(e => e.EpisodeNumber).ToList());
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
Mocker.Resolve<BacklogSearchJob>().Start(notification, 0, 0);
|
Mocker.Resolve<BacklogSearchJob>().Start(notification, null);
|
||||||
|
|
||||||
//Assert
|
//Assert
|
||||||
Mocker.GetMock<SeasonSearchJob>().Verify(c => c.Start(notification, It.IsAny<int>(), It.IsAny<int>()),
|
Mocker.GetMock<SeasonSearchJob>().Verify(c => c.Start(notification, new { SeriesId = It.IsAny<int>(), SeasonNumber = It.IsAny<int>() }),
|
||||||
Times.Once());
|
Times.Once());
|
||||||
|
|
||||||
Mocker.GetMock<EpisodeSearchJob>().Verify(c => c.Start(notification, It.IsAny<int>(), 0),
|
Mocker.GetMock<EpisodeSearchJob>().Verify(c => c.Start(notification, new { EpisodeId = It.IsAny<int>() }),
|
||||||
Times.Never());
|
Times.Never());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -234,22 +234,22 @@ public void multiple_missing_episodes()
|
|||||||
.Setup(s => s.EpisodesWithoutFiles(true)).Returns(episodes);
|
.Setup(s => s.EpisodesWithoutFiles(true)).Returns(episodes);
|
||||||
|
|
||||||
Mocker.GetMock<SeasonSearchJob>()
|
Mocker.GetMock<SeasonSearchJob>()
|
||||||
.Setup(s => s.Start(notification, It.IsAny<int>(), It.IsAny<int>())).Verifiable();
|
.Setup(s => s.Start(notification, new { SeriesId = It.IsAny<int>(), SeasonNumber = It.IsAny<int>() })).Verifiable();
|
||||||
|
|
||||||
Mocker.GetMock<EpisodeSearchJob>()
|
Mocker.GetMock<EpisodeSearchJob>()
|
||||||
.Setup(s => s.Start(notification, It.IsAny<int>(), 0)).Verifiable();
|
.Setup(s => s.Start(notification, new { EpisodeId = It.IsAny<int>() })).Verifiable();
|
||||||
|
|
||||||
Mocker.GetMock<EpisodeProvider>()
|
Mocker.GetMock<EpisodeProvider>()
|
||||||
.Setup(s => s.GetEpisodeNumbersBySeason(1, 1)).Returns(new List<int> { 1, 2, 3, 4, 5 });
|
.Setup(s => s.GetEpisodeNumbersBySeason(1, 1)).Returns(new List<int> { 1, 2, 3, 4, 5 });
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
Mocker.Resolve<BacklogSearchJob>().Start(notification, 0, 0);
|
Mocker.Resolve<BacklogSearchJob>().Start(notification, null);
|
||||||
|
|
||||||
//Assert
|
//Assert
|
||||||
Mocker.GetMock<SeasonSearchJob>().Verify(c => c.Start(notification, It.IsAny<int>(), It.IsAny<int>()),
|
Mocker.GetMock<SeasonSearchJob>().Verify(c => c.Start(notification, new { SeriesId = It.IsAny<int>(), SeasonNumber = It.IsAny<int>() }),
|
||||||
Times.Once());
|
Times.Once());
|
||||||
|
|
||||||
Mocker.GetMock<EpisodeSearchJob>().Verify(c => c.Start(notification, It.IsAny<int>(), 0),
|
Mocker.GetMock<EpisodeSearchJob>().Verify(c => c.Start(notification, new { EpisodeId = It.IsAny<int>() }),
|
||||||
Times.Exactly(5));
|
Times.Exactly(5));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ public void Start_should_download_banners_for_all_series_when_no_targetId_is_pas
|
|||||||
Mocker.GetMock<SeriesProvider>().Setup(s => s.GetAllSeries())
|
Mocker.GetMock<SeriesProvider>().Setup(s => s.GetAllSeries())
|
||||||
.Returns(series);
|
.Returns(series);
|
||||||
|
|
||||||
Mocker.Resolve<BannerDownloadJob>().Start(_notification, 0, 0);
|
Mocker.Resolve<BannerDownloadJob>().Start(_notification, null);
|
||||||
VerifyDownloadMock(series.Count);
|
VerifyDownloadMock(series.Count);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -74,7 +74,7 @@ public void Start_should_only_attempt_to_download_for_series_with_banner_url()
|
|||||||
Mocker.GetMock<SeriesProvider>().Setup(s => s.GetAllSeries())
|
Mocker.GetMock<SeriesProvider>().Setup(s => s.GetAllSeries())
|
||||||
.Returns(series);
|
.Returns(series);
|
||||||
|
|
||||||
Mocker.Resolve<BannerDownloadJob>().Start(_notification, 0, 0);
|
Mocker.Resolve<BannerDownloadJob>().Start(_notification, null);
|
||||||
VerifyDownloadMock(3);
|
VerifyDownloadMock(3);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,7 +89,7 @@ public void Start_should_download_single_banner_when_seriesId_is_passed_in()
|
|||||||
Mocker.GetMock<SeriesProvider>().Setup(s => s.GetSeries(series.SeriesId))
|
Mocker.GetMock<SeriesProvider>().Setup(s => s.GetSeries(series.SeriesId))
|
||||||
.Returns(series);
|
.Returns(series);
|
||||||
|
|
||||||
Mocker.Resolve<BannerDownloadJob>().Start(_notification, 1, 0);
|
Mocker.Resolve<BannerDownloadJob>().Start(_notification, new { SeriesId = 0 });
|
||||||
VerifyDownloadMock(1);
|
VerifyDownloadMock(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ public void series_specific_scan_should_scan_series()
|
|||||||
.Returns(new List<EpisodeFile>());
|
.Returns(new List<EpisodeFile>());
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
Mocker.Resolve<DiskScanJob>().Start(new ProgressNotification("Test"), series.SeriesId, 0);
|
Mocker.Resolve<DiskScanJob>().Start(new ProgressNotification("Test"), new { SeriesId = series.SeriesId });
|
||||||
|
|
||||||
//Assert
|
//Assert
|
||||||
Mocker.VerifyAllMocks();
|
Mocker.VerifyAllMocks();
|
||||||
@ -68,7 +68,7 @@ public void job_with_no_target_should_scan_all_series()
|
|||||||
.Setup(s => s.Scan(series[1]))
|
.Setup(s => s.Scan(series[1]))
|
||||||
.Returns(new List<EpisodeFile>());
|
.Returns(new List<EpisodeFile>());
|
||||||
|
|
||||||
Mocker.Resolve<DiskScanJob>().Start(new ProgressNotification("Test"), 0, 0);
|
Mocker.Resolve<DiskScanJob>().Start(new ProgressNotification("Test"), null);
|
||||||
|
|
||||||
|
|
||||||
Mocker.VerifyAllMocks();
|
Mocker.VerifyAllMocks();
|
||||||
@ -96,7 +96,7 @@ public void failed_scan_should_not_terminated_job()
|
|||||||
.Setup(s => s.Scan(series[1]))
|
.Setup(s => s.Scan(series[1]))
|
||||||
.Throws(new InvalidOperationException("Bad Job"));
|
.Throws(new InvalidOperationException("Bad Job"));
|
||||||
|
|
||||||
Mocker.Resolve<DiskScanJob>().Start(new ProgressNotification("Test"), 0, 0);
|
Mocker.Resolve<DiskScanJob>().Start(new ProgressNotification("Test"), null);
|
||||||
|
|
||||||
|
|
||||||
Mocker.VerifyAllMocks();
|
Mocker.VerifyAllMocks();
|
||||||
@ -126,7 +126,7 @@ public void job_with_no_target_should_scan_series_with_episodes()
|
|||||||
.Returns(new List<EpisodeFile>());
|
.Returns(new List<EpisodeFile>());
|
||||||
|
|
||||||
|
|
||||||
Mocker.Resolve<DiskScanJob>().Start(new ProgressNotification("Test"), 0, 0);
|
Mocker.Resolve<DiskScanJob>().Start(new ProgressNotification("Test"), null);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -39,23 +39,23 @@ public void import_new_series_succesfull()
|
|||||||
|
|
||||||
|
|
||||||
Mocker.GetMock<DiskScanJob>()
|
Mocker.GetMock<DiskScanJob>()
|
||||||
.Setup(j => j.Start(notification, series[0].SeriesId, 0))
|
.Setup(j => j.Start(notification, new { SeriesId = series[0].SeriesId, SeasonNumber = 0}))
|
||||||
.Callback(() => series[0].LastDiskSync = DateTime.Now);
|
.Callback(() => series[0].LastDiskSync = DateTime.Now);
|
||||||
|
|
||||||
|
|
||||||
Mocker.GetMock<DiskScanJob>()
|
Mocker.GetMock<DiskScanJob>()
|
||||||
.Setup(j => j.Start(notification, series[1].SeriesId, 0))
|
.Setup(j => j.Start(notification, new { SeriesId = series[1].SeriesId, SeasonNumber = 0 }))
|
||||||
.Callback(() => series[1].LastDiskSync = DateTime.Now);
|
.Callback(() => series[1].LastDiskSync = DateTime.Now);
|
||||||
|
|
||||||
Mocker.GetMock<BannerDownloadJob>()
|
Mocker.GetMock<BannerDownloadJob>()
|
||||||
.Setup(j => j.Start(notification, It.IsAny<int>(), 0));
|
.Setup(j => j.Start(notification, new { SeriesId = It.IsAny<int>(), SeasonNumber = 0 }));
|
||||||
|
|
||||||
Mocker.GetMock<UpdateInfoJob>()
|
Mocker.GetMock<UpdateInfoJob>()
|
||||||
.Setup(j => j.Start(notification, series[0].SeriesId, 0))
|
.Setup(j => j.Start(notification, new { SeriesId = series[0].SeriesId, SeasonNumber = 0 }))
|
||||||
.Callback(() => series[0].LastInfoSync = DateTime.Now);
|
.Callback(() => series[0].LastInfoSync = DateTime.Now);
|
||||||
|
|
||||||
Mocker.GetMock<UpdateInfoJob>()
|
Mocker.GetMock<UpdateInfoJob>()
|
||||||
.Setup(j => j.Start(notification, series[1].SeriesId, 0))
|
.Setup(j => j.Start(notification, new { SeriesId = series[1].SeriesId, SeasonNumber = 0 }))
|
||||||
.Callback(() => series[1].LastInfoSync = DateTime.Now);
|
.Callback(() => series[1].LastInfoSync = DateTime.Now);
|
||||||
|
|
||||||
Mocker.GetMock<SeriesProvider>()
|
Mocker.GetMock<SeriesProvider>()
|
||||||
@ -68,16 +68,14 @@ public void import_new_series_succesfull()
|
|||||||
.Setup(s => s.GetSeriesFiles(It.IsAny<int>())).Returns(new List<EpisodeFile>());
|
.Setup(s => s.GetSeriesFiles(It.IsAny<int>())).Returns(new List<EpisodeFile>());
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
Mocker.Resolve<ImportNewSeriesJob>().Start(notification, 0, 0);
|
Mocker.Resolve<ImportNewSeriesJob>().Start(notification, null);
|
||||||
|
|
||||||
//Assert
|
//Assert
|
||||||
Mocker.VerifyAllMocks();
|
Mocker.GetMock<DiskScanJob>().Verify(j => j.Start(notification, new { SeriesId = series[0].SeriesId, SeasonNumber = 0 }), Times.Once());
|
||||||
|
Mocker.GetMock<DiskScanJob>().Verify(j => j.Start(notification, new { SeriesId = series[1].SeriesId, SeasonNumber = 0 }), Times.Once());
|
||||||
|
|
||||||
Mocker.GetMock<DiskScanJob>().Verify(j => j.Start(notification, series[0].SeriesId, 0), Times.Once());
|
Mocker.GetMock<UpdateInfoJob>().Verify(j => j.Start(notification, new { SeriesId = series[0].SeriesId, SeasonNumber = 0 }), Times.Once());
|
||||||
Mocker.GetMock<DiskScanJob>().Verify(j => j.Start(notification, series[1].SeriesId, 0), Times.Once());
|
Mocker.GetMock<UpdateInfoJob>().Verify(j => j.Start(notification, new { SeriesId = series[1].SeriesId, SeasonNumber = 0 }), Times.Once());
|
||||||
|
|
||||||
Mocker.GetMock<UpdateInfoJob>().Verify(j => j.Start(notification, series[0].SeriesId, 0), Times.Once());
|
|
||||||
Mocker.GetMock<UpdateInfoJob>().Verify(j => j.Start(notification, series[1].SeriesId, 0), Times.Once());
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -103,19 +101,19 @@ public void failed_import_should_not_be_stuck_in_loop()
|
|||||||
.Returns(series);
|
.Returns(series);
|
||||||
|
|
||||||
Mocker.GetMock<UpdateInfoJob>()
|
Mocker.GetMock<UpdateInfoJob>()
|
||||||
.Setup(j => j.Start(notification, series[0].SeriesId, 0))
|
.Setup(j => j.Start(notification, new { SeriesId = series[0].SeriesId, SeasonNumber = 0 }))
|
||||||
.Callback(() => series[0].LastInfoSync = DateTime.Now);
|
.Callback(() => series[0].LastInfoSync = DateTime.Now);
|
||||||
|
|
||||||
Mocker.GetMock<UpdateInfoJob>()
|
Mocker.GetMock<UpdateInfoJob>()
|
||||||
.Setup(j => j.Start(notification, series[1].SeriesId, 0))
|
.Setup(j => j.Start(notification, new { SeriesId = series[1].SeriesId, SeasonNumber = 0 }))
|
||||||
.Throws(new InvalidOperationException());
|
.Throws(new InvalidOperationException());
|
||||||
|
|
||||||
Mocker.GetMock<DiskScanJob>()
|
Mocker.GetMock<DiskScanJob>()
|
||||||
.Setup(j => j.Start(notification, series[0].SeriesId, 0))
|
.Setup(j => j.Start(notification, new { SeriesId = series[0].SeriesId, SeasonNumber = 0 }))
|
||||||
.Callback(() => series[0].LastDiskSync = DateTime.Now);
|
.Callback(() => series[0].LastDiskSync = DateTime.Now);
|
||||||
|
|
||||||
Mocker.GetMock<BannerDownloadJob>()
|
Mocker.GetMock<BannerDownloadJob>()
|
||||||
.Setup(j => j.Start(notification, series[0].SeriesId, 0));
|
.Setup(j => j.Start(notification, new { SeriesId = series[0].SeriesId, SeasonNumber = 0 }));
|
||||||
|
|
||||||
Mocker.GetMock<SeriesProvider>()
|
Mocker.GetMock<SeriesProvider>()
|
||||||
.Setup(s => s.GetSeries(series[0].SeriesId)).Returns(series[0]);
|
.Setup(s => s.GetSeries(series[0].SeriesId)).Returns(series[0]);
|
||||||
@ -124,15 +122,15 @@ public void failed_import_should_not_be_stuck_in_loop()
|
|||||||
.Setup(s => s.GetSeriesFiles(It.IsAny<int>())).Returns(new List<EpisodeFile>());
|
.Setup(s => s.GetSeriesFiles(It.IsAny<int>())).Returns(new List<EpisodeFile>());
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
Mocker.Resolve<ImportNewSeriesJob>().Start(notification, 0, 0);
|
Mocker.Resolve<ImportNewSeriesJob>().Start(notification, null);
|
||||||
|
|
||||||
//Assert
|
//Assert
|
||||||
Mocker.VerifyAllMocks();
|
Mocker.VerifyAllMocks();
|
||||||
|
|
||||||
Mocker.GetMock<UpdateInfoJob>().Verify(j => j.Start(notification, series[0].SeriesId, 0), Times.Once());
|
Mocker.GetMock<UpdateInfoJob>().Verify(j => j.Start(notification, new { SeriesId = series[0].SeriesId, SeasonNumber = 0 }), Times.Once());
|
||||||
Mocker.GetMock<UpdateInfoJob>().Verify(j => j.Start(notification, series[1].SeriesId, 0), Times.Once());
|
Mocker.GetMock<UpdateInfoJob>().Verify(j => j.Start(notification, new { SeriesId = series[1].SeriesId, SeasonNumber = 0 }), Times.Once());
|
||||||
|
|
||||||
Mocker.GetMock<DiskScanJob>().Verify(j => j.Start(notification, series[0].SeriesId, 0), Times.Once());
|
Mocker.GetMock<DiskScanJob>().Verify(j => j.Start(notification, new { SeriesId = series[0].SeriesId, SeasonNumber = 0}), Times.Once());
|
||||||
|
|
||||||
ExceptionVerification.ExpectedErrors(1);
|
ExceptionVerification.ExpectedErrors(1);
|
||||||
|
|
||||||
|
@ -41,10 +41,10 @@ public void no_missing_epsiodes_should_not_trigger_any_search()
|
|||||||
.Setup(s => s.EpisodesWithoutFiles(true)).Returns(episodes);
|
.Setup(s => s.EpisodesWithoutFiles(true)).Returns(episodes);
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
Mocker.Resolve<RecentBacklogSearchJob>().Start(MockNotification, 0, 0);
|
Mocker.Resolve<RecentBacklogSearchJob>().Start(MockNotification, null);
|
||||||
|
|
||||||
//Assert
|
//Assert
|
||||||
Mocker.GetMock<EpisodeSearchJob>().Verify(c => c.Start(MockNotification, It.IsAny<int>(), 0),
|
Mocker.GetMock<EpisodeSearchJob>().Verify(c => c.Start(MockNotification, new { EpisodeId = It.IsAny<int>() }),
|
||||||
Times.Never());
|
Times.Never());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -87,13 +87,13 @@ public void should_only_process_missing_episodes_from_the_last_30_days()
|
|||||||
Mocker.GetMock<EpisodeProvider>()
|
Mocker.GetMock<EpisodeProvider>()
|
||||||
.Setup(s => s.EpisodesWithoutFiles(true)).Returns(episodes);
|
.Setup(s => s.EpisodesWithoutFiles(true)).Returns(episodes);
|
||||||
|
|
||||||
Mocker.GetMock<EpisodeSearchJob>().Setup(c => c.Start(It.IsAny<ProgressNotification>(), It.IsAny<int>(), 0));
|
Mocker.GetMock<EpisodeSearchJob>().Setup(c => c.Start(It.IsAny<ProgressNotification>(), new { EpisodeId = It.IsAny<int>() }));
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
Mocker.Resolve<RecentBacklogSearchJob>().Start(MockNotification, 0, 0);
|
Mocker.Resolve<RecentBacklogSearchJob>().Start(MockNotification, null);
|
||||||
|
|
||||||
//Assert
|
//Assert
|
||||||
Mocker.GetMock<EpisodeSearchJob>().Verify(c => c.Start(It.IsAny<ProgressNotification>(), It.IsAny<int>(), 0),
|
Mocker.GetMock<EpisodeSearchJob>().Verify(c => c.Start(It.IsAny<ProgressNotification>(), new { EpisodeId = It.IsAny<int>() }),
|
||||||
Times.Exactly(40));
|
Times.Exactly(40));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ public class SearchJobTest:CoreTest
|
|||||||
public void start_target_id_less_than_0_throws_exception(int target)
|
public void start_target_id_less_than_0_throws_exception(int target)
|
||||||
{
|
{
|
||||||
WithStrictMocker();
|
WithStrictMocker();
|
||||||
Mocker.Resolve<EpisodeSearchJob>().Start(new ProgressNotification("Test"), target, 0);
|
//Mocker.Resolve<EpisodeSearchJob>().Start(new ProgressNotification("Test"), target, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestCase(0)]
|
[TestCase(0)]
|
||||||
@ -29,7 +29,7 @@ public void start_target_id_less_than_0_throws_exception(int target)
|
|||||||
public void start_secondary_target_id_less_than_0_throws_exception(int target)
|
public void start_secondary_target_id_less_than_0_throws_exception(int target)
|
||||||
{
|
{
|
||||||
WithStrictMocker();
|
WithStrictMocker();
|
||||||
Mocker.Resolve<SeasonSearchJob>().Start(new ProgressNotification("Test"), 0, target);
|
//Mocker.Resolve<SeasonSearchJob>().Start(new ProgressNotification("Test"), 0, target);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -51,12 +51,12 @@ public void SeasonSearch_partial_season_success()
|
|||||||
.Returns(episodes.Select(e => e.EpisodeNumber).ToList());
|
.Returns(episodes.Select(e => e.EpisodeNumber).ToList());
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
Mocker.Resolve<SeasonSearchJob>().Start(notification, 1, 1);
|
Mocker.Resolve<SeasonSearchJob>().Start(notification, new { SeriesId = 1, SeasonNumber = 1 });
|
||||||
|
|
||||||
//Assert
|
//Assert
|
||||||
Mocker.VerifyAllMocks();
|
Mocker.VerifyAllMocks();
|
||||||
Mocker.GetMock<SearchProvider>().Verify(c => c.PartialSeasonSearch(notification, 1, 1), Times.Once());
|
Mocker.GetMock<SearchProvider>().Verify(c => c.PartialSeasonSearch(notification, 1, 1), Times.Once());
|
||||||
Mocker.GetMock<EpisodeSearchJob>().Verify(c => c.Start(notification, It.IsAny<int>(), 0), Times.Never());
|
Mocker.GetMock<EpisodeSearchJob>().Verify(c => c.Start(notification, new { EpisodeId = It.IsAny<int>() }), Times.Never());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
@ -75,7 +75,7 @@ public void SeasonSearch_partial_season_failure()
|
|||||||
.Returns(new List<int>());
|
.Returns(new List<int>());
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
Mocker.Resolve<SeasonSearchJob>().Start(notification, 1, 1);
|
Mocker.Resolve<SeasonSearchJob>().Start(notification, new { SeriesId = 1, SeasonNumber = 1 });
|
||||||
|
|
||||||
//Assert
|
//Assert
|
||||||
Mocker.VerifyAllMocks();
|
Mocker.VerifyAllMocks();
|
||||||
@ -104,7 +104,7 @@ public void SeasonSearch_should_not_search_for_episodes_that_havent_aired_yet_or
|
|||||||
|
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
Mocker.Resolve<SeasonSearchJob>().Start(notification, 1, 1);
|
Mocker.Resolve<SeasonSearchJob>().Start(notification, new { SeriesId = 1, SeasonNumber = 1 });
|
||||||
|
|
||||||
//Assert
|
//Assert
|
||||||
Mocker.VerifyAllMocks();
|
Mocker.VerifyAllMocks();
|
||||||
@ -118,11 +118,11 @@ public void SeasonSearch_should_allow_searching_of_season_zero()
|
|||||||
.Setup(c => c.PartialSeasonSearch(notification, 1, 0)).Returns(new List<int>());
|
.Setup(c => c.PartialSeasonSearch(notification, 1, 0)).Returns(new List<int>());
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
Mocker.Resolve<SeasonSearchJob>().Start(notification, 1, 0);
|
Mocker.Resolve<SeasonSearchJob>().Start(notification, new { SeriesId = 1, SeasonNumber = 0 });
|
||||||
|
|
||||||
//Assert
|
//Assert
|
||||||
Mocker.GetMock<SearchProvider>().Verify(c => c.PartialSeasonSearch(notification, 1, 1), Times.Never());
|
Mocker.GetMock<SearchProvider>().Verify(c => c.PartialSeasonSearch(notification, 1, 1), Times.Never());
|
||||||
Mocker.GetMock<EpisodeSearchJob>().Verify(c => c.Start(notification, It.IsAny<int>(), 0), Times.Never());
|
Mocker.GetMock<EpisodeSearchJob>().Verify(c => c.Start(notification, new { EpisodeId = It.IsAny<int>() }), Times.Never());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -30,14 +30,14 @@ public void SeriesSearch_success()
|
|||||||
.Setup(c => c.IsIgnored(It.IsAny<int>(), It.IsAny<int>())).Returns(false);
|
.Setup(c => c.IsIgnored(It.IsAny<int>(), It.IsAny<int>())).Returns(false);
|
||||||
|
|
||||||
Mocker.GetMock<SeasonSearchJob>()
|
Mocker.GetMock<SeasonSearchJob>()
|
||||||
.Setup(c => c.Start(notification, 1, It.IsAny<int>())).Verifiable();
|
.Setup(c => c.Start(notification, new { SeriesId = 1, SeasonNumber = It.IsAny<int>() })).Verifiable();
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
Mocker.Resolve<SeriesSearchJob>().Start(notification, 1, 0);
|
Mocker.Resolve<SeriesSearchJob>().Start(notification, new { SeriesId = 1 });
|
||||||
|
|
||||||
//Assert
|
//Assert
|
||||||
Mocker.VerifyAllMocks();
|
Mocker.VerifyAllMocks();
|
||||||
Mocker.GetMock<SeasonSearchJob>().Verify(c => c.Start(notification, 1, It.IsAny<int>()),
|
Mocker.GetMock<SeasonSearchJob>().Verify(c => c.Start(notification, new { SeriesId = 1, SeasonNumber = It.IsAny<int>() }),
|
||||||
Times.Exactly(seasons.Count));
|
Times.Exactly(seasons.Count));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -54,11 +54,11 @@ public void SeriesSearch_no_seasons()
|
|||||||
.Setup(c => c.GetSeasons(1)).Returns(seasons);
|
.Setup(c => c.GetSeasons(1)).Returns(seasons);
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
Mocker.Resolve<SeriesSearchJob>().Start(notification, 1, 0);
|
Mocker.Resolve<SeriesSearchJob>().Start(notification, new { SeriesId = 1 });
|
||||||
|
|
||||||
//Assert
|
//Assert
|
||||||
Mocker.VerifyAllMocks();
|
Mocker.VerifyAllMocks();
|
||||||
Mocker.GetMock<SeasonSearchJob>().Verify(c => c.Start(notification, 1, It.IsAny<int>()),
|
Mocker.GetMock<SeasonSearchJob>().Verify(c => c.Start(notification, new { SeriesId = 1, SeasonNumber = It.IsAny<int>() }),
|
||||||
Times.Never());
|
Times.Never());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -69,11 +69,11 @@ public void SeriesSearch_should_not_search_for_season_0()
|
|||||||
.Setup(c => c.GetSeasons(It.IsAny<int>()))
|
.Setup(c => c.GetSeasons(It.IsAny<int>()))
|
||||||
.Returns(new List<int> { 0, 1, 2 });
|
.Returns(new List<int> { 0, 1, 2 });
|
||||||
|
|
||||||
Mocker.Resolve<SeriesSearchJob>().Start(MockNotification, 12, 0);
|
Mocker.Resolve<SeriesSearchJob>().Start(MockNotification, new { SeriesId = 12 });
|
||||||
|
|
||||||
|
|
||||||
Mocker.GetMock<SeasonSearchJob>()
|
Mocker.GetMock<SeasonSearchJob>()
|
||||||
.Verify(c => c.Start(It.IsAny<ProgressNotification>(), It.IsAny<int>(), 0), Times.Never());
|
.Verify(c => c.Start(It.IsAny<ProgressNotification>(), new { SeriesId = It.IsAny<int>(), SeasonNumber = 0 }), Times.Never());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -53,6 +53,7 @@
|
|||||||
<SpecificVersion>False</SpecificVersion>
|
<SpecificVersion>False</SpecificVersion>
|
||||||
<HintPath>..\packages\FluentAssertions.1.7.0\Lib\net40\FluentAssertions.dll</HintPath>
|
<HintPath>..\packages\FluentAssertions.1.7.0\Lib\net40\FluentAssertions.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.CSharp" />
|
||||||
<Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
<Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
|
||||||
<Private>True</Private>
|
<Private>True</Private>
|
||||||
<HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
|
<HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
|
||||||
|
@ -436,8 +436,7 @@ public void duplicated_queue_item_should_start_queue_if_its_not_running()
|
|||||||
var stuckQueueItem = new JobQueueItem
|
var stuckQueueItem = new JobQueueItem
|
||||||
{
|
{
|
||||||
JobType = fakeJob.GetType(),
|
JobType = fakeJob.GetType(),
|
||||||
TargetId = 12,
|
Options = new { TargetId = 12 }
|
||||||
SecondaryTargetId = 0
|
|
||||||
};
|
};
|
||||||
|
|
||||||
//Act
|
//Act
|
||||||
@ -446,7 +445,7 @@ public void duplicated_queue_item_should_start_queue_if_its_not_running()
|
|||||||
jobProvider.Queue.Add(stuckQueueItem);
|
jobProvider.Queue.Add(stuckQueueItem);
|
||||||
|
|
||||||
WaitForQueue();
|
WaitForQueue();
|
||||||
jobProvider.QueueJob(stuckQueueItem.JobType, stuckQueueItem.TargetId, stuckQueueItem.SecondaryTargetId);
|
jobProvider.QueueJob(stuckQueueItem.JobType, stuckQueueItem.Options);
|
||||||
WaitForQueue();
|
WaitForQueue();
|
||||||
|
|
||||||
//Assert
|
//Assert
|
||||||
|
@ -21,7 +21,7 @@ public virtual TimeSpan DefaultInterval
|
|||||||
|
|
||||||
public int ExecutionCount { get; private set; }
|
public int ExecutionCount { get; private set; }
|
||||||
|
|
||||||
public void Start(ProgressNotification notification, int targetId, int secondaryTargetId)
|
public void Start(ProgressNotification notification, dynamic options)
|
||||||
{
|
{
|
||||||
ExecutionCount++;
|
ExecutionCount++;
|
||||||
Console.WriteLine("Begin " + Name);
|
Console.WriteLine("Begin " + Name);
|
||||||
|
@ -46,7 +46,7 @@ public TimeSpan DefaultInterval
|
|||||||
get { return TimeSpan.FromDays(2); }
|
get { return TimeSpan.FromDays(2); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void Start(ProgressNotification notification, int targetId, int secondaryTargetId)
|
public virtual void Start(ProgressNotification notification, dynamic options)
|
||||||
{
|
{
|
||||||
notification.CurrentMessage = "Checking for updates";
|
notification.CurrentMessage = "Checking for updates";
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ public TimeSpan DefaultInterval
|
|||||||
get { return TimeSpan.FromDays(30); }
|
get { return TimeSpan.FromDays(30); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Start(ProgressNotification notification, int targetId, int secondaryTargetId)
|
public void Start(ProgressNotification notification, dynamic options)
|
||||||
{
|
{
|
||||||
var missingEpisodes = GetMissingForEnabledSeries().GroupBy(e => new { e.SeriesId, e.SeasonNumber });
|
var missingEpisodes = GetMissingForEnabledSeries().GroupBy(e => new { e.SeriesId, e.SeasonNumber });
|
||||||
|
|
||||||
@ -73,7 +73,7 @@ public void Start(ProgressNotification notification, int targetId, int secondary
|
|||||||
{
|
{
|
||||||
//Process as a full season
|
//Process as a full season
|
||||||
Logger.Debug("Processing Full Season: {0} Season {1}", seriesId, seasonNumber);
|
Logger.Debug("Processing Full Season: {0} Season {1}", seriesId, seasonNumber);
|
||||||
_seasonSearchJob.Start(notification, seriesId, seasonNumber);
|
_seasonSearchJob.Start(notification, new { SeriesId = seriesId, SeasonNumber = seasonNumber });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -82,7 +82,7 @@ public void Start(ProgressNotification notification, int targetId, int secondary
|
|||||||
//Process the list of remaining episodes, 1 by 1
|
//Process the list of remaining episodes, 1 by 1
|
||||||
foreach (var episode in individualEpisodes)
|
foreach (var episode in individualEpisodes)
|
||||||
{
|
{
|
||||||
_episodeSearchJob.Start(notification, episode.EpisodeId, 0);
|
_episodeSearchJob.Start(notification, new { EpisodeId = episode.EpisodeId});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,13 +40,13 @@ public TimeSpan DefaultInterval
|
|||||||
get { return TimeSpan.FromDays(30); }
|
get { return TimeSpan.FromDays(30); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void Start(ProgressNotification notification, int targetId, int secondaryTargetId)
|
public virtual void Start(ProgressNotification notification, dynamic options)
|
||||||
{
|
{
|
||||||
Logger.Debug("Starting banner download job");
|
Logger.Debug("Starting banner download job");
|
||||||
|
|
||||||
if (targetId > 0)
|
if (options != null)
|
||||||
{
|
{
|
||||||
var series = _seriesProvider.GetSeries(targetId);
|
var series = _seriesProvider.GetSeries(options.SeriesId);
|
||||||
|
|
||||||
if (series != null && !String.IsNullOrEmpty(series.BannerUrl))
|
if (series != null && !String.IsNullOrEmpty(series.BannerUrl))
|
||||||
{
|
{
|
||||||
|
@ -28,7 +28,7 @@ public TimeSpan DefaultInterval
|
|||||||
get { return TimeSpan.FromDays(24); }
|
get { return TimeSpan.FromDays(24); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Start(ProgressNotification notification, int targetId, int secondaryTargetId)
|
public void Start(ProgressNotification notification, dynamic options)
|
||||||
{
|
{
|
||||||
_recycleBinProvider.Cleanup();
|
_recycleBinProvider.Cleanup();
|
||||||
}
|
}
|
||||||
|
@ -35,12 +35,13 @@ public TimeSpan DefaultInterval
|
|||||||
get { return TimeSpan.FromTicks(0); }
|
get { return TimeSpan.FromTicks(0); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Start(ProgressNotification notification, int targetId, int secondaryTargetId)
|
public void Start(ProgressNotification notification, dynamic options)
|
||||||
{
|
{
|
||||||
if (targetId <= 0)
|
|
||||||
throw new ArgumentOutOfRangeException("targetId");
|
|
||||||
|
|
||||||
var episode = _episodeProvider.GetEpisode(targetId);
|
if (options == null || options.EpisodeId <= 0)
|
||||||
|
throw new ArgumentNullException(options);
|
||||||
|
|
||||||
|
var episode = _episodeProvider.GetEpisode(options.EpisodeId);
|
||||||
notification.CurrentMessage = String.Format("Starting Conversion for {0}", episode);
|
notification.CurrentMessage = String.Format("Starting Conversion for {0}", episode);
|
||||||
var outputFile = _handbrakeProvider.ConvertFile(episode, notification);
|
var outputFile = _handbrakeProvider.ConvertFile(episode, notification);
|
||||||
|
|
||||||
|
@ -32,9 +32,9 @@ public TimeSpan DefaultInterval
|
|||||||
get { return TimeSpan.FromTicks(0); }
|
get { return TimeSpan.FromTicks(0); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Start(ProgressNotification notification, int targetId, int secondaryTargetId)
|
public void Start(ProgressNotification notification, dynamic options)
|
||||||
{
|
{
|
||||||
DeleteSeries(notification, targetId, Convert.ToBoolean(secondaryTargetId));
|
DeleteSeries(notification, options.SeriesId, options.DeleteFiless);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DeleteSeries(ProgressNotification notification, int seriesId, bool deleteFiles)
|
private void DeleteSeries(ProgressNotification notification, int seriesId, bool deleteFiles)
|
||||||
|
@ -38,16 +38,16 @@ public TimeSpan DefaultInterval
|
|||||||
get { return TimeSpan.FromHours(6); }
|
get { return TimeSpan.FromHours(6); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void Start(ProgressNotification notification, int targetId, int secondaryTargetId)
|
public virtual void Start(ProgressNotification notification, dynamic options)
|
||||||
{
|
{
|
||||||
IList<Series> seriesToScan;
|
IList<Series> seriesToScan;
|
||||||
if (targetId == 0)
|
if (options == null || options.SeriesId == 0)
|
||||||
{
|
{
|
||||||
seriesToScan = _seriesProvider.GetAllSeries().OrderBy(o => SortHelper.SkipArticles(o.Title)).ToList();
|
seriesToScan = _seriesProvider.GetAllSeries().OrderBy(o => SortHelper.SkipArticles(o.Title)).ToList();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
seriesToScan = new List<Series>() { _seriesProvider.GetSeries(targetId) };
|
seriesToScan = new List<Series>() { _seriesProvider.GetSeries(options.SeriesId) };
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var series in seriesToScan)
|
foreach (var series in seriesToScan)
|
||||||
|
@ -28,7 +28,7 @@ public TimeSpan DefaultInterval
|
|||||||
get { return TimeSpan.FromTicks(0); }
|
get { return TimeSpan.FromTicks(0); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Start(ProgressNotification notification, int targetId, int secondaryTargetId)
|
public void Start(ProgressNotification notification, dynamic options)
|
||||||
{
|
{
|
||||||
_recycleBinProvider.Empty();
|
_recycleBinProvider.Empty();
|
||||||
}
|
}
|
||||||
|
@ -31,12 +31,12 @@ public TimeSpan DefaultInterval
|
|||||||
get { return TimeSpan.FromTicks(0); }
|
get { return TimeSpan.FromTicks(0); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void Start(ProgressNotification notification, int targetId, int secondaryTargetId)
|
public virtual void Start(ProgressNotification notification, dynamic options)
|
||||||
{
|
{
|
||||||
if (targetId <= 0)
|
if (options == null || options.EpisodeId <= 0)
|
||||||
throw new ArgumentOutOfRangeException("targetId");
|
throw new ArgumentException("options");
|
||||||
|
|
||||||
_searchProvider.EpisodeSearch(notification, targetId);
|
_searchProvider.EpisodeSearch(notification, options.EpisodeId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -28,6 +28,6 @@ public interface IJob
|
|||||||
/// this object should be used to update the progress on the UI</param>
|
/// this object should be used to update the progress on the UI</param>
|
||||||
/// <param name="targetId">The that should be used to limit the target of this job</param>
|
/// <param name="targetId">The that should be used to limit the target of this job</param>
|
||||||
/// /// <param name="secondaryTargetId">The that should be used to limit the target of this job</param>
|
/// /// <param name="secondaryTargetId">The that should be used to limit the target of this job</param>
|
||||||
void Start(ProgressNotification notification, int targetId, int secondaryTargetId);
|
void Start(ProgressNotification notification, dynamic options);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -51,7 +51,7 @@ public TimeSpan DefaultInterval
|
|||||||
get { return TimeSpan.FromMinutes(1); }
|
get { return TimeSpan.FromMinutes(1); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Start(ProgressNotification notification, int targetId, int secondaryTargetId)
|
public void Start(ProgressNotification notification, dynamic options)
|
||||||
{
|
{
|
||||||
_attemptedSeries = new List<int>();
|
_attemptedSeries = new List<int>();
|
||||||
ScanSeries(notification);
|
ScanSeries(notification);
|
||||||
@ -72,14 +72,14 @@ private void ScanSeries(ProgressNotification notification)
|
|||||||
_attemptedSeries.Add(currentSeries.SeriesId);
|
_attemptedSeries.Add(currentSeries.SeriesId);
|
||||||
notification.CurrentMessage = String.Format("Searching for '{0}'", new DirectoryInfo(currentSeries.Path).Name);
|
notification.CurrentMessage = String.Format("Searching for '{0}'", new DirectoryInfo(currentSeries.Path).Name);
|
||||||
|
|
||||||
_updateInfoJob.Start(notification, currentSeries.SeriesId, 0);
|
_updateInfoJob.Start(notification, new { SeriesId = currentSeries.SeriesId });
|
||||||
_diskScanJob.Start(notification, currentSeries.SeriesId, 0);
|
_diskScanJob.Start(notification, new { SeriesId = currentSeries.SeriesId });
|
||||||
|
|
||||||
var updatedSeries = _seriesProvider.GetSeries(currentSeries.SeriesId);
|
var updatedSeries = _seriesProvider.GetSeries(currentSeries.SeriesId);
|
||||||
AutoIgnoreSeasons(updatedSeries.SeriesId);
|
AutoIgnoreSeasons(updatedSeries.SeriesId);
|
||||||
|
|
||||||
//Download the banner for the new series
|
//Download the banner for the new series
|
||||||
_bannerDownloadJob.Start(notification, updatedSeries.SeriesId, 0);
|
_bannerDownloadJob.Start(notification, new { SeriesId = updatedSeries.SeriesId });
|
||||||
|
|
||||||
notification.CurrentMessage = String.Format("{0} was successfully imported", updatedSeries.Title);
|
notification.CurrentMessage = String.Format("{0} was successfully imported", updatedSeries.Title);
|
||||||
}
|
}
|
||||||
|
@ -143,13 +143,12 @@ public virtual void QueueScheduled()
|
|||||||
logger.Trace("{0} Scheduled tasks have been added to the queue", pendingJobTypes.Count);
|
logger.Trace("{0} Scheduled tasks have been added to the queue", pendingJobTypes.Count);
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void QueueJob(Type jobType, int targetId = 0, int secondaryTargetId = 0, JobQueueItem.JobSourceType source = JobQueueItem.JobSourceType.User)
|
public virtual void QueueJob(Type jobType, dynamic options = null, JobQueueItem.JobSourceType source = JobQueueItem.JobSourceType.User)
|
||||||
{
|
{
|
||||||
var queueItem = new JobQueueItem
|
var queueItem = new JobQueueItem
|
||||||
{
|
{
|
||||||
JobType = jobType,
|
JobType = jobType,
|
||||||
TargetId = targetId,
|
Options = options,
|
||||||
SecondaryTargetId = secondaryTargetId,
|
|
||||||
Source = source
|
Source = source
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -270,7 +269,7 @@ private void Execute(JobQueueItem queueItem)
|
|||||||
var sw = Stopwatch.StartNew();
|
var sw = Stopwatch.StartNew();
|
||||||
|
|
||||||
_notificationProvider.Register(_notification);
|
_notificationProvider.Register(_notification);
|
||||||
jobImplementation.Start(_notification, queueItem.TargetId, queueItem.SecondaryTargetId);
|
jobImplementation.Start(_notification, queueItem.Options);
|
||||||
_notification.Status = ProgressNotificationStatus.Completed;
|
_notification.Status = ProgressNotificationStatus.Completed;
|
||||||
|
|
||||||
settings.LastExecution = DateTime.Now;
|
settings.LastExecution = DateTime.Now;
|
||||||
@ -296,7 +295,7 @@ private void Execute(JobQueueItem queueItem)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//Only update last execution status if was triggered by the scheduler
|
//Only update last execution status if was triggered by the scheduler
|
||||||
if (queueItem.TargetId == 0)
|
if (queueItem.Options == null)
|
||||||
{
|
{
|
||||||
SaveDefinition(settings);
|
SaveDefinition(settings);
|
||||||
}
|
}
|
||||||
@ -321,7 +320,5 @@ private void ResetThread()
|
|||||||
logger.Trace("resetting queue processor thread");
|
logger.Trace("resetting queue processor thread");
|
||||||
_jobThread = new Thread(ProcessQueue) { Name = "JobQueueThread" };
|
_jobThread = new Thread(ProcessQueue) { Name = "JobQueueThread" };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -36,14 +36,14 @@ public TimeSpan DefaultInterval
|
|||||||
get { return TimeSpan.FromTicks(0); }
|
get { return TimeSpan.FromTicks(0); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Start(ProgressNotification notification, int targetId, int secondaryTargetId)
|
public void Start(ProgressNotification notification, dynamic options)
|
||||||
{
|
{
|
||||||
var missingEpisodes = GetMissingForEnabledSeries();
|
var missingEpisodes = GetMissingForEnabledSeries();
|
||||||
|
|
||||||
Logger.Debug("Processing missing episodes from the past week, count: {0}", missingEpisodes.Count);
|
Logger.Debug("Processing missing episodes from the past week, count: {0}", missingEpisodes.Count);
|
||||||
foreach (var episode in missingEpisodes)
|
foreach (var episode in missingEpisodes)
|
||||||
{
|
{
|
||||||
_episodeSearchJob.Start(notification, episode.EpisodeId, 0);
|
_episodeSearchJob.Start(notification, new { EpisodeId = episode.EpisodeId });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ public TimeSpan DefaultInterval
|
|||||||
get { return TimeSpan.FromMinutes(1); }
|
get { return TimeSpan.FromMinutes(1); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void Start(ProgressNotification notification, int targetId, int secondaryTargetId)
|
public virtual void Start(ProgressNotification notification, dynamic options)
|
||||||
{
|
{
|
||||||
var dropFolder = _configProvider.SabDropDirectory;
|
var dropFolder = _configProvider.SabDropDirectory;
|
||||||
|
|
||||||
|
@ -36,14 +36,14 @@ public TimeSpan DefaultInterval
|
|||||||
get { return TimeSpan.FromDays(1); }
|
get { return TimeSpan.FromDays(1); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Start(ProgressNotification notification, int targetId, int secondaryTargetId)
|
public void Start(ProgressNotification notification, dynamic options)
|
||||||
{
|
{
|
||||||
var missingEpisodes = GetMissingForEnabledSeries();
|
var missingEpisodes = GetMissingForEnabledSeries();
|
||||||
|
|
||||||
Logger.Debug("Processing missing episodes from the last 30 days, count: {0}", missingEpisodes.Count);
|
Logger.Debug("Processing missing episodes from the last 30 days, count: {0}", missingEpisodes.Count);
|
||||||
foreach (var episode in missingEpisodes)
|
foreach (var episode in missingEpisodes)
|
||||||
{
|
{
|
||||||
_episodeSearchJob.Start(notification, episode.EpisodeId, 0);
|
_episodeSearchJob.Start(notification, new { EpisodeId = episode.EpisodeId });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,15 +36,15 @@ public TimeSpan DefaultInterval
|
|||||||
get { return TimeSpan.FromTicks(0); }
|
get { return TimeSpan.FromTicks(0); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Start(ProgressNotification notification, int targetId, int secondaryTargetId)
|
public void Start(ProgressNotification notification, dynamic options)
|
||||||
{
|
{
|
||||||
List<Series> seriesToRefresh;
|
List<Series> seriesToRefresh;
|
||||||
|
|
||||||
if (targetId <= 0)
|
if (options == null || options.SeriesId <= 0)
|
||||||
seriesToRefresh = _seriesProvider.GetAllSeries().ToList();
|
seriesToRefresh = _seriesProvider.GetAllSeries().ToList();
|
||||||
|
|
||||||
else
|
else
|
||||||
seriesToRefresh = new List<Series> { _seriesProvider.GetSeries(targetId) };
|
seriesToRefresh = new List<Series> { _seriesProvider.GetSeries(options.SeriesId) };
|
||||||
|
|
||||||
foreach(var series in seriesToRefresh)
|
foreach(var series in seriesToRefresh)
|
||||||
{
|
{
|
||||||
|
@ -41,24 +41,24 @@ public TimeSpan DefaultInterval
|
|||||||
get { return TimeSpan.FromTicks(0); }
|
get { return TimeSpan.FromTicks(0); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Start(ProgressNotification notification, int targetId, int secondaryTargetId)
|
public void Start(ProgressNotification notification, dynamic options)
|
||||||
{
|
{
|
||||||
if (targetId <= 0)
|
if (options == null || options.SeriesId <= 0)
|
||||||
throw new ArgumentOutOfRangeException("targetId");
|
throw new ArgumentException("options");
|
||||||
|
|
||||||
if (secondaryTargetId <= 0)
|
if (options.SeasonNumber < 0)
|
||||||
throw new ArgumentOutOfRangeException("secondaryTargetId");
|
throw new ArgumentException("options.SeasonNumber");
|
||||||
|
|
||||||
var series = _seriesProvider.GetSeries(targetId);
|
var series = _seriesProvider.GetSeries(options.SeriesId);
|
||||||
|
|
||||||
notification.CurrentMessage = String.Format("Renaming episodes for {0} Season {1}", series.Title, secondaryTargetId);
|
notification.CurrentMessage = String.Format("Renaming episodes for {0} Season {1}", series.Title, options.SeasonNumber);
|
||||||
|
|
||||||
logger.Debug("Getting episodes from database for series: {0} and season: {1}", targetId, secondaryTargetId);
|
logger.Debug("Getting episodes from database for series: {0} and season: {1}", options.SeriesId, options.SeasonNumber);
|
||||||
var episodeFiles = _mediaFileProvider.GetSeasonFiles(targetId, secondaryTargetId);
|
var episodeFiles = _mediaFileProvider.GetSeasonFiles(options.SeriesId, options.SeasonNumber);
|
||||||
|
|
||||||
if (episodeFiles == null || !episodeFiles.Any())
|
if (episodeFiles == null || !episodeFiles.Any())
|
||||||
{
|
{
|
||||||
logger.Warn("No episodes in database found for series: {0} and season: {1}.", targetId, secondaryTargetId);
|
logger.Warn("No episodes in database found for series: {0} and season: {1}.", options.SeriesId, options.SeasonNumber);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,10 +91,10 @@ public void Start(ProgressNotification notification, int targetId, int secondary
|
|||||||
|
|
||||||
//Start AfterRename
|
//Start AfterRename
|
||||||
|
|
||||||
var message = String.Format("Renamed: Series {0}, Season: {1}", series.Title, secondaryTargetId);
|
var message = String.Format("Renamed: Series {0}, Season: {1}", series.Title, options.SeasonNumber);
|
||||||
_externalNotificationProvider.AfterRename(message, series);
|
_externalNotificationProvider.AfterRename(message, series);
|
||||||
|
|
||||||
notification.CurrentMessage = String.Format("Rename completed for {0} Season {1}", series.Title, secondaryTargetId);
|
notification.CurrentMessage = String.Format("Rename completed for {0} Season {1}", series.Title, options.SeasonNumber);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -41,18 +41,18 @@ public TimeSpan DefaultInterval
|
|||||||
get { return TimeSpan.FromTicks(0); }
|
get { return TimeSpan.FromTicks(0); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Start(ProgressNotification notification, int targetId, int secondaryTargetId)
|
public void Start(ProgressNotification notification, dynamic options)
|
||||||
{
|
{
|
||||||
List<Series> seriesToRename;
|
List<Series> seriesToRename;
|
||||||
|
|
||||||
if (targetId <= 0)
|
if (options == null || options.SeriesId <= 0)
|
||||||
{
|
{
|
||||||
seriesToRename = _seriesProvider.GetAllSeries().ToList();
|
seriesToRename = _seriesProvider.GetAllSeries().ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
seriesToRename = new List<Series>{ _seriesProvider.GetSeries(targetId) };
|
seriesToRename = new List<Series>{ _seriesProvider.GetSeries(options.SeriesId) };
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach(var series in seriesToRename)
|
foreach(var series in seriesToRename)
|
||||||
|
@ -45,7 +45,7 @@ public TimeSpan DefaultInterval
|
|||||||
get { return TimeSpan.FromMinutes(25); }
|
get { return TimeSpan.FromMinutes(25); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Start(ProgressNotification notification, int targetId, int secondaryTargetId)
|
public void Start(ProgressNotification notification, dynamic options)
|
||||||
{
|
{
|
||||||
var reports = new List<EpisodeParseResult>();
|
var reports = new List<EpisodeParseResult>();
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ public TimeSpan DefaultInterval
|
|||||||
get { return TimeSpan.FromHours(24); }
|
get { return TimeSpan.FromHours(24); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void Start(ProgressNotification notification, int targetId, int secondaryTargetId)
|
public virtual void Start(ProgressNotification notification, dynamic options)
|
||||||
{
|
{
|
||||||
Logger.Info("Running search history cleanup.");
|
Logger.Info("Running search history cleanup.");
|
||||||
_searchHistoryProvider.Cleanup();
|
_searchHistoryProvider.Cleanup();
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using NLog;
|
using NLog;
|
||||||
using NzbDrone.Core.Model.Notification;
|
using NzbDrone.Core.Model.Notification;
|
||||||
using NzbDrone.Core.Providers;
|
using NzbDrone.Core.Providers;
|
||||||
|
using NzbDrone.Core.Repository;
|
||||||
|
|
||||||
namespace NzbDrone.Core.Jobs
|
namespace NzbDrone.Core.Jobs
|
||||||
{
|
{
|
||||||
@ -37,27 +39,27 @@ public TimeSpan DefaultInterval
|
|||||||
get { return TimeSpan.FromTicks(0); }
|
get { return TimeSpan.FromTicks(0); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void Start(ProgressNotification notification, int targetId, int secondaryTargetId)
|
public virtual void Start(ProgressNotification notification, dynamic options)
|
||||||
{
|
{
|
||||||
if (targetId <= 0)
|
if (options == null || options.SeriesId <= 0)
|
||||||
throw new ArgumentOutOfRangeException("targetId");
|
throw new ArgumentException("options");
|
||||||
|
|
||||||
if (secondaryTargetId < 0)
|
if (options.SeasonNumber < 0)
|
||||||
throw new ArgumentOutOfRangeException("secondaryTargetId");
|
throw new ArgumentException("options.SeasonNumber");
|
||||||
|
|
||||||
//Perform a Partial Season Search - Because a full season search is a waste
|
//Perform a Partial Season Search - Because a full season search is a waste
|
||||||
//3 searches should guarentee results, (24 eps) versus, a potential 4 to get the same eps.
|
//3 searches should guarentee results, (24 eps) versus, a potential 4 to get the same eps.
|
||||||
var successes = _searchProvider.PartialSeasonSearch(notification, targetId, secondaryTargetId);
|
List<int> successes = _searchProvider.PartialSeasonSearch(notification, options.SeriesId, options.SeasonNumber);
|
||||||
|
|
||||||
if (successes.Count == 0)
|
if (successes.Count == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Logger.Debug("Getting episodes from database for series: {0} and season: {1}", targetId, secondaryTargetId);
|
Logger.Debug("Getting episodes from database for series: {0} and season: {1}", options.SeriesId, options.SeasonNumber);
|
||||||
var episodes = _episodeProvider.GetEpisodesBySeason(targetId, secondaryTargetId);
|
List<Episode> episodes = _episodeProvider.GetEpisodesBySeason(options.SeriesId, options.SeasonNumber);
|
||||||
|
|
||||||
if (episodes == null || episodes.Count == 0)
|
if (episodes == null || episodes.Count == 0)
|
||||||
{
|
{
|
||||||
Logger.Warn("No episodes in database found for series: {0} and season: {1}.", targetId, secondaryTargetId);
|
Logger.Warn("No episodes in database found for series: {0} and season: {1}.", options.SeriesId, options.SeasonNumber);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -68,7 +70,7 @@ public virtual void Start(ProgressNotification notification, int targetId, int s
|
|||||||
|
|
||||||
foreach (var episode in episodes.Where(e => !e.Ignored && missingEpisodes.Contains(e.EpisodeNumber)).OrderBy(o => o.EpisodeNumber))
|
foreach (var episode in episodes.Where(e => !e.Ignored && missingEpisodes.Contains(e.EpisodeNumber)).OrderBy(o => o.EpisodeNumber))
|
||||||
{
|
{
|
||||||
_episodeSearchJob.Start(notification, episode.EpisodeId, 0);
|
_episodeSearchJob.Start(notification, new { EpisodeId = episode.EpisodeId });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using NLog;
|
using NLog;
|
||||||
using NzbDrone.Core.Model.Notification;
|
using NzbDrone.Core.Model.Notification;
|
||||||
using NzbDrone.Core.Providers;
|
using NzbDrone.Core.Providers;
|
||||||
|
using NzbDrone.Core.Repository;
|
||||||
|
|
||||||
namespace NzbDrone.Core.Jobs
|
namespace NzbDrone.Core.Jobs
|
||||||
{
|
{
|
||||||
@ -30,19 +32,19 @@ public TimeSpan DefaultInterval
|
|||||||
get { return TimeSpan.FromTicks(0); }
|
get { return TimeSpan.FromTicks(0); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Start(ProgressNotification notification, int targetId, int secondaryTargetId)
|
public void Start(ProgressNotification notification, dynamic options)
|
||||||
{
|
{
|
||||||
if (targetId <= 0)
|
if (options == null || options.SeriesId <= 0)
|
||||||
throw new ArgumentOutOfRangeException("targetId");
|
throw new ArgumentException("options.SeriesId");
|
||||||
|
|
||||||
logger.Debug("Getting seasons from database for series: {0}", targetId);
|
logger.Debug("Getting seasons from database for series: {0}", options.SeriesId);
|
||||||
var seasons = _seasonProvider.GetSeasons(targetId).Where(s => s > 0);
|
IList<int> seasons = _seasonProvider.GetSeasons(options.SeriesId);
|
||||||
|
|
||||||
foreach (var season in seasons)
|
foreach (var season in seasons.Where(s => s > 0))
|
||||||
{
|
{
|
||||||
if (!_seasonProvider.IsIgnored(targetId, season))
|
if (!_seasonProvider.IsIgnored(options.SeriesId, season))
|
||||||
{
|
{
|
||||||
_seasonSearchJob.Start(notification, targetId, season);
|
_seasonSearchJob.Start(notification, new { SeriesId = options.SeriesId, SeasonNumber = season });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,7 @@ public TimeSpan DefaultInterval
|
|||||||
get { return TimeSpan.FromDays(1); }
|
get { return TimeSpan.FromDays(1); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void Start(ProgressNotification notification, int targetId, int secondaryTargetId)
|
public virtual void Start(ProgressNotification notification, dynamic options)
|
||||||
{
|
{
|
||||||
_logProvider.Trim();
|
_logProvider.Trim();
|
||||||
}
|
}
|
||||||
|
@ -41,16 +41,16 @@ public TimeSpan DefaultInterval
|
|||||||
get { return TimeSpan.FromHours(12); }
|
get { return TimeSpan.FromHours(12); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void Start(ProgressNotification notification, int targetId, int secondaryTargetId)
|
public virtual void Start(ProgressNotification notification, dynamic options)
|
||||||
{
|
{
|
||||||
IList<Series> seriesToUpdate;
|
IList<Series> seriesToUpdate;
|
||||||
if (targetId == 0)
|
if (options == null || options.SeriesId == 0)
|
||||||
{
|
{
|
||||||
seriesToUpdate = _seriesProvider.GetAllSeries().OrderBy(o => SortHelper.SkipArticles(o.Title)).ToList();
|
seriesToUpdate = _seriesProvider.GetAllSeries().OrderBy(o => SortHelper.SkipArticles(o.Title)).ToList();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
seriesToUpdate = new List<Series> { _seriesProvider.GetSeries(targetId) };
|
seriesToUpdate = new List<Series> { _seriesProvider.GetSeries(options.SeriesId) };
|
||||||
}
|
}
|
||||||
|
|
||||||
//Update any Daily Series in the DB with the IsDaily flag
|
//Update any Daily Series in the DB with the IsDaily flag
|
||||||
|
@ -29,7 +29,7 @@ public TimeSpan DefaultInterval
|
|||||||
get { return TimeSpan.FromHours(12); }
|
get { return TimeSpan.FromHours(12); }
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual void Start(ProgressNotification notification, int targetId, int secondaryTargetId)
|
public virtual void Start(ProgressNotification notification, dynamic options)
|
||||||
{
|
{
|
||||||
_sceneNameMappingProvider.UpdateMappings();
|
_sceneNameMappingProvider.UpdateMappings();
|
||||||
}
|
}
|
||||||
|
@ -5,20 +5,18 @@ namespace NzbDrone.Core.Model
|
|||||||
public class JobQueueItem : IEquatable<JobQueueItem>
|
public class JobQueueItem : IEquatable<JobQueueItem>
|
||||||
{
|
{
|
||||||
public Type JobType { get; set; }
|
public Type JobType { get; set; }
|
||||||
public int TargetId { get; set; }
|
public dynamic Options { get; set; }
|
||||||
public int SecondaryTargetId { get; set; }
|
|
||||||
|
|
||||||
public JobSourceType Source { get; set; }
|
public JobSourceType Source { get; set; }
|
||||||
|
|
||||||
public bool Equals(JobQueueItem other)
|
public bool Equals(JobQueueItem other)
|
||||||
{
|
{
|
||||||
return (JobType == other.JobType && TargetId == other.TargetId
|
return (JobType == other.JobType && Options == other.Options);
|
||||||
&& SecondaryTargetId == other.SecondaryTargetId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
return string.Format("[{0}({1}, {2})]", JobType.Name, TargetId, SecondaryTargetId);
|
return string.Format("[{0}({1})]", JobType.Name, Options);
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum JobSourceType
|
public enum JobSourceType
|
||||||
|
@ -26,7 +26,7 @@ public JsonResult Search(int episodeId)
|
|||||||
|
|
||||||
public JsonResult SearchSeason(int seriesId, int seasonNumber)
|
public JsonResult SearchSeason(int seriesId, int seasonNumber)
|
||||||
{
|
{
|
||||||
_jobProvider.QueueJob(typeof(SeasonSearchJob), seriesId, seasonNumber);
|
_jobProvider.QueueJob(typeof(SeasonSearchJob), new { SeriesId = seriesId, SeasonNumber = seasonNumber });
|
||||||
return JsonNotificationResult.Queued("Season search");
|
return JsonNotificationResult.Queued("Season search");
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -40,7 +40,7 @@ public JsonResult BacklogSeries(int seriesId)
|
|||||||
|
|
||||||
public JsonResult RenameSeason(int seriesId, int seasonNumber)
|
public JsonResult RenameSeason(int seriesId, int seasonNumber)
|
||||||
{
|
{
|
||||||
_jobProvider.QueueJob(typeof(RenameSeasonJob), seriesId, seasonNumber);
|
_jobProvider.QueueJob(typeof(RenameSeasonJob), new { SeriesId = seriesId, SeasonNumber = seasonNumber });
|
||||||
return JsonNotificationResult.Queued("Season rename");
|
return JsonNotificationResult.Queued("Season rename");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -80,7 +80,7 @@ public EmptyResult SaveSingleSeriesEditor(SeriesModel seriesModel)
|
|||||||
[HttpPost]
|
[HttpPost]
|
||||||
public EmptyResult DeleteSeries(int seriesId, bool deleteFiles)
|
public EmptyResult DeleteSeries(int seriesId, bool deleteFiles)
|
||||||
{
|
{
|
||||||
_jobProvider.QueueJob(typeof(DeleteSeriesJob), seriesId, Convert.ToInt32(deleteFiles));
|
_jobProvider.QueueJob(typeof(DeleteSeriesJob), new { SeriesId = seriesId, DeleteFiles = deleteFiles });
|
||||||
|
|
||||||
return new EmptyResult();
|
return new EmptyResult();
|
||||||
}
|
}
|
||||||
|
@ -41,8 +41,7 @@ public ActionResult Jobs()
|
|||||||
var queue = _jobProvider.Queue.Select(c => new JobQueueItemModel
|
var queue = _jobProvider.Queue.Select(c => new JobQueueItemModel
|
||||||
{
|
{
|
||||||
Name = c.JobType.Name,
|
Name = c.JobType.Name,
|
||||||
TargetId = c.TargetId,
|
Options = c.Options
|
||||||
SecondaryTargetId = c.SecondaryTargetId
|
|
||||||
});
|
});
|
||||||
|
|
||||||
var serializedQueue = new JavaScriptSerializer().Serialize(queue);
|
var serializedQueue = new JavaScriptSerializer().Serialize(queue);
|
||||||
|
@ -7,7 +7,6 @@ namespace NzbDrone.Web.Models
|
|||||||
public class JobQueueItemModel
|
public class JobQueueItemModel
|
||||||
{
|
{
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public int TargetId { get; set; }
|
public dynamic Options { get; set; }
|
||||||
public int SecondaryTargetId { get; set; }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user