using System; using System.Collections.Generic; using System.IO; using System.IO.Pipes; using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.StubsUtils.Shared; namespace Tango.StubsUtils.ProcedureClient.CLI { class Program { private const string PIPE_NAME = "Tango_Stubs_Server"; static void Main(string[] args) { try { Console.ForegroundColor = ConsoleColor.Gray; var _client = new NamedPipeClientStream(PIPE_NAME); _client.Connect(1000); var writer = new StreamWriter(_client); String s = Environment.CommandLine; List arguments = args.ToList(); arguments.Insert(0, "procedure"); var request = String.Join("^", arguments); writer.WriteLine(request); writer.Flush(); var reader = new StreamReader(_client); while (true) { String responseString = reader.ReadLine(); Console.WriteLine(responseString); if (responseString.StartsWith("Status: OK")) { responseString = reader.ReadToEnd(); Console.WriteLine(responseString); Environment.Exit(0); } else if (responseString.StartsWith("Status: Error")) { responseString = reader.ReadToEnd(); Console.WriteLine(responseString); ExitError(responseString); } } } catch (Exception ex) { ExitError($"Status: Error\nError: Error communicating with the stubs service. {ex.Message}"); } } private static void ExitError(String error) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"{error}"); Console.ForegroundColor = ConsoleColor.Gray; Environment.Exit(-1); } } }