Example #1
0
        //Receives Orders from Azure Service Bus
        private static void ReceiveOrders()
        {
            Console.WriteLine("\nReceiving message from Azure Service Bus Queue…");
            try
            {
                var client = QueueClient.CreateFromConnectionString(ServiceBusConnectionString, QueueName);

                while (true)
                {
                    try
                    {
                        //receive messages from Queue
                        BrokeredMessage message = client.Receive(TimeSpan.FromSeconds(5));

                        if (message != null)
                        {
                            //Ricezione messaggio di testo
                            //Console.WriteLine(string.Format("Message received: Id = {0}, Body = {1}", message.MessageId, message.GetBody<string>()));

                            //Retrieves the order object
                            Console.WriteLine(string.Format("Message received: Id = {0} ", message.MessageId));
                            ShopSalesOrder orderReceived = message.GetBody <ShopSalesOrder>(new DataContractSerializer(typeof(ShopSalesOrder)));

                            //Send the order to NAV
                            NAVInterface NAV = new NAVInterface();
                            NAV.CreateNAVSalesOrder(orderReceived);

                            // Further custom message processing could go here…
                            message.Complete();
                        }
                        else
                        {
                            //no more messages in the queue
                            break;
                        }
                    }
                    catch (MessagingException e)
                    {
                        if (!e.IsTransient)
                        {
                            Console.WriteLine(e.Message);
                            throw;
                        }
                        else
                        {
                            HandleTransientErrors(e);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                //Handle exception here...
            }
        }
Example #2
0
        static void Main(string[] args)
        {
            string ServiceBusConnectionString = "Endpoint=sb://navsbqueue-ns.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=GD2cxyENOHyATwzFVAK0bF9AVJjDB+n42i6wZFkVhXI=";

            string QueueName = "NAVSBQueue";

            var client = QueueClient.CreateFromConnectionString(ServiceBusConnectionString, QueueName);

            BrokeredMessage message = null;

            //INVIO OGGETTO ALLA CODA DEL SERVICE BUS

            NAVInterface NAV = new NAVInterface();


            //Messaggio di testo
            //message = new BrokeredMessage("TEST MESSAGE");
            //client.Send(message);

            Classes.NAVOrder order = NAV.GetNAVOrder();

            message = new BrokeredMessage(order, new DataContractSerializer(typeof(Classes.NAVOrder)));

            client.Send(message);



            //RICEZIONE MESSAGGIO DALLA CODA DEL SERVICE BUS


            Console.WriteLine("\nReceiving message from Queue…");


            while (true)
            {
                try
                {
                    //receive messages from Queue
                    message = client.Receive(TimeSpan.FromSeconds(5));

                    if (message != null)
                    {
                        //Ricezione messaggio di testo
                        //Console.WriteLine(string.Format("Message received: Id = {0}, Body = {1}", message.MessageId, message.GetBody<string>()));

                        //Ricezione oggetto Ordine
                        Console.WriteLine(string.Format("Message received: Id = {0} ", message.MessageId));
                        Classes.NAVOrder orderReceived = message.GetBody <Classes.NAVOrder>(new DataContractSerializer(typeof(Classes.NAVOrder)));
                        // Further custom message processing could go here…
                        message.Complete();
                    }
                    else
                    {
                        //no more messages in the queue
                        break;
                    }
                }
                catch (MessagingException e)
                {
                    if (!e.IsTransient)
                    {
                        Console.WriteLine(e.Message);
                        throw;
                    }
                    else
                    {
                        HandleTransientErrors(e);
                    }
                }
            }

            Console.ReadLine();
        }