From ac631e5781d3d2f04547df9243cd8462e1ba91fc Mon Sep 17 00:00:00 2001 From: Tudor Stanciu Date: Thu, 13 Jan 2022 10:50:51 +0200 Subject: [PATCH] Add resurrector methods in API --- NetworkResurrector.sln | 7 ++++ .../NetworkResurrector.Api.Application.csproj | 3 +- .../Commands/PingMachine.cs | 9 ++++ .../Commands/ShutdownMachine.cs | 9 ++++ .../Commands/WakeMachine.cs | 9 ++++ .../Events/MachinePinged.cs | 8 ++++ .../Events/MachineShutdown.cs | 8 ++++ .../Events/MachineWaked.cs | 8 ++++ ...rkResurrector.Api.PublishedLanguage.csproj | 11 +++++ .../Controllers/ResurrectorController.cs | 42 +++++++++++++++++++ .../Events/MachineShutdown.cs | 6 +-- 11 files changed, 114 insertions(+), 6 deletions(-) create mode 100644 src/api/NetworkResurrector.Api.PublishedLanguage/Commands/PingMachine.cs create mode 100644 src/api/NetworkResurrector.Api.PublishedLanguage/Commands/ShutdownMachine.cs create mode 100644 src/api/NetworkResurrector.Api.PublishedLanguage/Commands/WakeMachine.cs create mode 100644 src/api/NetworkResurrector.Api.PublishedLanguage/Events/MachinePinged.cs create mode 100644 src/api/NetworkResurrector.Api.PublishedLanguage/Events/MachineShutdown.cs create mode 100644 src/api/NetworkResurrector.Api.PublishedLanguage/Events/MachineWaked.cs create mode 100644 src/api/NetworkResurrector.Api.PublishedLanguage/NetworkResurrector.Api.PublishedLanguage.csproj create mode 100644 src/api/NetworkResurrector.Api/Controllers/ResurrectorController.cs diff --git a/NetworkResurrector.sln b/NetworkResurrector.sln index 4c343fe..b8074e2 100644 --- a/NetworkResurrector.sln +++ b/NetworkResurrector.sln @@ -66,6 +66,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetworkResurrector.Server.W EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetworkResurrector.Server.PublishedLanguage", "src\server\NetworkResurrector.Server.PublishedLanguage\NetworkResurrector.Server.PublishedLanguage.csproj", "{388D632D-8104-45E2-8017-D04848941F29}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetworkResurrector.Api.PublishedLanguage", "src\api\NetworkResurrector.Api.PublishedLanguage\NetworkResurrector.Api.PublishedLanguage.csproj", "{1EA9EAD7-8896-4756-A2C2-7969E9073FA6}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -140,6 +142,10 @@ Global {388D632D-8104-45E2-8017-D04848941F29}.Debug|Any CPU.Build.0 = Debug|Any CPU {388D632D-8104-45E2-8017-D04848941F29}.Release|Any CPU.ActiveCfg = Release|Any CPU {388D632D-8104-45E2-8017-D04848941F29}.Release|Any CPU.Build.0 = Release|Any CPU + {1EA9EAD7-8896-4756-A2C2-7969E9073FA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1EA9EAD7-8896-4756-A2C2-7969E9073FA6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1EA9EAD7-8896-4756-A2C2-7969E9073FA6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1EA9EAD7-8896-4756-A2C2-7969E9073FA6}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -167,6 +173,7 @@ Global {750531C0-CB4D-44AE-ADDE-CC815F2539C5} = {C04663A1-E0CD-41D6-A8D7-FADDF9DA8302} {696DAC79-9C18-4DC3-9925-755AD6C1FEC9} = {6889D39C-D8DA-4B99-AFC1-F0B6355E73C0} {388D632D-8104-45E2-8017-D04848941F29} = {6889D39C-D8DA-4B99-AFC1-F0B6355E73C0} + {1EA9EAD7-8896-4756-A2C2-7969E9073FA6} = {43C78941-52E6-4AB8-9170-CC7C006E4784} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {351D76E9-FE02-4C30-A464-7B29AFC64BC7} diff --git a/src/api/NetworkResurrector.Api.Application/NetworkResurrector.Api.Application.csproj b/src/api/NetworkResurrector.Api.Application/NetworkResurrector.Api.Application.csproj index 9e6acdd..3af74e1 100644 --- a/src/api/NetworkResurrector.Api.Application/NetworkResurrector.Api.Application.csproj +++ b/src/api/NetworkResurrector.Api.Application/NetworkResurrector.Api.Application.csproj @@ -1,7 +1,7 @@  - netstandard2.1 + net5.0 @@ -15,5 +15,6 @@ + diff --git a/src/api/NetworkResurrector.Api.PublishedLanguage/Commands/PingMachine.cs b/src/api/NetworkResurrector.Api.PublishedLanguage/Commands/PingMachine.cs new file mode 100644 index 0000000..d66d22d --- /dev/null +++ b/src/api/NetworkResurrector.Api.PublishedLanguage/Commands/PingMachine.cs @@ -0,0 +1,9 @@ +using NDB.Application.DataContracts; +using NetworkResurrector.Api.PublishedLanguage.Events; + +namespace NetworkResurrector.Api.PublishedLanguage.Commands +{ + public class PingMachine : Command + { + } +} diff --git a/src/api/NetworkResurrector.Api.PublishedLanguage/Commands/ShutdownMachine.cs b/src/api/NetworkResurrector.Api.PublishedLanguage/Commands/ShutdownMachine.cs new file mode 100644 index 0000000..c5cda32 --- /dev/null +++ b/src/api/NetworkResurrector.Api.PublishedLanguage/Commands/ShutdownMachine.cs @@ -0,0 +1,9 @@ +using NDB.Application.DataContracts; +using NetworkResurrector.Api.PublishedLanguage.Events; + +namespace NetworkResurrector.Api.PublishedLanguage.Commands +{ + public class ShutdownMachine : Command + { + } +} diff --git a/src/api/NetworkResurrector.Api.PublishedLanguage/Commands/WakeMachine.cs b/src/api/NetworkResurrector.Api.PublishedLanguage/Commands/WakeMachine.cs new file mode 100644 index 0000000..8c05b54 --- /dev/null +++ b/src/api/NetworkResurrector.Api.PublishedLanguage/Commands/WakeMachine.cs @@ -0,0 +1,9 @@ +using NDB.Application.DataContracts; +using NetworkResurrector.Api.PublishedLanguage.Events; + +namespace NetworkResurrector.Api.PublishedLanguage.Commands +{ + public class WakeMachine : Command + { + } +} diff --git a/src/api/NetworkResurrector.Api.PublishedLanguage/Events/MachinePinged.cs b/src/api/NetworkResurrector.Api.PublishedLanguage/Events/MachinePinged.cs new file mode 100644 index 0000000..80d4e00 --- /dev/null +++ b/src/api/NetworkResurrector.Api.PublishedLanguage/Events/MachinePinged.cs @@ -0,0 +1,8 @@ +namespace NetworkResurrector.Api.PublishedLanguage.Events +{ + public class MachinePinged + { + public bool Success { get; set; } + public string Status { get; set; } + } +} diff --git a/src/api/NetworkResurrector.Api.PublishedLanguage/Events/MachineShutdown.cs b/src/api/NetworkResurrector.Api.PublishedLanguage/Events/MachineShutdown.cs new file mode 100644 index 0000000..0275161 --- /dev/null +++ b/src/api/NetworkResurrector.Api.PublishedLanguage/Events/MachineShutdown.cs @@ -0,0 +1,8 @@ +namespace NetworkResurrector.Api.PublishedLanguage.Events +{ + public class MachineShutdown + { + public bool Success { get; set; } + public string Status { get; set; } + } +} diff --git a/src/api/NetworkResurrector.Api.PublishedLanguage/Events/MachineWaked.cs b/src/api/NetworkResurrector.Api.PublishedLanguage/Events/MachineWaked.cs new file mode 100644 index 0000000..bbc8f95 --- /dev/null +++ b/src/api/NetworkResurrector.Api.PublishedLanguage/Events/MachineWaked.cs @@ -0,0 +1,8 @@ +namespace NetworkResurrector.Api.PublishedLanguage.Events +{ + public class MachineWaked + { + public bool Success { get; set; } + public string Status { get; set; } + } +} diff --git a/src/api/NetworkResurrector.Api.PublishedLanguage/NetworkResurrector.Api.PublishedLanguage.csproj b/src/api/NetworkResurrector.Api.PublishedLanguage/NetworkResurrector.Api.PublishedLanguage.csproj new file mode 100644 index 0000000..b7ec68a --- /dev/null +++ b/src/api/NetworkResurrector.Api.PublishedLanguage/NetworkResurrector.Api.PublishedLanguage.csproj @@ -0,0 +1,11 @@ + + + + net5.0 + + + + + + + diff --git a/src/api/NetworkResurrector.Api/Controllers/ResurrectorController.cs b/src/api/NetworkResurrector.Api/Controllers/ResurrectorController.cs new file mode 100644 index 0000000..103abc6 --- /dev/null +++ b/src/api/NetworkResurrector.Api/Controllers/ResurrectorController.cs @@ -0,0 +1,42 @@ +using MediatR; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using NetworkResurrector.Api.PublishedLanguage.Commands; +using System.Threading.Tasks; + +namespace NetworkResurrector.Api.Controllers +{ + [Authorize] + [ApiController] + [Route("resurrector")] + public class ResurrectorController : ControllerBase + { + private readonly IMediator _mediator; + + public ResurrectorController(IMediator mediator) + { + _mediator = mediator; + } + + [HttpPost("wake")] + public async Task WakeMachine([FromBody] WakeMachine wakeMachine) + { + var result = await _mediator.Send(wakeMachine); + return Ok(result); + } + + [HttpPost("ping")] + public async Task PingMachine([FromBody] PingMachine pingMachine) + { + var result = await _mediator.Send(pingMachine); + return Ok(result); + } + + [HttpPost("shutdown")] + public async Task ShutdownMachine([FromBody] ShutdownMachine shutdownMachine) + { + var result = await _mediator.Send(shutdownMachine); + return Ok(result); + } + } +} diff --git a/src/server/NetworkResurrector.Server.PublishedLanguage/Events/MachineShutdown.cs b/src/server/NetworkResurrector.Server.PublishedLanguage/Events/MachineShutdown.cs index f88326e..5437541 100644 --- a/src/server/NetworkResurrector.Server.PublishedLanguage/Events/MachineShutdown.cs +++ b/src/server/NetworkResurrector.Server.PublishedLanguage/Events/MachineShutdown.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace NetworkResurrector.Server.PublishedLanguage.Events +namespace NetworkResurrector.Server.PublishedLanguage.Events { public class MachineShutdown {