private RemoteStartupResponse Execute(RemoteStartupRequest request) { bool success; switch (request.Method) { case ModuleStartupMethod.LaunchAlways: success = this.processManager.LaunchProcess(request.ProcessInfo); break; case ModuleStartupMethod.LaunchAndWaitReady: case ModuleStartupMethod.KillThenLaunch: success = this.processManager.CloseThenKillProcess(request.ProcessInfo) && this.processManager.LaunchProcess(request.ProcessInfo); break; case ModuleStartupMethod.KillOnly: success = this.processManager.CloseThenKillProcess(request.ProcessInfo); break; default: success = true; break; } return(new RemoteStartupResponse(request, success, null)); }
private void Parse(string s, IPEndPoint remoteEndPoint) { RemoteStartupRequest request; RemoteStartupResponse response; string serialized; try { request = RemoteStartupRequest.FromXml(s); } catch { request = null; } if (request == null) { //response = new RemoteStartupResponse(request, false, "Invalid request"); return; } else { response = Execute(request); } serialized = RemoteStartupResponse.ToXml(response); server.SendTo(remoteEndPoint, serialized); }