using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.IO.Pipes; using System.Linq; using System.Runtime.Serialization.Formatters.Binary; using System.Text; using System.Threading.Tasks; using Tango.StubsUtils.Shared; namespace Tango.StubsUtils.Client.CLI { class Program { private const string PIPE_NAME = "Tango_Stubs_Server"; static void Main(string[] args) { StubPackageResponseDTO response = null; try { var _client = new NamedPipeClientStream(PIPE_NAME); _client.Connect(1000); var writer = new StreamWriter(_client); var request = String.Join("^", args); writer.WriteLine(request); writer.Flush(); var reader = new StreamReader(_client); String responseString = reader.ReadToEnd(); response = new StubPackageResponseDTO(); response.Status = responseString.StartsWith("Status: OK") ? StubPackageResponseStatus.OK : StubPackageResponseStatus.Error; response.Message = responseString; } catch (Exception ex) { ExitError($"Status: Error\nError: Error communicating with the stubs service. {ex.Message}"); } if (response.Status == StubPackageResponseStatus.OK) { Console.ForegroundColor = ConsoleColor.Gray; Console.WriteLine(response.Message); Environment.Exit(0); } else { ExitError(response.Message); } } private static void ExitError(String error) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"{error}"); Console.ForegroundColor = ConsoleColor.Gray; Environment.Exit(-1); } } }