public async Task <JoinRules> Join(ClaimsPrincipal cl) { User user = await _userManager.GetUserAsync(cl); if (user == null) { return(JoinRules.NoAuth); } JoinRules state = CanUserJoin(user); switch (state) { case JoinRules.Ok: Information.AddPlayer(user); user.Money -= Information.Rate; await _userManager.UpdateAsync(user); await _gameHub.Clients.Group(Information.Identifier.ToString()).SendAsync("PlayerJoin", user.UserName); switch (CanStartGame()) { case StartGameRules.Ok: Start(); break; } break; } return(state); }
public int Join(int Identifier = -1) { Game game = _gamesService.getGame(Identifier); if (game == null) { return(-1); } JoinRules result = game.Join(HttpContext.User).Result; return((int)result); }