public RespUsuario AcertoPalavra(ReqAcerto acerto, int idUsuario) { if (string.IsNullOrWhiteSpace(acerto.Palavra)) { return(null); } int qtdLetras = acerto.Palavra.ToUpper().Distinct().Count(); int experienciaGanha = (qtdLetras * 5) - (acerto.Erros * 2) - (acerto.DicasUsadas * 3); int nivelAntigoUsuario = RespUsuario.MontarRespUsuario(UsuarioBD.PegarUsuarioPeloId(idUsuario)).Nivel; JogoBD.AcertoPalavra(experienciaGanha, idUsuario); RespUsuario usuario = RespUsuario.MontarRespUsuario(UsuarioBD.PegarUsuarioPeloId(idUsuario)); if (usuario.Nivel == nivelAntigoUsuario) { return(usuario); } JogoBD.AtualizarSkins(usuario); return(RespUsuario.MontarRespUsuario(UsuarioBD.PegarUsuarioPeloId(idUsuario))); }
public ActionResult Acerto([FromBody] ReqAcerto acerto, [FromHeader] string token) { try { if (!Token.Validar(token)) { return(Ok("Jogador convidado.")); } RespUsuario resposta = JogoHandler.AcertoPalavra(acerto, Token.PegarId(token)); if (resposta == null) { return(StatusCode(400, "Ocorreu uma falha no processamento. A palavra acertada não pode ser lida.")); } return(Ok(resposta)); } catch (Exception ex) { return(StatusCode(500, $"Ocorreu uma falha na sua solicitação: {ex.Message}")); } }