public CustomService(PlayLoopService loop, ChatRoomService rooms, Session session) : base("/playloop/custom") { this.session = session; this.rooms = rooms; this.loop = loop; var messages = new MessageConsumer(session); messages.Consume <GameDTO>(OnGameDTO); messages.Consume <LobbyStatus>(OnLobbyStatus); messages.Consume <InvitePrivileges>(OnInvitePrivelages); }
public PostGameService(ChatRoomService rooms, Session session) : base("/playloop/postgame") { this.rooms = rooms; this.session = session; var messages = new MessageConsumer(session); messages.Consume <EndOfGameStats>(OnEndOfGameStats); messages.Consume <SimpleDialogMessage>(OnSimpleDialogMessage); messages.Consume <PlayerCredentialsDto>(OnPlayerCredentials); Reset(); }
public MatchmakingService(PlayLoopService loop, Session session) : base("/playloop/matchmaking") { this.session = session; this.loop = loop; var messages = new MessageConsumer(session); messages.Consume <SearchingForMatchNotification>(OnSearchingForMatch); messages.Consume <GameNotification>(OnGameNotification); messages.Consume <GameDTO>(OnGameDTO); messages.Consume <GameDataObject>(OnGameData); messages.Consume <RemovedFromService>(OnRemovedFromService); }
public ChampSelectService(PlayLoopService loop, ChatRoomService rooms, Session session) : base("/playloop/champselect") { this.session = session; this.rooms = rooms; this.loop = loop; messages = new MessageConsumer(session); messages.Consume <GameDTO>(OnGameDTO); messages.Consume <TradeContractDTO>(OnTradeContract); messages.Consume <GameDataObject>(OnGameData); messages.Consume <RemovedFromService>(OnRemovedFromService); }
private void Consume_Message(MessageCommand command) { var cat = TestData.Cats.FirstOrDefault(); var message = new Message <Cat>(command, cat); MessageConsumer.Consume(message); }
public MatchHistoryService(Session session) : base("/profile/matches") { this.session = session; var messages = new MessageConsumer(session); messages.Consume <EndOfGameStats>(OnEndOfGameStats); }
public HextechService(Session session) : base("/collection/hextech") { this.session = session; var messages = new MessageConsumer(session); messages.Consume <SimpleDialogMessage>(OnSimpleDialogMessage); }
public InviteService(Session session, PlayLoopService game) : base("/invite") { this.session = session; this.loop = game; session.Authed += Session_Authed; var messages = new MessageConsumer(session); messages.Consume <InvitationRequest>(OnInvitationRequest); }
public SummonerService(Session session) : base("/summoner") { this.session = session; this.settings = GetSettings <SummonerSettings>(); var messages = new MessageConsumer(session); messages.Consume <StoreAccountBalanceNotification>(OnStoreAccountBalanceNotification); }
public ActiveGameService(PlayLoopService loop, Session session) : base("/playloop/ingame") { this.session = session; this.loop = loop; var messages = new MessageConsumer(session); messages.Consume <GameDTO>(OnGameDTO); }
public override ValueTask Consume(IMessageConsumeContext context) { if (_filter(context)) { return(_inner.Consume(context)); } context.Ignore(_innerType); return(default);
public void Consume_UnknownMessage_Fails() { var loggerFactory = IocWrapper.Instance.GetService <ILoggerFactory>(); var consumer = new MessageConsumer <Cat>(ApiClientMock.Instance, loggerFactory); var cat = TestData.Cats.FirstOrDefault(); var message = new Message <Cat>(MessageCommand.Unknown, cat); Assert.Throws <ArgumentOutOfRangeException>(() => consumer.Consume(message)); }
public AuthService(Session session) : base("/login") { this.session = session; this.session.Authed += Session_Authed; settings = GetSettings <LoginSettings>(); var messages = new MessageConsumer(session); messages.Consume <ClientLoginKickNotification>(OnClientLoginKickNotification); }
public void ConsumeSendsMessageToLogicLayer() { var logger = new Mock<ILogger>(); var logicLayer = new Mock<IMessageRouter>(); var consumer = new MessageConsumer(logger.Object, logicLayer.Object); var serializer = new JavaScriptSerializer(); consumer.Consume(new Message<SampleMessage>(new SampleMessage { Message = serializer.Serialize(TestMessages.GetTestNeedUserMessage()) })); logicLayer.Verify(v => v.RouteSampleMessage(It.IsAny<object>())); }
public void PublishLogsMessageProccessingBegun() { var logger = new Mock<ILogger>(); var logicLayer = new Mock<IMessageRouter>(); var consumer = new MessageConsumer(logger.Object, logicLayer.Object); var serializer = new JavaScriptSerializer(); var invocations = new List<string>(); logger.Setup(loggerObj => loggerObj.Info(It.IsAny<string>(), It.IsAny<object[]>())) .Callback<string, object[]>((message, obj) => invocations.Add(message)); consumer.Consume(new Message<SampleMessage>(new SampleMessage { Message = serializer.Serialize(TestMessages.GetTestNeedUserMessage()) })); Assert.IsTrue(invocations[0].Contains("Begun Consuming Message")); }
public void PublishLogsExecutionTime() { var logger = new Mock<ILogger>(); var logicLayer = new Mock<IMessageRouter>(); var consumer = new MessageConsumer(logger.Object, logicLayer.Object); var serializer = new JavaScriptSerializer(); var invocations = new List<string>(); logger.Setup(loggerObj => loggerObj.Trace(It.IsAny<string>(), It.IsAny<object>(), It.IsAny<TimeSpan>())) .Callback<string, object[]>((text, message) => invocations.Add(text)); consumer.Consume(new Message<SampleMessage>(new SampleMessage { Message = serializer.Serialize(TestMessages.GetTestNeedUserMessage()) })); Assert.IsTrue(invocations[0].Contains("TimeElapsed")); }
public override async ValueTask Consume(IMessageConsumeContext context) { if (context.Message == null) { return; } using var activity = Activity.Current?.Context != context.ParentContext ? SubscriptionActivity.Start(context, _defaultTags) : Activity.Current; activity?.SetContextTags(context)?.Start(); try { await _inner.Consume(context).NoContext(); } catch (Exception e) { activity?.SetStatus(ActivityStatus.Error(e, $"Error handling {context.MessageType}")); throw; } }
public LobbyService(PlayLoopService loop, ChatRoomService rooms, Session session) : base("/playloop/lobby") { this.session = session; this.rooms = rooms; this.loop = loop; var messages = new MessageConsumer(session); messages.Consume <LobbyStatus>(OnLobbyStatus); messages.Consume <InvitePrivileges>(OnInvitePrivelages); messages.Consume <SearchingForMatchNotification>(OnSearchingForMatch); messages.Consume <GameNotification>(OnGameNotification); messages.Consume <GameDataObject>(OnGameData); messages.Consume <RemovedFromService>(OnRemovedFromService); }
public ReplayService(Session session) : base("/replays") { this.session = session; directory = GetStorage("replays"); Directory.CreateDirectory(directory); foreach (var file in Directory.EnumerateFiles(directory, "*.lol")) { long gameid; if (!long.TryParse(Path.GetFileNameWithoutExtension(file), out gameid)) { continue; } saved.Add(gameid); } var messages = new MessageConsumer(session); messages.Consume <PlayerCredentialsDto>(OnPlayerCredentials); BackEndServer.AddService(spectator = new SpectatorService(session, LoadReplay)); }
async ValueTask DelayedConsume(DelayedAckConsumeContext ctx, CancellationToken ct) { using var activity = ctx.Items.TryGetItem <Activity>("activity")?.Start(); var cts = CancellationTokenSource.CreateLinkedTokenSource(ctx.CancellationToken, ct); ctx.CancellationToken = cts.Token; try { await _inner.Consume(ctx).NoContext(); await ctx.Acknowledge().NoContext(); } catch (Exception e) { ctx.Nack(_innerType, e); } if (activity != null && ctx.WasIgnored()) { activity.ActivityTraceFlags = ActivityTraceFlags.None; } }
public void PublishLogsMessageProccessingFailed() { var logger = new Mock<ILogger>(); var logicLayer = new Mock<IMessageRouter>(); var consumer = new MessageConsumer(logger.Object, logicLayer.Object); var serializer = new JavaScriptSerializer(); var invocations = new List<string>(); logger.Setup(loggerObj => loggerObj.Error(It.IsAny<Exception>(), It.IsAny<string>(), It.IsAny<object[]>())) .Callback<Exception, string, object[]>((ex, message, obj) => invocations.Add(message)); logicLayer.Setup(c => c.RouteSampleMessage(It.IsAny<object>())).Throws(new Exception("test exception")); consumer.Consume(new Message<SampleMessage>(new SampleMessage { Message = serializer.Serialize(TestMessages.GetTestNeedUserMessage()) })); Assert.IsTrue(invocations[0].Contains("Error Consuming Message")); }
public void Publish(Message message) { messageConsumer.Consume(message); }