public void ProcessData(INetworkData ndata, Parameters param, ref IData[] supplData, ProcessInfo processInfo) { var remoteExe = param.GetParam <string>(InterpreterLabel).Value; var inFolder = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()); FolderFormat.Write(ndata, inFolder); var paramFile = Path.GetTempFileName(); param.ToFile(paramFile); var outFolder = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()); if (!TryGetCodeFile(param, out string codeFile)) { processInfo.ErrString = $"Code file '{codeFile}' was not found"; return; } ; var suppFiles = SupplDataTypes.Select(Utils.CreateTemporaryPath).ToArray(); var args = $"{codeFile} {paramFile} {inFolder} {outFolder} {string.Join(" ", suppFiles)}"; Debug.WriteLine($"executing > {remoteExe} {args}"); if (Utils.RunProcess(remoteExe, args, processInfo.Status, out string processInfoErrString) != 0) { processInfo.ErrString = processInfoErrString; return; } ; ndata.Clear(); FolderFormat.Read(ndata, outFolder, processInfo); supplData = Utils.ReadSupplementaryData(suppFiles, SupplDataTypes, processInfo); }
public static ButtonParamWf DataPreviewButton(INetworkData ndata) { return(new ButtonParamWf("Download data for preview", "save", (o, args) => { var dialog = new FolderBrowserDialog { ShowNewFolderButton = true }; if (dialog.ShowDialog() == DialogResult.OK) { FolderFormat.Write(ndata, dialog.SelectedPath); } })); }