public CompilerService(IMessagePublisher messages) { messages.OfType <RequestMessage>() .Where(x => x.Type == "compileRequest") .Subscribe(x => { if (x?.Data?.Code == null) { throw new InvalidOperationException("Code cannot be null."); } var result = TestRunner.Run(x.Data.Code, TestFixture); messages.Publish(new ResponseMessage("compileResult", x.ConnectionId, result)); }); }
public MessagingOutAdapter(IMessagePublisher messages, dynamic hub) { messages.OfType <ResponseMessage>() .Subscribe(x => { hub.Clients.Client(x.ConnectionId).OnEvent(x.Type, new ChannelEvent { Name = x.Type, ChannelName = x.Type, Data = x.Data }); }); messages.OfType <BroadcastMessage>() .Subscribe(x => { hub.Clients.Group(x.Type).OnEvent(x.Type, new ChannelEvent { Name = x.Type, ChannelName = x.Type, Data = x.Data }); }); }