From 86ab26e2d9bb0bbfae0971176dd34d507634080f Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Sun, 19 Jun 2011 20:08:09 -0700 Subject: [PATCH] UpcomingProvider now gets Series in call for episodes. --- .../Providers/UpcomingEpisodesProvider.cs | 22 +++- NzbDrone.Core/Repository/Episode.cs | 2 +- .../Controllers/UpcomingController.cs | 112 +++++++----------- 3 files changed, 57 insertions(+), 79 deletions(-) diff --git a/NzbDrone.Core/Providers/UpcomingEpisodesProvider.cs b/NzbDrone.Core/Providers/UpcomingEpisodesProvider.cs index 2b0d9c9f1..423f33947 100644 --- a/NzbDrone.Core/Providers/UpcomingEpisodesProvider.cs +++ b/NzbDrone.Core/Providers/UpcomingEpisodesProvider.cs @@ -20,8 +20,10 @@ namespace NzbDrone.Core.Providers public virtual UpcomingEpisodesModel Upcoming() { - var allEps = _database.Fetch("WHERE AirDate BETWEEN @0 AND @1", DateTime.Today.AddDays(-1), - DateTime.Today.AddDays(8)); + var allEps = _database.Fetch(@"SELECT * FROM Episodes + INNER JOIN Series ON Episodes.SeriesId = Series.SeriesId + WHERE AirDate BETWEEN @0 AND @1", + DateTime.Today.AddDays(-1), DateTime.Today.AddDays(8)); var yesterday = allEps.Where(e => e.AirDate == DateTime.Today.AddDays(-1)).ToList(); var today = allEps.Where(e => e.AirDate == DateTime.Today).ToList(); @@ -32,22 +34,30 @@ namespace NzbDrone.Core.Providers public virtual List Yesterday() { - return _database.Fetch("WHERE AirDate = @0", DateTime.Today.AddDays(-1)); + return _database.Fetch(@"SELECT * FROM Episodes + INNER JOIN Series ON Episodes.SeriesId = Series.SeriesId + WHERE AirDate = @0", DateTime.Today.AddDays(-1)); } public virtual List Today() { - return _database.Fetch("WHERE AirDate = @0", DateTime.Today); + return _database.Fetch(@"SELECT * FROM Episodes + INNER JOIN Series ON Episodes.SeriesId = Series.SeriesId + WHERE AirDate = @0", DateTime.Today); } public virtual List Tomorrow() { - return _database.Fetch("WHERE AirDate = @0", DateTime.Today.AddDays(1)); + return _database.Fetch(@"SELECT * FROM Episodes + INNER JOIN Series ON Episodes.SeriesId = Series.SeriesId + WHERE AirDate = @0", DateTime.Today.AddDays(1)); } public virtual List Week() { - return _database.Fetch("WHERE AirDate BETWEEN @0 AND @1", DateTime.Today.AddDays(2), DateTime.Today.AddDays(8)); + return _database.Fetch(@"SELECT * FROM Episodes + INNER JOIN Series ON Episodes.SeriesId = Series.SeriesId + WHERE AirDate BETWEEN @0 AND @1", DateTime.Today.AddDays(2), DateTime.Today.AddDays(8)); } } } \ No newline at end of file diff --git a/NzbDrone.Core/Repository/Episode.cs b/NzbDrone.Core/Repository/Episode.cs index 6e482e2ec..f5ce16816 100644 --- a/NzbDrone.Core/Repository/Episode.cs +++ b/NzbDrone.Core/Repository/Episode.cs @@ -32,7 +32,7 @@ namespace NzbDrone.Core.Repository /// public DateTime? GrabDate { get; set; } - [Ignore] + [ResultColumn] public EpisodeStatusType Status { get diff --git a/NzbDrone.Web/Controllers/UpcomingController.cs b/NzbDrone.Web/Controllers/UpcomingController.cs index d5c02f4a4..3ca9d69e6 100644 --- a/NzbDrone.Web/Controllers/UpcomingController.cs +++ b/NzbDrone.Web/Controllers/UpcomingController.cs @@ -30,25 +30,17 @@ namespace NzbDrone.Web.Controllers [GridAction] public ActionResult _AjaxBindingYesterday() { - var upcomingDb = _upcomingEpisodesProvider.Yesterday(); - var upcoming = new List(); - - foreach (var item in upcomingDb) + var upcoming = _upcomingEpisodesProvider.Yesterday().Select(u => new UpcomingEpisodeModel { - var series = _seriesProvider.GetSeries(item.SeriesId); - - upcoming.Add(new UpcomingEpisodeModel - { - SeriesId = series.SeriesId, - EpisodeId = item.EpisodeId, - SeriesName = series.Title, - SeasonNumber = item.SeasonNumber, - EpisodeNumber = item.EpisodeNumber, - Title = item.Title, - Overview = item.Overview, - AirDate = item.AirDate.Add(Convert.ToDateTime(series.AirTimes).TimeOfDay) - }); - } + SeriesId = u.Series.SeriesId, + EpisodeId = u.EpisodeId, + SeriesName = u.Series.Title, + SeasonNumber = u.SeasonNumber, + EpisodeNumber = u.EpisodeNumber, + Title = u.Title, + Overview = u.Overview, + AirDate = u.AirDate.Add(Convert.ToDateTime(u.Series.AirTimes).TimeOfDay) + }); return View(new GridModel(upcoming)); } @@ -56,25 +48,17 @@ namespace NzbDrone.Web.Controllers [GridAction] public ActionResult _AjaxBindingToday() { - var upcomingDb = _upcomingEpisodesProvider.Today(); - var upcoming = new List(); - - foreach (var item in upcomingDb) + var upcoming = _upcomingEpisodesProvider.Today().Select(u => new UpcomingEpisodeModel { - var series = _seriesProvider.GetSeries(item.SeriesId); - - upcoming.Add(new UpcomingEpisodeModel - { - SeriesId = series.SeriesId, - EpisodeId = item.EpisodeId, - SeriesName = series.Title, - SeasonNumber = item.SeasonNumber, - EpisodeNumber = item.EpisodeNumber, - Title = item.Title, - Overview = item.Overview, - AirDate = item.AirDate.Add(Convert.ToDateTime(series.AirTimes).TimeOfDay) - }); - } + SeriesId = u.Series.SeriesId, + EpisodeId = u.EpisodeId, + SeriesName = u.Series.Title, + SeasonNumber = u.SeasonNumber, + EpisodeNumber = u.EpisodeNumber, + Title = u.Title, + Overview = u.Overview, + AirDate = u.AirDate.Add(Convert.ToDateTime(u.Series.AirTimes).TimeOfDay) + }); return View(new GridModel(upcoming)); } @@ -82,25 +66,17 @@ namespace NzbDrone.Web.Controllers [GridAction] public ActionResult _AjaxBindingTomorrow() { - var upcomingDb = _upcomingEpisodesProvider.Tomorrow(); - var upcoming = new List(); - - foreach (var item in upcomingDb) + var upcoming = _upcomingEpisodesProvider.Tomorrow().Select(u => new UpcomingEpisodeModel { - var series = _seriesProvider.GetSeries(item.SeriesId); - - upcoming.Add(new UpcomingEpisodeModel - { - SeriesId = series.SeriesId, - EpisodeId = item.EpisodeId, - SeriesName = series.Title, - SeasonNumber = item.SeasonNumber, - EpisodeNumber = item.EpisodeNumber, - Title = item.Title, - Overview = item.Overview, - AirDate = item.AirDate.Add(Convert.ToDateTime(series.AirTimes).TimeOfDay) - }); - } + SeriesId = u.Series.SeriesId, + EpisodeId = u.EpisodeId, + SeriesName = u.Series.Title, + SeasonNumber = u.SeasonNumber, + EpisodeNumber = u.EpisodeNumber, + Title = u.Title, + Overview = u.Overview, + AirDate = u.AirDate.Add(Convert.ToDateTime(u.Series.AirTimes).TimeOfDay) + }); return View(new GridModel(upcoming)); } @@ -108,25 +84,17 @@ namespace NzbDrone.Web.Controllers [GridAction] public ActionResult _AjaxBindingWeek() { - var upcomingDb = _upcomingEpisodesProvider.Week(); - var upcoming = new List(); - - foreach (var item in upcomingDb) + var upcoming = _upcomingEpisodesProvider.Week().Select(u => new UpcomingEpisodeModel { - var series = _seriesProvider.GetSeries(item.SeriesId); - - upcoming.Add(new UpcomingEpisodeModel - { - SeriesId = series.SeriesId, - EpisodeId = item.EpisodeId, - SeriesName = series.Title, - SeasonNumber = item.SeasonNumber, - EpisodeNumber = item.EpisodeNumber, - Title = item.Title, - Overview = item.Overview, - AirDate = item.AirDate.Add(Convert.ToDateTime(series.AirTimes).TimeOfDay) - }); - } + SeriesId = u.Series.SeriesId, + EpisodeId = u.EpisodeId, + SeriesName = u.Series.Title, + SeasonNumber = u.SeasonNumber, + EpisodeNumber = u.EpisodeNumber, + Title = u.Title, + Overview = u.Overview, + AirDate = u.AirDate.Add(Convert.ToDateTime(u.Series.AirTimes).TimeOfDay) + }); return View(new GridModel(upcoming)); }