//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... } }
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(); }