// Pedido ao servidor do número atual de jogos do utilziador, portador do id de sessão atual, que será passado como parametro. private void AuthView_GRPCGetGames() { try { // Modelo com as informações do pedido para o servidor tratar. UserGetGamesBySessionIdLookupModel req = new UserGetGamesBySessionIdLookupModel { SessionID = Program.AuthUser.SessionID }; // Comunicação de forma sincrona com o servidor. UserGetGamesBySessionIdModel outcome = AuthClient.GetGamesBySessionId(req); // No caso de ser válido, o número de jogos é atualizado na view através da chamado do método SetGames da AuthView. if (outcome.Games != -1) { Program.AuthView.SetGames(outcome.Games); } } catch (Grpc.Core.RpcException) { Program.ConnectController.ConnectionError(); return; } }
public override Task <UserGetGamesBySessionIdModel> GetGamesBySessionId(UserGetGamesBySessionIdLookupModel request, ServerCallContext context) { UserGetGamesBySessionIdModel output = new UserGetGamesBySessionIdModel(); Models.User u1 = new Models.User(); u1 = _context.User.FirstOrDefault(u => u.SessionID == request.SessionID); if (u1 != null) { output.Games = u1.GamesToPlay; } else { output.Games = -1; } return(Task.FromResult(output)); }