using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.IO.Pipes; using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.StubsUtils.Shared; namespace Tango.StubsUtils.SessionClient.CLI { class Program { private const string PIPE_NAME = "Tango_Stubs_Server"; static void Main(string[] args) { String line = String.Empty; Console.WriteLine("Tango Stub Session Client v1.0"); while (true) { Console.Write("> "); line = Console.ReadLine(); if (line.ToLower() == "exit") { Environment.Exit(0); } args = line.Split(' '); StubPackageResponseDTO response = null; try { var _client = new NamedPipeClientStream(PIPE_NAME); _client.Connect(1000); var writer = new StreamWriter(_client); var jsonRequest = String.Join("^", args); writer.WriteLine(jsonRequest); 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) { OnError($"Status: Error\nError: Error communicating with the stubs service. {ex.Message}"); continue; } if (response.Status == StubPackageResponseStatus.OK) { Console.ForegroundColor = ConsoleColor.Gray; Console.WriteLine(response.Message); } else { OnError(response.Message); } } } private static void OnError(String error) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"{error}"); Console.ForegroundColor = ConsoleColor.Gray; } } }