FunctionalTests/NuGetOperations.FunctionalTests/NuGetOperations.FunctionalTests.Helpers/GalopsProcessHelper.cs (43 lines of code) (raw):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
using System.IO;
namespace NuGetOperations.FunctionalTests.Helpers
{
public class GalopsProcessHelper
{
#region PublicMethods
/// <summary>
/// Invokes galops.exe with the appropriate parameters.
/// </summary>
/// <param name="arguments">cmd line args to galops.exe</param>
/// <param name="standardError">stderror from the galops process</param>
/// <param name="standardOutput">stdoutput from the galops process</param>
/// <param name="WorkingDir">working dir if any to be used</param>
/// <returns></returns>
public static int InvokeGalopsProcess(string arguments, out string standardError, out string standardOutput, string WorkingDir = null)
{
Process galOpsProcess = new Process();
ProcessStartInfo galopsProcessStartInfo = new ProcessStartInfo(Path.Combine(Environment.CurrentDirectory,GalopsExePath));
galopsProcessStartInfo.Arguments = arguments;
galopsProcessStartInfo.RedirectStandardError = true;
galopsProcessStartInfo.RedirectStandardOutput = true;
galopsProcessStartInfo.RedirectStandardInput = true;
galopsProcessStartInfo.UseShellExecute = false;
galopsProcessStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
galopsProcessStartInfo.CreateNoWindow = true;
galOpsProcess.StartInfo = galopsProcessStartInfo;
galOpsProcess.StartInfo.WorkingDirectory = WorkingDir;
galOpsProcess.Start();
standardError = galOpsProcess.StandardError.ReadToEnd();
standardOutput = galOpsProcess.StandardOutput.ReadToEnd();
Console.WriteLine(standardError);
Console.WriteLine(standardOutput);
galOpsProcess.WaitForExit();
return galOpsProcess.ExitCode;
}
#endregion PublicMethods
#region PrivateVariables
public const string GalopsExePath = "galops.exe";
public const string ConnectionStringCommand = " -ConnectionString ";
public const string WhatIfCommand = "-WhatIf ";
public const string IfOlderThanCommand = "-IfOlderThan ";
public const string BackupDataBaseCommand = " bdb ";
#endregion PrivateVariables
}
}