From 1d31c1687c0ab3ec50f5769d7386b53a569d11ce Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Mon, 10 Oct 2011 18:11:22 -0700 Subject: [PATCH] Fixed issue with invalid AirTimes for series causing Upcoming Views to fail. --- .../Controllers/UpcomingController.cs | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/NzbDrone.Web/Controllers/UpcomingController.cs b/NzbDrone.Web/Controllers/UpcomingController.cs index cbcad6395..9f887bf2a 100644 --- a/NzbDrone.Web/Controllers/UpcomingController.cs +++ b/NzbDrone.Web/Controllers/UpcomingController.cs @@ -38,9 +38,9 @@ namespace NzbDrone.Web.Controllers EpisodeNumber = u.EpisodeNumber, Title = u.Title, Overview = u.Overview, - AirDateTime = u.AirDate.Value.Add(Convert.ToDateTime(u.Series.AirTimes).TimeOfDay), + AirDateTime = GetDateTime(u.AirDate.Value, u.Series.AirTimes), AirDate = u.AirDate.Value.ToBestDateString(), - AirTime = Convert.ToDateTime(u.Series.AirTimes).ToShortTimeString(), + AirTime = String.IsNullOrEmpty(u.Series.AirTimes) ? "?" : Convert.ToDateTime(u.Series.AirTimes).ToShortTimeString(), Status = u.Status.ToString() }); @@ -59,9 +59,9 @@ namespace NzbDrone.Web.Controllers EpisodeNumber = u.EpisodeNumber, Title = u.Title, Overview = u.Overview, - AirDateTime = u.AirDate.Value.Add(Convert.ToDateTime(u.Series.AirTimes).TimeOfDay), + AirDateTime = GetDateTime(u.AirDate.Value, u.Series.AirTimes), AirDate = u.AirDate.Value.ToBestDateString(), - AirTime = Convert.ToDateTime(u.Series.AirTimes).ToShortTimeString(), + AirTime = String.IsNullOrEmpty(u.Series.AirTimes) ? "?" : Convert.ToDateTime(u.Series.AirTimes).ToShortTimeString(), Status = u.Status.ToString() }); @@ -80,9 +80,9 @@ namespace NzbDrone.Web.Controllers EpisodeNumber = u.EpisodeNumber, Title = u.Title, Overview = u.Overview, - AirDateTime = u.AirDate.Value.Add(Convert.ToDateTime(u.Series.AirTimes).TimeOfDay), + AirDateTime = GetDateTime(u.AirDate.Value, u.Series.AirTimes), AirDate = u.AirDate.Value.ToBestDateString(), - AirTime = Convert.ToDateTime(u.Series.AirTimes).ToShortTimeString(), + AirTime = String.IsNullOrEmpty(u.Series.AirTimes) ? "?" : Convert.ToDateTime(u.Series.AirTimes).ToShortTimeString(), Status = u.Status.ToString() }); @@ -101,13 +101,21 @@ namespace NzbDrone.Web.Controllers EpisodeNumber = u.EpisodeNumber, Title = u.Title, Overview = u.Overview, - AirDateTime = u.AirDate.Value.Add(Convert.ToDateTime(u.Series.AirTimes).TimeOfDay), + AirDateTime = GetDateTime(u.AirDate.Value, u.Series.AirTimes), AirDate = u.AirDate.Value.ToBestDateString(), - AirTime = Convert.ToDateTime(u.Series.AirTimes).ToShortTimeString(), + AirTime = String.IsNullOrEmpty(u.Series.AirTimes) ? "?" : Convert.ToDateTime(u.Series.AirTimes).ToShortTimeString(), Status = u.Status.ToString() }); return View(new GridModel(upcoming)); } + + private DateTime GetDateTime(DateTime airDate, string airTime) + { + if (String.IsNullOrWhiteSpace(airTime)) + return airDate; + + return airDate.Add(Convert.ToDateTime(airTime).TimeOfDay); + } } } \ No newline at end of file