2011-11-22 06:55:09 +00:00
using System ;
using System.IO ;
using System.Linq ;
2011-11-14 06:01:51 +00:00
using System.Web.Mvc ;
2011-11-22 06:55:09 +00:00
using NzbDrone.Common ;
2011-12-02 01:33:17 +00:00
using NzbDrone.Core.Jobs ;
2011-11-14 06:01:51 +00:00
using NzbDrone.Core.Providers ;
using NzbDrone.Core.Providers.Jobs ;
using NzbDrone.Web.Models ;
namespace NzbDrone.Web.Controllers
{
public class UpdateController : Controller
{
private readonly UpdateProvider _updateProvider ;
private readonly JobProvider _jobProvider ;
2011-11-22 06:55:09 +00:00
private readonly EnviromentProvider _enviromentProvider ;
private readonly DiskProvider _diskProvider ;
2011-11-14 06:01:51 +00:00
2011-11-22 06:55:09 +00:00
public UpdateController ( UpdateProvider updateProvider , JobProvider jobProvider ,
EnviromentProvider enviromentProvider , DiskProvider diskProvider )
2011-11-14 06:01:51 +00:00
{
_updateProvider = updateProvider ;
_jobProvider = jobProvider ;
2011-11-22 06:55:09 +00:00
_enviromentProvider = enviromentProvider ;
_diskProvider = diskProvider ;
2011-11-14 06:01:51 +00:00
}
public ActionResult Index ( )
{
2011-11-22 06:55:09 +00:00
var updateModel = new UpdateModel ( ) ;
updateModel . UpdatePackage = _updateProvider . GetAvilableUpdate ( ) ;
updateModel . LogFiles = _updateProvider . UpdateLogFile ( ) ;
updateModel . LogFolder = _enviromentProvider . GetUpdateLogFolder ( ) ;
return View ( updateModel ) ;
2011-11-14 06:01:51 +00:00
}
public ActionResult StartUpdate ( )
{
_jobProvider . QueueJob ( typeof ( AppUpdateJob ) , 0 , 0 ) ;
2011-11-22 06:55:09 +00:00
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 ( ) ;
2011-11-14 06:01:51 +00:00
}
}
}