//static JsonClientChannel Channel = new JsonClientChannel(); static async Task Main(string[] args) { Console.WriteLine("Press Enter to Connect"); Console.ReadLine( ); var messageDispatcher = new XDocumentMessageDispatcher(); //var messageDispatcher = new JsonMessageDispatcher(); messageDispatcher.Bind <MessageHandler>( ); //messageDispatcher.Register<HeartBeatResponseMessage>( MessageHandler.HandleMessage ); //messageDispatcher.Register<SubmitBasketResponse>( MessageHandler.HandleMessage ); var endpoint = new IPEndPoint(IPAddress.Loopback, 9000); messageDispatcher.Bind(Channel); await Channel.ConnectAsync(endpoint).ConfigureAwait(false); _ = Task.Run(HBLoop); var basket = new SubmitBasketRequest { Id = "TXN0007", POSData = new POSData { Id = "POS001 " } }; await Channel.SendAsync(basket).ConfigureAwait(false); Console.ReadLine( ); }
static async Task Main(string[] args) { Console.WriteLine("Press Enter to Connect"); Console.ReadLine( ); //var messageDispatcher = new XDocumentMessageDispatcher(); var messageDispatcher = new JsonMessageDispatcher(); messageDispatcher.Bind <MessageHandler>( ); var endpoint = new IPEndPoint(IPAddress.Loopback, 9000); messageDispatcher.Bind(Channel); await Channel.ConnectAsync(endpoint).ConfigureAwait(false); //_ = Task.Run( ( ) => HBLoop( 1 ) ); var basket = new SubmitBasketRequest { Id = "TXN0007", POSData = new POSData { Id = $"POS{POSId}" } }; await Channel.SendAsync(basket).ConfigureAwait(false); await Task.Delay(1000); Channel.Close( ); Console.WriteLine("Client Closed Channel"); Console.ReadLine( ); }
public static Task <SubmitBasketResponse> HandleMessage(SubmitBasketRequest request) { Received(request); var response = new SubmitBasketResponse { Id = request.Id, POSData = request.POSData, Result = new Result { Status = Status.Success } }; Sending(response); return(Task.FromResult(response)); }
static async Task Main(string[] args) { Console.WriteLine("Press Enter to Connect"); Console.ReadLine(); //var messageDispatcher = new XDocumentMessageDispatcher(); var messageDispatcher = new JsonMessageDispatcher(); messageDispatcher.Bind <MessageHandler>(); try { var endpoint = new IPEndPoint(IPAddress.Loopback, 9000); messageDispatcher.Bind(Channel); await Channel.ConnectAsync(endpoint).ConfigureAwait(false); _ = Task.Run(() => HBLoop(-1)); Console.WriteLine("Client Running"); Console.WriteLine("Press Enter to Send Basket"); Console.ReadLine(); var submitBasket = new SubmitBasketRequest { Id = Guid.NewGuid().ToString(), POSData = new POSData { Id = $"POS{POSId}" }, POSTransactionNumber = "POS_TXID_0001" }; await Channel.SendAsync(submitBasket).ConfigureAwait(false); } catch (Exception _e) { Console.WriteLine($"Client Exception: {_e}"); } Console.ReadLine(); }
public void ProcessBasket(SubmitBasketRequest r) => _transactions.Add(r);