92 lines
2.7 KiB
C#
92 lines
2.7 KiB
C#
using System;
|
|
using System.Linq;
|
|
using System.Web;
|
|
using System.Web.Mvc;
|
|
using Newtonsoft.Json;
|
|
using NzbDrone.Services.Service.Providers;
|
|
using NzbDrone.Services.Service.Repository;
|
|
|
|
namespace NzbDrone.Services.Service.Controllers
|
|
{
|
|
public class SceneMappingController : Controller
|
|
{
|
|
private readonly SceneMappingProvider _sceneMappingProvider;
|
|
|
|
public SceneMappingController(SceneMappingProvider sceneMappingProvider)
|
|
{
|
|
_sceneMappingProvider = sceneMappingProvider;
|
|
}
|
|
|
|
[HttpGet]
|
|
[OutputCache(CacheProfile = "Cache1Hour")]
|
|
public JsonResult Active()
|
|
{
|
|
var mappings = _sceneMappingProvider.AllLive();
|
|
|
|
return Json(mappings, JsonRequestBehavior.AllowGet);
|
|
}
|
|
|
|
[HttpGet]
|
|
[Authorize(Roles = "Users")]
|
|
public ActionResult Pending()
|
|
{
|
|
var mappings = _sceneMappingProvider.AllPending();
|
|
var serialized = JsonConvert.SerializeObject(mappings);
|
|
|
|
return View((object)serialized);
|
|
}
|
|
|
|
[HttpPost]
|
|
[Authorize(Roles = "Users")]
|
|
public string UpdatePending(int id, string value, int columnId)
|
|
{
|
|
var mapping = _sceneMappingProvider.GetPending(id);
|
|
|
|
if (columnId == 0)
|
|
mapping.CleanTitle = value.Trim();
|
|
|
|
if (columnId == 1)
|
|
mapping.Id = Int32.Parse(value);
|
|
|
|
if (columnId == 2)
|
|
mapping.Title = value.Trim();
|
|
|
|
_sceneMappingProvider.Update(mapping);
|
|
|
|
return value;
|
|
}
|
|
|
|
[HttpPost]
|
|
public JsonResult AddPending(string cleanTitle, int id, string title)
|
|
{
|
|
_sceneMappingProvider.Insert(new PendingSceneMapping { CleanTitle = cleanTitle, Id = id, Title = title });
|
|
|
|
return Json("Ok", JsonRequestBehavior.AllowGet);
|
|
}
|
|
|
|
[Authorize(Roles = "Users")]
|
|
public JsonResult Promote(int mappingId)
|
|
{
|
|
_sceneMappingProvider.Promote(mappingId);
|
|
HttpResponse.RemoveOutputCacheItem(VirtualPathUtility.ToAbsolute("~/SceneMapping/Active"));
|
|
|
|
return Json("Ok", JsonRequestBehavior.AllowGet);
|
|
}
|
|
|
|
[Authorize(Roles = "Users")]
|
|
public JsonResult PromoteAll()
|
|
{
|
|
_sceneMappingProvider.PromoteAll();
|
|
return Json("Ok", JsonRequestBehavior.AllowGet);
|
|
}
|
|
|
|
[Authorize(Roles = "Users")]
|
|
public JsonResult Delete(int mappingId)
|
|
{
|
|
_sceneMappingProvider.DeletePending(mappingId);
|
|
HttpResponse.RemoveOutputCacheItem(VirtualPathUtility.ToAbsolute("~/SceneMapping/Active"));
|
|
|
|
return Json("Ok", JsonRequestBehavior.AllowGet);
|
|
}
|
|
}
|
|
} |