1
0
mirror of https://github.com/Artemis-RGB/Artemis synced 2025-12-13 05:48:35 +00:00
Artemis/src/Artemis.UI/Controllers/RemoteController.cs
2022-09-03 10:34:53 +02:00

40 lines
1.0 KiB
C#

using System;
using Artemis.Core;
using Artemis.Core.Services;
using Artemis.UI.Shared.Services.MainWindow;
using Avalonia.Threading;
using EmbedIO;
using EmbedIO.Routing;
using EmbedIO.WebApi;
namespace Artemis.UI.Controllers;
public class RemoteController : WebApiController
{
private readonly ICoreService _coreService;
private readonly IMainWindowService _mainWindowService;
public RemoteController(ICoreService coreService, IMainWindowService mainWindowService)
{
_coreService = coreService;
_mainWindowService = mainWindowService;
}
[Route(HttpVerbs.Post, "/remote/bring-to-foreground")]
public void PostBringToForeground()
{
Dispatcher.UIThread.Post(() => _mainWindowService.OpenMainWindow());
}
[Route(HttpVerbs.Post, "/remote/restart")]
public void PostRestart()
{
Utilities.Restart(_coreService.IsElevated, TimeSpan.FromMilliseconds(500));
}
[Route(HttpVerbs.Post, "/remote/shutdown")]
public void PostShutdown()
{
Utilities.Shutdown();
}
}