Example #1
0
        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);
        }
Example #2
0
        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();
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #7
0
        public HextechService(Session session) : base("/collection/hextech")
        {
            this.session = session;

            var messages = new MessageConsumer(session);

            messages.Consume <SimpleDialogMessage>(OnSimpleDialogMessage);
        }
Example #8
0
        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);
        }
Example #9
0
        public SummonerService(Session session) : base("/summoner")
        {
            this.session  = session;
            this.settings = GetSettings <SummonerSettings>();

            var messages = new MessageConsumer(session);

            messages.Consume <StoreAccountBalanceNotification>(OnStoreAccountBalanceNotification);
        }
Example #10
0
        public ActiveGameService(PlayLoopService loop, Session session) : base("/playloop/ingame")
        {
            this.session = session;
            this.loop    = loop;

            var messages = new MessageConsumer(session);

            messages.Consume <GameDTO>(OnGameDTO);
        }
Example #11
0
    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));
        }
Example #13
0
        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"));
        }
Example #17
0
    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;
        }
    }
Example #18
0
        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);
        }
Example #19
0
        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));
        }
Example #20
0
    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"));
        }
Example #22
0
 public void Publish(Message message)
 {
     messageConsumer.Consume(message);
 }