CmdService fix
parent
46f47dfa9f
commit
9d3ca45427
|
@ -4,6 +4,7 @@ dotnet publish --configuration Release --runtime win7-x64
|
|||
|
||||
Create windows service:
|
||||
sc create NetworkResurrector.Server binPath= "<path_to_the_service_executable>"
|
||||
sc create NetworkResurrector.Agent binPath= "<path_to_the_service_executable>"
|
||||
#######################################################################################################################################################
|
||||
Resources: https://github.com/nikeee/wake-on-lan
|
||||
|
||||
|
|
|
@ -7,10 +7,10 @@ namespace NetworkResurrector.Agent.Application.Services.Windows
|
|||
{
|
||||
internal class CmdService : ICliService
|
||||
{
|
||||
public (bool success, string message) Execute(string command) => Run("cmd.exe", command);
|
||||
public (bool success, string message) Shutdown(string arguments) => Run("shutdown.exe", arguments);
|
||||
public (bool success, string message) Execute(string command) => Run("cmd.exe", command, null);
|
||||
public (bool success, string message) Shutdown(string arguments) => Run("shutdown.exe", null, arguments);
|
||||
|
||||
private (bool success, string message) Run(string fileName, string arguments)
|
||||
private (bool success, string message) Run(string fileName, string command, string arguments)
|
||||
{
|
||||
var commandOutput = new StringBuilder();
|
||||
var commandErrors = new StringBuilder();
|
||||
|
@ -23,6 +23,9 @@ namespace NetworkResurrector.Agent.Application.Services.Windows
|
|||
process.StartInfo.UseShellExecute = false;
|
||||
process.StartInfo.FileName = fileName;
|
||||
|
||||
if (arguments != null)
|
||||
process.StartInfo.Arguments = arguments;
|
||||
|
||||
commandOutput.Clear();
|
||||
commandErrors.Clear();
|
||||
|
||||
|
@ -39,9 +42,13 @@ namespace NetworkResurrector.Agent.Application.Services.Windows
|
|||
});
|
||||
|
||||
process.Start();
|
||||
process.StandardInput.WriteLine(arguments);
|
||||
|
||||
if (command != null)
|
||||
{
|
||||
process.StandardInput.WriteLine(command);
|
||||
process.StandardInput.Flush();
|
||||
process.StandardInput.Close();
|
||||
}
|
||||
|
||||
process.BeginOutputReadLine();
|
||||
process.BeginErrorReadLine();
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="$(MicrosoftExtensionsPackageVersion)" />
|
||||
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="$(MicrosoftExtensionsPackageVersion)" />
|
||||
<PackageReference Include="NDB.Application.DataContracts" Version="$(NDBApplicationPackageVersion)" />
|
||||
<PackageReference Include="NetworkResurrector.Agent.Wrapper" Version="1.0.3" />
|
||||
<PackageReference Include="NetworkResurrector.Agent.Wrapper" Version="1.0.3.1" />
|
||||
<PackageReference Include="NetworkResurrector.Server.Wrapper" Version="1.0.3.3" />
|
||||
</ItemGroup>
|
||||
|
||||
|
|
|
@ -24,7 +24,9 @@ namespace NetworkResurrector.Api.Domain.Data.Repositories
|
|||
|
||||
public async Task<Machine> GetMachine(int machineId)
|
||||
{
|
||||
var machine = await _dbContext.Machines.FirstOrDefaultAsync(z => z.MachineId == machineId);
|
||||
var machine = await _dbContext.Machines
|
||||
.Include(z => z.Agent)
|
||||
.FirstOrDefaultAsync(z => z.MachineId == machineId);
|
||||
if (machine == null)
|
||||
throw new Exception($"Machine with id {machineId} not found");
|
||||
|
||||
|
|
Loading…
Reference in New Issue