using System; using System.Collections.Generic; using System.Linq; using System.Threading; using System.Web; using System.Web.Mvc; using NzbDrone.Core.Providers; using NzbDrone.Core.Repository; using NzbDrone.Web.Models; using Telerik.Web.Mvc; namespace NzbDrone.Web.Controllers { [HandleError] public class SeriesController : Controller { private readonly ISeriesProvider _seriesProvider; private readonly IEpisodeProvider _episodeProvider; private readonly ISyncProvider _syncProvider; // // GET: /Series/ public SeriesController(ISyncProvider syncProvider, ISeriesProvider seriesProvider, IEpisodeProvider episodeProvider) { _seriesProvider = seriesProvider; _episodeProvider = episodeProvider; _syncProvider = syncProvider; } public ActionResult Index() { ViewData.Model = _seriesProvider.GetAllSeries().ToList(); return View(); } public ActionResult Sync() { _syncProvider.BeginSyncUnmappedFolders(); return RedirectToAction("Index"); } public ActionResult UnMapped() { return View(_seriesProvider.GetUnmappedFolders()); } public ActionResult LoadEpisodes(int seriesId) { _episodeProvider.RefreshEpisodeInfo(seriesId); return RedirectToAction("Details", new { seriesId = seriesId }); } [GridAction] public ActionResult _AjaxSeasonGrid(int seasonId) { var episodes = _episodeProvider.GetEpisodeBySeason(seasonId).Select(c => new EpisodeModel() { EpisodeId = c.EpisodeId, EpisodeNumber = c.EpisodeNumber, SeasonNumber = c.SeasonNumber, Title = c.Title, Overview = c.Overview, AirDate = c.AirDate }); return View(new GridModel(episodes)); } [GridAction] public ActionResult _CustomBinding(GridCommand command, int seasonId) { IEnumerable data = GetData(command); return View(new GridModel { Data = data, Total = data.Count() }); } private IEnumerable GetData(GridCommand command) { return null; /* IQueryable data = .Orders; //Apply filtering if (command.FilterDescriptors.Any()) { data = data.Where(ExpressionBuilder.Expression(command.FilterDescriptors)); } // Apply sorting foreach (SortDescriptor sortDescriptor in command.SortDescriptors) { if (sortDescriptor.SortDirection == ListSortDirection.Ascending) { switch (sortDescriptor.Member) { case "OrderID": data = data.OrderBy(ExpressionBuilder.Expression(sortDescriptor.Member)); break; case "Customer.ContactName": data = data.OrderBy(order => order.Customer.ContactName); break; case "ShipAddress": data = data.OrderBy(order => order.ShipAddress); break; case "OrderDate": data = data.OrderBy(order => order.OrderDate); break; } } else { switch (sortDescriptor.Member) { case "OrderID": data = data.OrderByDescending(order => order.OrderID); break; case "Customer.ContactName": data = data.OrderByDescending(order => order.Customer.ContactName); break; case "ShipAddress": data = data.OrderByDescending(order => order.ShipAddress); break; case "OrderDate": data = data.OrderByDescending(order => order.OrderDate); break; } } } count = data.Count(); // ... and paging if (command.PageSize > 0) { data = data.Skip((command.Page - 1) * command.PageSize); } data = data.Take(command.PageSize); return data;*/ } // // GET: /Series/Details/5 public ActionResult Details(int seriesId) { return View(_seriesProvider.GetSeries(seriesId)); } } }