public static void Main(string[] args) { Console.Write("Please enter your userName: "******"Starting..."); var chat = new ChatClient(userName); _chattedEventObserver = new ChattedEventObserver(); chat.Feed.Subscribe(_chattedEventObserver); new Task(chat.Start, _cancellationTokenSource.Token, TaskCreationOptions.LongRunning).Start(); _talker = new ChatTalker(chat.Queue, _cancellationTokenSource, userName); _talker.Send("({0} joined)", userName); new Task(_talker.Start, _cancellationTokenSource.Token, TaskCreationOptions.LongRunning).Start(); while (!_cancellationTokenSource.Token.IsCancellationRequested) { _cancellationTokenSource.Token.WaitHandle.WaitOne(new TimeSpan(0, 0, 1)); } _talker.Send("({0} left)", userName); // TODO: console close/shutdown? // http://stackoverflow.com/questions/6591786/graceful-shutdown-of-console-apps-in-win-vista-7-2008 }
public override void Dispose() { base.Dispose(); // TODO: ChatClient.Stop()? ChatClient = null; _chattedEventObserver = null; }
public ChatCatchup(MessageRepository messageRepository, LocalHistoryReader historyReader, ChattedEventObserver eventDataPresenter) { _messageRepository = messageRepository; _historyReader = historyReader; _eventDataPresenter = eventDataPresenter; }