Radarr/src/NzbDrone.Host/Owin/OwinHostController.cs

51 lines
1.5 KiB
C#
Raw Normal View History

using System;
2013-02-19 01:13:42 +00:00
using NLog;
2013-08-30 22:55:01 +00:00
using NzbDrone.Common.EnvironmentInfo;
2017-01-05 19:42:02 +00:00
using Radarr.Host.AccessControl;
2013-02-19 01:13:42 +00:00
2017-01-05 19:42:02 +00:00
namespace Radarr.Host.Owin
2013-02-19 01:13:42 +00:00
{
public class OwinHostController : IHostController
2013-02-19 01:13:42 +00:00
{
2014-08-24 18:24:43 +00:00
private readonly IOwinAppFactory _owinAppFactory;
private readonly IRemoteAccessAdapter _removeAccessAdapter;
2013-08-30 22:55:01 +00:00
private readonly IUrlAclAdapter _urlAclAdapter;
2013-02-19 01:13:42 +00:00
private readonly Logger _logger;
2014-08-24 18:24:43 +00:00
private IDisposable _owinApp;
2013-02-19 01:13:42 +00:00
2014-08-24 18:24:43 +00:00
public OwinHostController(
IOwinAppFactory owinAppFactory,
IRemoteAccessAdapter removeAccessAdapter,
2013-09-22 19:57:03 +00:00
IUrlAclAdapter urlAclAdapter,
Logger logger)
2013-02-19 01:13:42 +00:00
{
2014-08-24 18:24:43 +00:00
_owinAppFactory = owinAppFactory;
_removeAccessAdapter = removeAccessAdapter;
2013-08-30 22:55:01 +00:00
_urlAclAdapter = urlAclAdapter;
2013-02-19 01:13:42 +00:00
_logger = logger;
}
public void StartServer()
{
_removeAccessAdapter.MakeAccessible(true);
_logger.Info("Listening on the following URLs:");
2014-08-24 18:24:43 +00:00
foreach (var url in _urlAclAdapter.Urls)
2013-09-22 19:57:03 +00:00
{
_logger.Info(" {0}", url);
2013-09-22 19:57:03 +00:00
}
2014-08-24 18:24:43 +00:00
_owinApp = _owinAppFactory.CreateApp(_urlAclAdapter.Urls);
}
2013-02-19 01:13:42 +00:00
public void StopServer()
{
2014-08-24 18:24:43 +00:00
if (_owinApp == null) return;
2013-02-19 01:13:42 +00:00
2014-08-24 18:24:43 +00:00
_logger.Info("Attempting to stop OWIN host");
_owinApp.Dispose();
_owinApp = null;
2013-02-19 01:13:42 +00:00
_logger.Info("Host has stopped");
}
}
}