public async Task <Result <RequestContext <BonusArgs>, ErrorCode> > Build(BonusGameMessage message)
        {
            var buildRequest = await RequestContextBuilder.Build <BonusArgs>(userService, gameService, cachedSettings, httpContextAccessor, message.Key, message.Game);

            if (buildRequest.IsError)
            {
                return(buildRequest.Error);
            }

            var request = buildRequest.Value;

            var gameState = await userService.GetGameState(request);

            if (gameState == null || gameState.Type == GameStateType.SlotStateNormal)
            {
                return(ErrorCode.IncorrectState);
            }
            request.LastGameState = gameState;

            request.Parameters = new BonusArgs
            {
                Bonus = message.Bonus,
                Param = message.Param,
                Step  = 0
            };

            return(request);
        }
Exemplo n.º 2
0
        public async Task BonusGame(BonusGameMessage message)
        {
            var httpContext = Context.GetHttpContext();

            if (httpContext != null)
            {
                try
                {
                    //await Clients.All.SendAsync("ReceiveMessage", "aaa");
                    var userName = httpContext.Request.Query["user"].ToString();
                    message.Key = userName;

                    logger.LogInformation("userName: "******"ReceiverConnectionids: " + ReceiverConnectionids);

                    if (!string.IsNullOrEmpty(ReceiverConnectionids))
                    {
                        var bonus = GetBonusGame(message);

                        string output = JsonConvert.SerializeObject(((BullRushFreeSpinResult)bonus.Result.Value).SpinResult);
                        await Clients.Clients(ReceiverConnectionids).SendAsync("ReceiveMessage", output);
                    }
                }
                catch (Exception ex)
                {
                    logger.LogError(ex.Message);
                }
            }
        }
Exemplo n.º 3
0
        public async Task <Result <IGameResult, ErrorCode> > BonusGame([FromQuery] BonusGameMessage message)
        {
            var session = await userService.GetUserSession(message.Key);

            if (session == null)
            {
                return(SessionExpired);
            }
            var userKey = GetUserKeyFromSession(session);

            return(await LockAsync(userKey, async() =>
            {
                var request = await bonusGameRequestBuilder.Build(message);
                if (request.IsError)
                {
                    return request.Error;
                }
                var x = await gameService.BonusGame(request.Value);
                return x;
            }));
        }