コード例 #1
0
        private string GetServiceStateJSon()
        {
            var srvStatus = ServiceProcessManager.GetProcessesStates();

            if (srvStatus.Count == 0)
            {
                return(string.Empty);
            }
            return(HttpParameter.SerializeInJSon(srvStatus.Cast <HttpParameter>().ToList()));
        }
コード例 #2
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());
        }
コード例 #3
0
        private string RenderServicesStatuses(HttpListenerContext context)
        {
            var sb = new StringBuilder();

            RenderSiteHeader(sb, SiteMode.Services);

            // вывести состояние служб в виде таблицы
            var srvStatus = ServiceProcessManager.GetProcessesStates();

            if (srvStatus.Count > 0)
            {
                sb.AppendLine("      <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"lightTable\">");
                sb.AppendLine("        <tr class=\"rowHeader\"><td>Служба</td><td>Процесс</td><td>Состояние</td><td>Управление</td></tr>");

                foreach (var stat in srvStatus)
                {
                    sb.AppendLine();
                    sb.AppendFormat("        <tr><td>{0}</td><td>{1}</td><td>{2}</td>",
                                    stat.Title, stat.FileName, stat.Status);

                    // добавить кнопки - остановить и запустить службу
                    sb.AppendFormat("<td><img alt=\"Остановить\" style=\"cursor:pointer\" src=\"{0}\" onclick=\"ajaxFunction('stopservice=' + encodeURIComponent('{1}'))\" /> ",
                                    imgMarkupStop, stat.Name);
                    sb.AppendFormat("<img alt=\"Запустить\" style=\"cursor:pointer\" src=\"{0}\" onclick=\"ajaxFunction('startservice=' + encodeURIComponent('{1}'))\" /></td>",
                                    imgMarkupStart, stat.Name);
                    sb.Append("</tr>");
                }

                sb.AppendLine("      </table>");
            }

            // закрыть документ
            RenderBodyCloseTag(sb);
            RenderHttpCloseTag(sb);
            return(sb.ToString());
        }
コード例 #4
0
 private string StopService(string srvName)
 {
     Logger.InfoFormat("StopService({0})", srvName);
     return(ServiceProcessManager.KillProcess(srvName).ToString());
 }