using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.ServiceBus;
using Microsoft.ServiceBus.Messaging;

namespace ServiceBusTopic
{
    class Program
    {
        //private static string _conn = "Endpoint=sb://<namespace>.servicebus.windows.net/;SharedAccessKeyName=<policy name>;SharedAccessKey=<key>";
        private static string _conn = "Endpoint=sb://timbus.servicebus.windows.net/;SharedAccessKeyName=MyPolicy;SharedAccessKey=/gMS187tobtyccFjaZPbQXQBjrIM+dCErwn3ahXWi0M=";
        private static string _topic = "MyTopic";
        private static string _subscription_name = "ConsoleApp";
        
        static void Main(string[] args)
        {
            ////sendmessage
            //for (int i = 0; i < 10; i++)
            //{
            //    string str = string.Format($"Topic {i}");
            //    SendMessage(str);
            //}

            // or read
            ReadMessage();

            Console.WriteLine("Ok!");
            Console.ReadLine();
        }

        static void SendMessage(string message)
        {
            var topicClient = TopicClient.CreateFromConnectionString(_conn, _topic);
            var msg = new BrokeredMessage(message);
            topicClient.Send(msg);
        }

        static void ReadMessage()
        {
            var subClient = SubscriptionClient.CreateFromConnectionString(_conn, _topic, _subscription_name);
            subClient.OnMessage(m =>
            {
                Console.WriteLine(m.GetBody<string>());
            });
        }
    }
}