public async Task <ActionResult> ControlService(string node, string name, NodeService.Action serviceAction) { var n = Module.GetNodeByName(node); var s = n.GetService(name); var result = Json(await s.Update(serviceAction)); await n.DataProvider.PollAsync(true); return(result); }
public async Task <ServiceActionResult> UpdateServiceAsync(string serviceName, NodeService.Action action) { string query = $"SELECT Name FROM Win32_Service WHERE Name = '{serviceName}'"; uint returnCode = 0; using (var q = Query(query)) { foreach (var service in await q.GetDynamicResultAsync()) { returnCode = action switch { NodeService.Action.Stop => service.StopService(), NodeService.Action.Start => service.StartService(), _ => throw new ArgumentOutOfRangeException(nameof(action)), }; } } return(new ServiceActionResult(returnCode == 0, Win32ServiceReturnCodes[(int)returnCode])); }
public async Task <ServiceActionResult> UpdateServiceAsync(string serviceName, NodeService.Action action) { string query = $"SELECT Name FROM Win32_Service WHERE Name = '{serviceName}'"; uint returnCode = 0; using (var q = Wmi.Query(Endpoint, query)) { foreach (var service in await q.GetDynamicResultAsync().ConfigureAwait(false)) { switch (action) { case NodeService.Action.Stop: returnCode = service.StopService(); break; case NodeService.Action.Start: returnCode = service.StartService(); break; default: throw new ArgumentOutOfRangeException(nameof(action)); } } } return(new ServiceActionResult(returnCode == 0, Win32ServiceReturnCodes[(int)returnCode])); }
public Task <ServiceActionResult> UpdateServiceAsync(Node node, string serviceName, NodeService.Action action) => GetWmiNodeById(node.Id).UpdateServiceAsync(serviceName, action);