/// <summary> /// Begins a asyncronis process to convert a .crz file /// </summary> /// <param name="inputPath">.crz file to convert</param> /// <param name="outputPath">path to create the new .cruise file at</param> /// <param name="updateCaller">optional event handler to get called whenever the process progress updates</param> /// <param name="processDoneCallbackFunct">optional event handler to be called when the asyncronis process is done</param> /// <returns></returns> public IAsyncResult BenginConvert(String inputPath, String outputPath, ProcessUpdateEventHandler updateHandler, AsyncCallback processDoneCallbackFunct) { _convertCallerHandel = new AsyncConvertCaller(this.Convert); return(_convertCallerHandel.BeginInvoke(inputPath, outputPath, updateHandler, processDoneCallbackFunct, null)); }
/// <summary> /// Begins a asyncronis process to convert a .crz file /// </summary> /// <param name="inputPath">.crz file to convert</param> /// <param name="outputPath">path to create the new .cruise file at</param> /// <param name="updateCaller">optional event handler to get called whenever the process progress updates</param> /// <param name="processDoneCallbackFunct">optional event handler to be called when the asyncronis process is done</param> /// <returns></returns> public IAsyncResult BenginConvert(String inputPath, String outputPath, ProcessUpdateEventHandler updateHandler, AsyncCallback processDoneCallbackFunct) { _convertCallerHandel = new AsyncConvertCaller(this.Convert); return _convertCallerHandel.BeginInvoke(inputPath, outputPath, updateHandler, processDoneCallbackFunct, null); }
/// <summary> /// Runs a process to convert a .crz file to a .cruise file /// </summary> /// <param name="targetPath">.crz file to convert</param> /// <param name="outputPath">path to create the new .cruise file at</param> /// <param name="updateCaller">optional event handler to get called whenever the process progress updates</param> /// <returns></returns> public bool Convert( string targetPath, string outputPath, ProcessUpdateEventHandler updateHandler) { try { targetPath = Path.GetFullPath(targetPath); //convert paths to full paths outputPath = Path.GetFullPath(outputPath); if (File.Exists(targetPath) == false) { Trace.TraceError("target path \"{0}\" can not be found", targetPath); throw new FileNotFoundException("target path can not be found", targetPath); } if (File.Exists(COConvertEXE) == false) //throw exception if we are unable to locate python.exe { Trace.TraceError("COConverter can not be found"); throw new FileNotFoundException("COConverter can not be found", COConvertEXE); } if (this.Output.Count != 0) { this.Output.Clear(); } //reset output property using (Process myProcess = new Process()) { try { myProcess.StartInfo.UseShellExecute = true; myProcess.StartInfo.FileName = COConvertEXE; myProcess.StartInfo.Arguments = String.Format( " -w \"{0}\" \"{1}\" ", targetPath, outputPath); myProcess.StartInfo.CreateNoWindow = false; //myProcess.StartInfo.RedirectStandardInput = true; //_processUpdateEventHandle = updateHandler; //myProcess.StartInfo.RedirectStandardOutput = true; //myProcess.StartInfo.RedirectStandardError = true; //myProcess.OutputDataReceived += // new DataReceivedEventHandler(OutputDataReceived); myProcess.Start(); //StreamWriter inputWriter = myProcess.StandardInput; //myProcess.BeginOutputReadLine(); //inputWriter.WriteLine(); //this.ErrorOutput = myProcess.StandardError.ReadToEnd(); myProcess.WaitForExit(); } finally { _processUpdateEventHandle = null; } if (myProcess.ExitCode == 1) { return(false); } else if (myProcess.ExitCode == 0) { return(true); } } return(false);//fall through case, shouln't be reachable } catch (Exception e) { if (_processUpdateEventHandle != null) { ProcessUpdateEventArgs args = new ProcessUpdateEventArgs(); args.output = e.ToString(); _processUpdateEventHandle(args); return(false); } else { throw; } } }
/// <summary> /// Runs a process to convert a .crz file to a .cruise file /// </summary> /// <param name="targetPath">.crz file to convert</param> /// <param name="outputPath">path to create the new .cruise file at</param> /// <param name="updateCaller">optional event handler to get called whenever the process progress updates</param> /// <returns></returns> public bool Convert( string targetPath, string outputPath, ProcessUpdateEventHandler updateHandler) { try { targetPath = Path.GetFullPath(targetPath); //convert paths to full paths outputPath = Path.GetFullPath(outputPath); if (File.Exists(targetPath) == false) { Trace.TraceError("target path \"{0}\" can not be found", targetPath); throw new FileNotFoundException("target path can not be found", targetPath); } if (File.Exists(COConvertEXE) == false) //throw exception if we are unable to locate python.exe { Trace.TraceError("COConverter can not be found"); throw new FileNotFoundException("COConverter can not be found", COConvertEXE); } if (this.Output.Count != 0) { this.Output.Clear(); } //reset output property using (Process myProcess = new Process()) { try { myProcess.StartInfo.UseShellExecute = true; myProcess.StartInfo.FileName = COConvertEXE; myProcess.StartInfo.Arguments = String.Format( " -w \"{0}\" \"{1}\" ", targetPath, outputPath); myProcess.StartInfo.CreateNoWindow = false; //myProcess.StartInfo.RedirectStandardInput = true; //_processUpdateEventHandle = updateHandler; //myProcess.StartInfo.RedirectStandardOutput = true; //myProcess.StartInfo.RedirectStandardError = true; //myProcess.OutputDataReceived += // new DataReceivedEventHandler(OutputDataReceived); myProcess.Start(); //StreamWriter inputWriter = myProcess.StandardInput; //myProcess.BeginOutputReadLine(); //inputWriter.WriteLine(); //this.ErrorOutput = myProcess.StandardError.ReadToEnd(); myProcess.WaitForExit(); } finally { _processUpdateEventHandle = null; } if (myProcess.ExitCode == 1) { return false; } else if (myProcess.ExitCode == 0) { return true; } } return false;//fall through case, shouln't be reachable } catch (Exception e) { if (_processUpdateEventHandle != null) { ProcessUpdateEventArgs args = new ProcessUpdateEventArgs(); args.output = e.ToString(); _processUpdateEventHandle(args); return false; } else { throw; } } }