Exemple #1
0
        //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( );
        }
Exemple #2
0
        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));
        }
Exemple #4
0
        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);