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); }
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); } } }
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; })); }