public IrcConnection(IMessageBus messageBus) : base(messageBus) { commands = new IrcCommands(this.WriteLine); this.messageBus = messageBus; var myMessages = messageBus .AsObservable<DataReceivedMessage>() .Where(m => m.Connection == this); //only handle messages sent by this connection AttachParser(messageBus, myMessages); myMessages .Where(m => Patterns.ActionRegex.IsMatch(m.Data)) .Do(_ => Console.ForegroundColor = ConsoleColor.Gray) .Do(m => Console.WriteLine("*** ActionRegex Message ****")) .Subscribe(); myMessages .Where(m => Patterns.CtcpRequestRegex.IsMatch(m.Data)) .Do(_ => Console.ForegroundColor = ConsoleColor.Gray) .Do(m => Console.WriteLine("*** CtcpRequestRegex Message ****")) .Subscribe(); myMessages .Where(m => Patterns.InviteRegex.IsMatch(m.Data)) .Do(_ => Console.ForegroundColor = ConsoleColor.Gray) .Do(m => Console.WriteLine("*** InviteRegex Message ****")) .Subscribe(); myMessages .Where(m => Patterns.TopicRegex.IsMatch(m.Data)) .Do(_ => Console.ForegroundColor = ConsoleColor.Gray) .Do(m => Console.WriteLine("*** TopicRegex Message ****")) .Subscribe(); myMessages .Where(m => Patterns.KickRegex.IsMatch(m.Data)) .Do(_ => Console.ForegroundColor = ConsoleColor.Gray) .Do(m => Console.WriteLine("*** KickRegex Message ****")) .Subscribe(); myMessages .Where(m => Patterns.CtcpReplyRegex.IsMatch(m.Data)) .Do(_ => Console.ForegroundColor = ConsoleColor.Gray) .Do(m => Console.WriteLine("*** CtcpReply Message ****")) .Subscribe(); }
public IrcConnection(IMessageBus messageBus) : base(messageBus) { commands = new IrcCommands(this.WriteLine); this.messageBus = messageBus; var myMessages = messageBus .AsObservable <DataReceivedMessage>() .Where(m => m.Connection == this); //only handle messages sent by this connection AttachParser(messageBus, myMessages); myMessages .Where(m => Patterns.ActionRegex.IsMatch(m.Data)) .Do(_ => Console.ForegroundColor = ConsoleColor.Gray) .Do(m => Console.WriteLine("*** ActionRegex Message ****")) .Subscribe(); myMessages .Where(m => Patterns.CtcpRequestRegex.IsMatch(m.Data)) .Do(_ => Console.ForegroundColor = ConsoleColor.Gray) .Do(m => Console.WriteLine("*** CtcpRequestRegex Message ****")) .Subscribe(); myMessages .Where(m => Patterns.InviteRegex.IsMatch(m.Data)) .Do(_ => Console.ForegroundColor = ConsoleColor.Gray) .Do(m => Console.WriteLine("*** InviteRegex Message ****")) .Subscribe(); myMessages .Where(m => Patterns.TopicRegex.IsMatch(m.Data)) .Do(_ => Console.ForegroundColor = ConsoleColor.Gray) .Do(m => Console.WriteLine("*** TopicRegex Message ****")) .Subscribe(); myMessages .Where(m => Patterns.KickRegex.IsMatch(m.Data)) .Do(_ => Console.ForegroundColor = ConsoleColor.Gray) .Do(m => Console.WriteLine("*** KickRegex Message ****")) .Subscribe(); myMessages .Where(m => Patterns.CtcpReplyRegex.IsMatch(m.Data)) .Do(_ => Console.ForegroundColor = ConsoleColor.Gray) .Do(m => Console.WriteLine("*** CtcpReply Message ****")) .Subscribe(); }