public Task Join(string type = "Belot") { joinedLobbyType = type; var lobbyJoinRequest = new LobbyConnectRequest() { UserName = this.BotName, LobbyName = this.LobbyToJoin }; return(hubConnection.SendAsync("JoinLobby", lobbyJoinRequest)); }
public async Task JoinLobby(LobbyConnectRequest lobbyConnectRequest) { var lobby = this.lobbyManagerService.Lobbies.FirstOrDefault(x => x.Name == lobbyConnectRequest.LobbyName); var type = lobby.Type; var conenctResponse = new LobbyConnectResponse(); var lobbyUser = new LobbyUser() { Id = this.Context.ConnectionId, Name = lobbyConnectRequest.UserName }; if (lobby.LobbyUsers.Count < 4) { if (lobby.LobbyUsers.Count == 0) { lobby.HostId = lobbyUser.Id; } lobby.LobbyUsers.Add(lobbyUser); conenctResponse.Succeded = true; conenctResponse.LobbyName = lobby.Name; await this.Clients.Caller.SendAsync(ChannelConstants.LobbyConnectionAnswer, conenctResponse); await this.Groups.AddToGroupAsync(this.Context.ConnectionId, lobby.Name); await this.UpdateLobbies(type); } else { conenctResponse.Succeded = false; conenctResponse.LobbyName = lobby.Name; await this.Clients.Caller.SendAsync(ChannelConstants.LobbyConnectionAnswer, conenctResponse); } }