public List <Result> Query(Query query) { string output = ExecuteQuery(query); if (!string.IsNullOrEmpty(output)) { try { List <Result> results = new List <Result>(); JsonRPCQueryResponseModel queryResponseModel = JsonConvert.DeserializeObject <JsonRPCQueryResponseModel>(output); if (queryResponseModel.Result == null) { return(null); } foreach (JsonRPCResult result in queryResponseModel.Result) { JsonRPCResult result1 = result; result.Action = (c) => { if (!string.IsNullOrEmpty(result1.JsonRPCAction.Method)) { if (result1.JsonRPCAction.Method.StartsWith("Wox.")) { ExecuteWoxAPI(result1.JsonRPCAction.Method.Substring(4), result1.JsonRPCAction.Parameters); } else { ThreadPool.QueueUserWorkItem(state => { string actionReponse = ExecuteAction(result1.JsonRPCAction); JsonRPCRequestModel jsonRpcRequestModel = JsonConvert.DeserializeObject <JsonRPCRequestModel>(actionReponse); if (jsonRpcRequestModel != null && !string.IsNullOrEmpty(jsonRpcRequestModel.Method) && jsonRpcRequestModel.Method.StartsWith("Wox.")) { ExecuteWoxAPI(jsonRpcRequestModel.Method.Substring(4), jsonRpcRequestModel.Parameters); } }); } } return(!result1.JsonRPCAction.DontHideAfterAction); }; results.Add(result); } return(results); } catch (Exception e) { ErrorReporting.TryShowErrorMessageBox(e.Message, e); Log.Error(e.Message); } } return(null); }
protected string Execute(ProcessStartInfo startInfo) { try { using (Process process = Process.Start(startInfo)) { if (process != null) { using (StreamReader reader = process.StandardOutput) { string result = reader.ReadToEnd(); if (result.StartsWith("DEBUG:")) { System.Windows.Forms.MessageBox.Show(new Form { TopMost = true }, result.Substring(6)); return(""); } if (string.IsNullOrEmpty(result)) { using (StreamReader errorReader = process.StandardError) { string error = errorReader.ReadToEnd(); if (!string.IsNullOrEmpty(error)) { ErrorReporting.TryShowErrorMessageBox(error, new WoxJsonRPCException(error)); } } } return(result); } } } } catch { return(null); } return(null); }