using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Diagnostics; using System.Net.Http; namespace WebApplication3.Clases { class Proceso { private Process proceso; private static readonly Proceso _instancia = new Proceso(); private bool _detected; private bool _started; private HttpClient client = new HttpClient(); private Proceso() { proceso = new Process(); //_proceso.StartInfo.WorkingDirectory = "C:\\Users\\Admin\\Downloads\\00_Aquifer_Supervision_0 3\\00_Aquifer_Supervision_0\\TRASLADADO SIN EJECUTAR\\"; //_proceso.StartInfo.FileName = "mf2005.exe"; //_proceso.StartInfo.Arguments = "AA.modflow.in"; _detected = false; _started = false; } public static Proceso GetInstance() => _instancia; public void setParametersModflow(string workingDirectory, string arguments) { proceso.StartInfo.WorkingDirectory = workingDirectory; proceso.StartInfo.FileName = @"C:\Users\Admin\Downloads\MF2005.1_12\MF2005.1_12\bin\mf2005.exe"; proceso.StartInfo.Arguments = arguments; proceso.StartInfo.UseShellExecute = true; } public void setParametersZoneBudget(string workingDirectory) { proceso.StartInfo.WorkingDirectory = workingDirectory; proceso.StartInfo.FileName = @"C:\WRDAPP\Zonbud.3_01\Bin\zonbud.exe"; proceso.StartInfo.Arguments = ""; proceso.StartInfo.RedirectStandardInput = true; } public void setParametersPython(string workingDirectory,string headFile, int rows, int cols, int isolines) { proceso.StartInfo.WorkingDirectory = workingDirectory; //proceso.StartInfo.FileName = @"C:\Users\Admin\AppData\Local\Programs\Python\Python39\python.exe"; proceso.StartInfo.FileName = "python"; var script = @"C:\Users\Admin\Desktop\test.py"; proceso.StartInfo.Arguments = script+" "+headFile+" "+rows+" "+cols+" "+isolines; proceso.StartInfo.UseShellExecute = false; } public void SetParametersSVG2Json(string workingDirectory, string fileName) { proceso.StartInfo.WorkingDirectory = workingDirectory; proceso.StartInfo.FileName = "svg2geojson"; proceso.StartInfo.Arguments = fileName; proceso.StartInfo.UseShellExecute = false; } public int GetPid() { return proceso.Id; } public bool HasExited() { return proceso.HasExited; } public void Kill() { proceso.Kill(); } public void Start() { proceso.Start(); _started = true; } public void ExecuteZonebudget(string[] prompts) { proceso.StandardInput.WriteLine(prompts[0]); proceso.StandardInput.WriteLine(prompts[1]); proceso.StandardInput.WriteLine(prompts[2]); proceso.StandardInput.WriteLine(prompts[3]); proceso.StandardInput.WriteLine(prompts[4]); proceso.WaitForExit(); } public void ResetProcess() { proceso.StartInfo.WorkingDirectory = ""; proceso.StartInfo.FileName = ""; proceso.StartInfo.Arguments = ""; proceso.StartInfo.RedirectStandardInput = false; proceso.StartInfo.UseShellExecute = false; _detected = false; _started = false; } public void WaitForExit() { proceso.WaitForExit(); } public bool Started { get { return _started; } set { _started = value; } } public bool Detected { get { return _detected; } set { _detected = value; } } } }