Ejemplo n.º 1
0
        /// <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());
        }
Ejemplo n.º 2
0
 private string StopService(string srvName)
 {
     Logger.InfoFormat("StopService({0})", srvName);
     return(ServiceProcessManager.KillProcess(srvName).ToString());
 }