Beispiel #1
0
        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]));
            }
Beispiel #4
0
 public Task <ServiceActionResult> UpdateServiceAsync(Node node, string serviceName, NodeService.Action action) =>
 GetWmiNodeById(node.Id).UpdateServiceAsync(serviceName, action);