Lidarr/NzbDrone.Web/Controllers/UpcomingController.cs

62 lines
2.3 KiB
C#
Raw Normal View History

using System;
using System.Collections.Generic;
using System.Linq;
2011-03-23 07:06:22 +00:00
using System.Web.Mvc;
using NzbDrone.Core;
2011-03-23 07:06:22 +00:00
using NzbDrone.Core.Providers;
using NzbDrone.Core.Repository;
2011-03-23 07:06:22 +00:00
using NzbDrone.Web.Models;
namespace NzbDrone.Web.Controllers
{
public class UpcomingController : Controller
{
2011-04-10 02:44:01 +00:00
private readonly UpcomingEpisodesProvider _upcomingEpisodesProvider;
2011-03-23 07:06:22 +00:00
public UpcomingController(UpcomingEpisodesProvider upcomingEpisodesProvider)
2011-03-23 07:06:22 +00:00
{
_upcomingEpisodesProvider = upcomingEpisodesProvider;
}
//
// GET: /Upcoming/
public ActionResult Index()
{
var upcoming = new UpcomingEpisodesModel
{
Yesterday = GetUpcomingEpisodeModels(_upcomingEpisodesProvider.Yesterday()),
Today = GetUpcomingEpisodeModels(_upcomingEpisodesProvider.Today()),
Tomorrow = GetUpcomingEpisodeModels(_upcomingEpisodesProvider.Tomorrow()),
Week = GetUpcomingEpisodeModels(_upcomingEpisodesProvider.Week())
};
return View(upcoming);
2011-03-23 07:06:22 +00:00
}
private List<UpcomingEpisodeModel> GetUpcomingEpisodeModels(List<Episode> episodes)
2011-03-23 07:06:22 +00:00
{
return episodes.Select(u => new UpcomingEpisodeModel
{
SeriesId = u.Series.SeriesId,
EpisodeId = u.EpisodeId,
SeriesTitle = u.Series.Title,
EpisodeNumbering = String.Format("{0}x{1:00}", u.SeasonNumber, u.EpisodeNumber),
Title = u.Title,
Overview = u.Overview,
AirDateTime = GetDateTime(u.AirDate.Value, u.Series.AirTimes),
AirDate = u.AirDate.Value.ToBestDateString(),
AirTime = String.IsNullOrEmpty(u.Series.AirTimes) ? "?" : Convert.ToDateTime(u.Series.AirTimes).ToShortTimeString(),
Status = u.Status.ToString()
}).OrderBy(e => e.AirDateTime).ToList();
2011-03-23 07:06:22 +00:00
}
private DateTime GetDateTime(DateTime airDate, string airTime)
{
if (String.IsNullOrWhiteSpace(airTime))
return airDate;
return airDate.Add(Convert.ToDateTime(airTime).TimeOfDay);
}
2011-03-23 07:06:22 +00:00
}
2011-04-10 02:44:01 +00:00
}