コード例 #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("SubQueueWithReply start");

            IQuantObserver <QuantMessage> c = new QuantClient().RouteQueue();

            int counter = 1;

            var s = c.Subscribe("foo.chanel", c.ConnectionOption.StanSubscriptionOptions, (obj, arg) =>
            {
                QuantMessage m = arg.Message.Data.DeserializeMsg <QuantMessage>();

                var a = m.GetData <MyMsg>();

                Console.WriteLine("Received a message as data: {0}", System.Text.Encoding.UTF8.GetString(arg.Message.Data));
            });

            QuantMessage roseModel = new QuantMessage().Init(Guid.NewGuid(), "SubQueueWithRep", "PubReply", "200000");


            while (true)
            {
                Console.WriteLine("Enter message");

                MyMsg model = new MyMsg
                {
                    Id   = counter++,
                    Name = Console.ReadLine()
                };

                roseModel.AddOrUpdateData(model);

                c.Publish("foo.chanel.rep", roseModel);
            }
        }
コード例 #2
0
ファイル: QuantExtensions.cs プロジェクト: ArseniySavin/Quant
        public static QuantMessage Init(this QuantMessage message, Guid instanceId, string transactionCode, string systemCode, string systemReference)
        {
            if (message == null)
            {
                message = new QuantMessage();
            }

            if (message.TransactionInfo != null)
            {
                throw new QuantMessageRouteInfoException("TransactionInfo is not null. It was initialized before");
            }

            message.Call = new Call
            {
                Status = "INIT",
            };

            message.TransactionInfo = new TransactionInfo
            {
                InstanceId      = instanceId,
                TransactionCode = transactionCode,
                SystemCode      = systemCode,
                SystemReference = systemReference
            };

            message.Correlations = new List <Correlation>();

            return(message);
        }
コード例 #3
0
        public void Serialazer_Test()
        {
            QuantMessage model = new QuantMessage();

            model.Call = new Call {
                NextCall = DateTime.Now, RetryCount = 0, Status = "DONE"
            };

            model.AddOrUpdateData <TestModel>(new TestModel
            {
                Id   = 100,
                Name = "Test - 1"
            });

            model.AddOrUpdateData <TestModel2>(new TestModel2
            {
                Id   = 102,
                Name = "Test - 2"
            });

            var ser = model.SerializeMsg();
            var des = ser.DeserializeMsg <QuantMessage>();

            Assert.AreEqual(model["TestModel"], "{\"Id\":102,\"Name\":\"Test - 2\"}");
        }
コード例 #4
0
        static void Main(string[] args)
        {
            Console.WriteLine("SubQueue start");

            IQuantObserver <QuantMessage> c = new QuantClient().RouteQueue();

            var s = c.SubscribeQueue("foo.chanel", (obj, arg) =>
            {
                QuantMessage m = arg.Message.Data.DeserializeMsg <QuantMessage>();

                var a = m.GetData <MyMsg>();

                Console.WriteLine("Received a message as data: {0}", System.Text.Encoding.UTF8.GetString(arg.Message.Data));
            });

            Console.ReadKey();
        }
コード例 #5
0
        public void Add_Or_Update_Service_model_Test()
        {
            QuantMessage model = new QuantMessage();

            model.AddOrUpdateData <TestModel>(new TestModel
            {
                Id   = 100,
                Name = "Test - 1"
            });

            model.AddOrUpdateData <TestModel>(new TestModel
            {
                Id   = 102,
                Name = "Test - 2"
            });
            Assert.AreEqual(model["TestModel"], "{\"Id\":102,\"Name\":\"Test - 2\"}");
        }
コード例 #6
0
        public void Add_dublicate_Service_model_Test()
        {
            QuantMessage model = new QuantMessage();



            model.AddData <TestModel>(new TestModel
            {
                Id   = 100,
                Name = "Test-1"
            });

            model.AddData <TestModel>(new TestModel
            {
                Id   = 102,
                Name = "Test-2"
            });
        }