public static Configuration AddConsole(this Configuration configuration) { // Check if another console already has been added var subscribers = (List <ISubscriber>)MessageSenderService.EnqueueSubject.Subscribers; subscribers.AddRange((List <ISubscriber>)MessageSenderService.ExecuteSubject.Subscribers); if (subscribers.Where(s => s is ConsoleSubscriber).Count() > 0) { throw new InvalidOperationException("Console already has been added."); } var consoleSubscriber = new ConsoleSubscriber(); MessageSenderService.EnqueueSubject.Subscribe(consoleSubscriber); MessageSenderService.ExecuteSubject.Subscribe(consoleSubscriber); return(configuration); }
public static void Main() { Console.WriteLine("\nDigite a mensagem a ser publicada"); Console.WriteLine("Mensagem vazia e ENTER para sair"); Console.WriteLine("\nMensagem:"); string mensagem = null; Subscriber c = new ConsoleSubscriber(); Subscriber f = new FormSubscriber(); Subscriber b = new BrowserSubscriber(); Publisher.Broadcast broadcast = new Publisher.Broadcast(c.Receive); broadcast += new Publisher.Broadcast(f.Receive); broadcast += new Publisher.Broadcast(b.Receive); do { mensagem = Console.ReadLine(); broadcast(mensagem); }while(mensagem.Trim() != String.Empty); }