public static IRecieveOnlyBus Initialise(IBusConfigutration configuration, MessageRouteTable routes = null) { routes = routes ?? new MessageRouteTable(); var bus = new RecieveOnlyBus(configuration, routes) { container = new Container(x => { x.For <ISendOnlyBus>().Use(new SendOnlyBus(configuration, routes)).Singleton(); }) }; return(bus); }
static async Task MainAsync() { var routes = new MessageRouteTable() .AddRoute <MyQueueMessage>("my-message-queue") .AddRoute <MyTopicMessage>("my-message-topic"); while (true) { Console.WriteLine("Please enter option:"); Console.WriteLine("Q: queue"); Console.WriteLine("T: topic"); Console.WriteLine("X: exit"); Console.WriteLine(); var option = Console.ReadKey(); var bus = new SendOnlyBus(new BusConfigutration(), routes); switch (option.Key) { case ConsoleKey.X: return; case ConsoleKey.Q: Console.WriteLine(); Console.WriteLine($"Please enter body as text."); await bus.Send(new MyQueueMessage { SomeString = Console.ReadLine() }); continue; case ConsoleKey.T: Console.WriteLine(); Console.WriteLine($"Please enter body as text."); await bus.Publish(new MyTopicMessage { SomeString = Console.ReadLine() }); continue; default: continue; } //await bus.Send(new MyQueueMessage { SomeString = "From my queue!" }); //await bus.Publish(new MyTopicMessage { SomeString = "From my topic!" }); } }
private RecieveOnlyBus(IBusConfigutration configuration, MessageRouteTable routes = null) { this.configuration = configuration; this.routes = routes ?? new MessageRouteTable(); }
public SendOnlyBus(IBusConfigutration configuration, MessageRouteTable routes = null) { this.configuration = configuration; this.routes = routes ?? new MessageRouteTable(); }