Esempio n. 1
0
        // GET: OrderMasters
        public ActionResult Index()
        {
            List <OrderMaster> Orders = new List <OrderMaster>();

            //Get Message from Queue
            var msgs = new QueueMessageReceiver().GetOrdersFromQueue();

            if (msgs != null)
            {
                var orderMasters = db.OrderMasters.Include(o => o.CustomerMaster).Include(o => o.ItemMaster);

                foreach (var msg in msgs)
                {
                    foreach (var ord in orderMasters)
                    {
                        if (msg.OrderId == ord.OrderId)
                        {
                            Orders.Add(ord);
                            break;
                        }
                    }
                }

                return(View(Orders));
            }
            else
            {
                return(View("Index"));
            }
        }
        public async Task RunTest()
        {
            Console.WriteLine("About to Create Queue named " + config.QueuePath);
            await mgt.CreateQueueAsync(new QueueDescription(config.QueuePath) { DefaultMessageTimeToLive = TimeSpan.FromSeconds(5), EnableDeadLetteringOnMessageExpiration = false }, true);;

            Console.WriteLine("Queue Created. Sending a message");
            QueueMessageSender   sender   = new QueueMessageSender(config.ConnectionString, config.QueuePath);
            QueueMessageReceiver receiver = new QueueMessageReceiver(config.ConnectionString, config.QueuePath, false);

            await sender.SendMessage("first message");

            Console.WriteLine("Message Sent, Going to receive it now");
            string message = await receiver.GetSingleMessage();

            Console.WriteLine("Message Received: " + (message ?? "<NULL>"));


            Console.WriteLine("Sending second message");
            await sender.SendMessage("second message");

            Console.WriteLine("Message Sent, Going to sleep for 6 seconds");
            Thread.Sleep(6000);

            Console.WriteLine("I'm Back, receiving message");
            message = await receiver.GetSingleMessage();


            Console.WriteLine("Message Received: " + (message ?? "<NULL>"));

            Console.WriteLine("Hit Enter to Continue and Delete Queue");
            Console.ReadLine();

            await mgt.DeleteQueueAsync(config.QueuePath);
        }
Esempio n. 3
0
        public static async Task DoSendAndReceive(string connectionString, string queueName)
        {
            var sender   = new QueueMessageSender(connectionString, queueName);
            var receiver = new QueueMessageReceiver(connectionString, queueName, true);


            Console.WriteLine($"Queue Length = {receiver.GetActiveQueueLength()}");

            await sender.SendMessage("message 1");

            await sender.SendMessage("message 2");

            await sender.SendMessage("message 3");

            await sender.SendMessage("message 4");

            await sender.SendMessage("message 5");

            await sender.SendMessage("message 6");

            Console.WriteLine($"Queue Length = {await receiver.GetActiveQueueLength()}");



            int numToFail = 3;
            int numFailed = 0;

            receiver.HandleMessageAndReturnIfSuccess += (msg) =>
            {
                Console.WriteLine($"Message Received: {msg}");
                return((++numFailed) >= numToFail);
            };
            receiver.StartReceivingMessages();

            Console.WriteLine($"Queue Length = {await receiver.GetActiveQueueLength()}");

            System.Threading.Thread.Sleep(1000);

            Console.WriteLine($"Queue Length = {await receiver.GetActiveQueueLength()}");

            Console.WriteLine($"DL Length = {await receiver.GetDeadLetterCount()}");

            var dlmsg = await receiver.GetDeadLetterMessage();

            Console.WriteLine($"Dead Letter Received: {dlmsg}");
        }