You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Lidarr/NzbDrone.Web/Controllers/UpdateController.cs

52 lines
1.7 KiB

using System;
using System.IO;
using System.Linq;
using System.Web.Mvc;
using NzbDrone.Common;
using NzbDrone.Core.Jobs;
using NzbDrone.Core.Providers;
using NzbDrone.Web.Models;
namespace NzbDrone.Web.Controllers
{
public class UpdateController : Controller
{
private readonly UpdateProvider _updateProvider;
private readonly JobProvider _jobProvider;
private readonly EnviromentProvider _enviromentProvider;
private readonly DiskProvider _diskProvider;
public UpdateController(UpdateProvider updateProvider, JobProvider jobProvider,
EnviromentProvider enviromentProvider, DiskProvider diskProvider)
{
_updateProvider = updateProvider;
_jobProvider = jobProvider;
_enviromentProvider = enviromentProvider;
_diskProvider = diskProvider;
}
public ActionResult Index()
{
var updateModel = new UpdateModel();
updateModel.UpdatePackage = _updateProvider.GetAvilableUpdate();
updateModel.LogFiles = _updateProvider.UpdateLogFile();
updateModel.LogFolder = _enviromentProvider.GetUpdateLogFolder();
return View(updateModel);
}
public ActionResult StartUpdate()
{
_jobProvider.QueueJob(typeof(AppUpdateJob), 0, 0);
return Json(new NotificationResult { Title = "Update will begin shortly", NotificationType = NotificationType.Info, Text = "NzbDrone will restart automatically." });
}
public ActionResult ViewLog( string filepath)
{
ViewBag.Log = _diskProvider.ReadAllText(filepath).Replace(Environment.NewLine, "<br/>");
return View();
}
}
}