diff options
Diffstat (limited to 'MediaBrowser.Api/SystemService.cs')
| -rw-r--r-- | MediaBrowser.Api/SystemService.cs | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/MediaBrowser.Api/SystemService.cs b/MediaBrowser.Api/SystemService.cs index cf0be35a2..55e8ee693 100644 --- a/MediaBrowser.Api/SystemService.cs +++ b/MediaBrowser.Api/SystemService.cs @@ -1,4 +1,5 @@ using MediaBrowser.Common.Extensions; +using MediaBrowser.Common.Kernel; using MediaBrowser.Controller; using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Serialization; @@ -29,6 +30,11 @@ namespace MediaBrowser.Api { } + [Route("/System/Shutdown", "POST")] + public class ShutdownApplication + { + } + /// <summary> /// Class GetConfiguration /// </summary> @@ -62,18 +68,29 @@ namespace MediaBrowser.Api private readonly IJsonSerializer _jsonSerializer; /// <summary> + /// The _app host + /// </summary> + private readonly IApplicationHost _appHost; + + /// <summary> /// Initializes a new instance of the <see cref="SystemService" /> class. /// </summary> /// <param name="jsonSerializer">The json serializer.</param> + /// <param name="appHost">The app host.</param> /// <exception cref="System.ArgumentNullException">jsonSerializer</exception> - public SystemService(IJsonSerializer jsonSerializer) + public SystemService(IJsonSerializer jsonSerializer, IApplicationHost appHost) : base() { if (jsonSerializer == null) { throw new ArgumentNullException("jsonSerializer"); } + if (appHost == null) + { + throw new ArgumentNullException("appHost"); + } + _appHost = appHost; _jsonSerializer = jsonSerializer; } @@ -119,6 +136,19 @@ namespace MediaBrowser.Api } /// <summary> + /// Posts the specified request. + /// </summary> + /// <param name="request">The request.</param> + public void Post(ShutdownApplication request) + { + Task.Run(async () => + { + await Task.Delay(100); + _appHost.Shutdown(); + }); + } + + /// <summary> /// Posts the specified configuraiton. /// </summary> /// <param name="request">The request.</param> |
