private void Receive(OnPacketsEvent e) { e.Packets.Select(AsSendData) .Where(data => data != null) .GroupBy(data => data.From, data => data.Packet) .Select(group => new OnSendEvent(group.Key, group)) .ForEach(observable.Publish); }
private void Receive(OnPacketsEvent e) { e.Packets.Select(AsPingHeader) .Where(header => header != null) .Select(header => header.From) .Distinct() .Select(from => new OnPingEvent(from)) .ForEach(observable.Publish); }
private void Receive(OnPacketsEvent e) { e.Packets.Select(AsSessionHeader) .Where(header => header != null) .Select(header => header.Session) .Distinct() .Select(session => new OnSessionEvent(session)) .ForEach(observable.Publish); }
private void Receive(OnPacketsEvent e) { var items = e.Packets.Select(AsRoomsHeader) .Where(header => header != null) .SelectMany(header => header.Rooms) .Distinct() .Select(pair => new RoomItem(pair.Key, pair.Value)) .ToList(); observable.Publish(new OnRoomsEvent(items)); }