public void ExecuteNonAsync(ParamsScript script, ParamsDB paramsDB = null)
 {
     try
     {
         Task.Run(() => Execute(script, paramsDB));
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
 public async Task ExecuteAsync(ParamsScript script, ParamsDB paramsDB = null)
 {
     try
     {
         await Task.Run(() => Execute(script, paramsDB));
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
 public Task TaskExecute(ParamsScript script, ParamsDB paramsDB = null)
 {
     try
     {
         return(new Task(() =>
         {
             Execute(script, paramsDB);
         }
                         ));
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
        void Execute(ParamsScript script, ParamsDB paramsDB)
        {
            string Credentials, ComandoStartNewWindow, FileNameSystem;

            if (CriarNovaJanela && Environment.OSVersion.Platform == PlatformID.Win32NT)
            {
                ComandoStartNewWindow = "start ";
            }
            else
            {
                ComandoStartNewWindow = "";
            }
            if (Environment.OSVersion.Platform == PlatformID.Unix)
            {
                FileNameSystem = "/bin/bash";
            }
            else
            {
                FileNameSystem = "cmd.exe";
            }

            if (paramsDB != null)
            {
                Credentials     = paramsDB.GetCredentials();
                CriarNovaJanela = paramsDB.CriarNovaJanela;
            }
            else
            {
                Credentials = GetCredentials();
            }
            if (CriarNovaJanela && Environment.OSVersion.Platform == PlatformID.Win32NT)
            {
                ComandoStartNewWindow = "start ";
            }
            else
            {
                ComandoStartNewWindow = "";
            }
            if (!Directory.Exists(script.ScriptDir))
            {
                Directory.CreateDirectory(script.ScriptDir);
                throw new Exception($@"Insert script file in path:\n{script.ScriptDir}");
            }
            using (Process process = new Process())
            {
                process.StartInfo.UseShellExecute        = false;
                process.StartInfo.WorkingDirectory       = script.ScriptDir;
                process.StartInfo.RedirectStandardOutput = true;
                process.StartInfo.RedirectStandardInput  = true;
                process.StartInfo.FileName = FileNameSystem;

                process.StartInfo.CreateNoWindow = !CriarNovaJanela;

                process.Start();
                ProcessID = process.Id;
                string ProcPar = $@"{ComandoStartNewWindow}{PathClient}sqlplus.exe {Credentials} @{script.ScriptName} {script.Parameters}";
                process.StandardInput.WriteLine(ProcPar);
                process.StandardInput.Flush();
                process.StandardInput.Close();

                if (script.Debug)
                {
                    DebugEventParams.Invoke(ProcPar + Environment.NewLine);
                }
                while (!process.StandardOutput.EndOfStream)
                {
                    DebugEventParams.Invoke(process.StandardOutput.ReadLine() + Environment.NewLine);
                }
                process.WaitForExit();
            }
        }