/// <summary> /// параметры запроса переданы в формате JSON /// /// возвращает ответ, сериализованный в JSON /// если параметры запроса не прочитаны - вернуть состояние всех сервисов /// иначе - выполнить действие /// </summary> private string ProcessFormattedHttpRequest(HttpListenerContext context) { using (var reader = new StreamReader(context.Request.InputStream, context.Request.ContentEncoding)) { var text = reader.ReadToEnd(); if (string.IsNullOrEmpty(text)) { return(GetServiceStateJSon()); } var ptrs = HttpParameter.DeserializeFromJSon(text); if (ptrs.Count == 0) { return(GetServiceStateJSon()); } // остановить / запустить сервис if (ptrs[0] is TradeSharpServiceStartStop) { var cmd = (TradeSharpServiceStartStop)ptrs[0]; var report = new ExecutionReport(); if (cmd.ShouldStart) { var status = ServiceProcessManager.StartProcess(cmd.SrvName); report.IsOk = status == ServiceProcessManager.StartProcessStatus.OK; report.Comment = status.ToString(); } else { var status = ServiceProcessManager.KillProcess(cmd.SrvName); report.IsOk = status == ServiceProcessManager.KillProcessStatus.OK; report.Comment = status.ToString(); } return(HttpParameter.SerializeInJSon(new List <HttpParameter> { report })); } } return(GetServiceStateJSon()); }
private string StartService(string srvName) { Logger.InfoFormat("StartService({0})", srvName); return(ServiceProcessManager.StartProcess(srvName).ToString()); }