using System; using System.IO; using System.IO.Pipes; using Newtonsoft.Json; namespace Gestor.Application.Helpers; public class PipeClient { private string _pipeName; private NamedPipeClientStream Pipe { get; set; } public PipeClient(string pipeName) { _pipeName = pipeName; } public bool Send(dynamic message) { try { Pipe = new NamedPipeClientStream(".", _pipeName, PipeDirection.Out, PipeOptions.Asynchronous); Pipe.Connect(1000); if (!Pipe.IsConnected) { return false; } using StreamWriter streamWriter = new StreamWriter(Pipe); streamWriter.AutoFlush = true; dynamic val = JsonConvert.SerializeObject(message); streamWriter.WriteLine(val); Pipe.WaitForPipeDrain(); } catch (TimeoutException) { return false; } return true; } }