public object informarParticipacaoConheciGame(DTOParticipacaoConheciGame dtoParicipacao) { var manterItemTrilha = new ManterItemTrilha(); var usuarioTrilha = new ManterUsuarioTrilha().ObterPorId(dtoParicipacao.ID_UsuarioTrilha); var itemTrilha = manterItemTrilha.ObterItemTrilhaPorID(dtoParicipacao.ID_ItemTrilha); if (dtoParicipacao.QuantidadeAcertos >= itemTrilha.QuantidadeAcertosTema && itemTrilha.Moedas.HasValue) { var manterMoedas = new ManterUsuarioTrilhaMoedas(); if (!manterMoedas.ObterTodosIQueryable() .Select(x => new { ID_ItemTrilha = x.ItemTrilha.ID, ID_UsuaioTrilha = x.UsuarioTrilha.ID }) .Any(x => x.ID_ItemTrilha == itemTrilha.ID && x.ID_UsuaioTrilha == usuarioTrilha.ID)) { manterMoedas.Incluir(usuarioTrilha, itemTrilha, null, 0, dtoParicipacao.QuantidadeAcertos); return(new { Aprovado = true, QuantidadeMoedas = itemTrilha.Moedas }); } } return(new { Aprovado = false, QuantidadeMoedas = itemTrilha.Moedas }); }
private DTOMensagemGuia VerificarMoedasProvaFinal(UsuarioTrilha matricula) { try { var trilha = new ManterTrilha().ObterTrilhaPorId(matricula.TrilhaNivel.Trilha.ID); var momento = enumMomento.PossuirMoedasProvaFinal; // Refresh básico da matrícula. Foi mal, mas estamos com pressa. matricula = new ManterUsuarioTrilha().ObterPorId(matricula.ID); var moedas = new ManterUsuarioTrilhaMoedas().Obter(matricula, enumTipoMoeda.Ouro); var minimoMoedas = matricula.TrilhaNivel.QuantidadeMoedasProvaFinal; var jaVisualizou = new ManterUsuarioTrilhaMensagemGuia().ObterTodos() .Any(x => x.UsuarioTrilha.ID == matricula.ID && x.MensagemGuia.ID == momento); if (minimoMoedas > 0 && moedas >= minimoMoedas && !jaVisualizou) { var mensagem = new ManterMensagemGuia().ObterPorId(momento); var visualizacao = RegistrarVisualizacao(matricula, mensagem); return(new DTOMensagemGuia(visualizacao.ID, mensagem.ObterTexto(trilha, matricula))); } return(null); } catch (Exception) { return(null); } }
private DTOMensagemGuia VerificarEvolucaoPin(UsuarioTrilha matricula) { try { var trilha = new ManterTrilha().ObterTrilhaPorId(matricula.TrilhaNivel.Trilha.ID); var manterMatricula = new ManterUsuarioTrilha(); var momento = enumMomento.EvoluirPin; // Refresh básico da matrícula. Foi mal, mas estamos com pressa. matricula = manterMatricula.ObterPorId(matricula.ID); var moedasOuro = new ManterUsuarioTrilhaMoedas().Obter(matricula, enumTipoMoeda.Ouro); var moedasNivel = new ManterTrilhaNivel().ObterTotalMoedasSolucoesSebrae(matricula.TrilhaNivel.ID); var tipoTrofeu = matricula.ObterTipoTrofeu(moedasOuro, moedasNivel); if (tipoTrofeu > matricula.TipoTrofeu && tipoTrofeu != enumTipoTrofeu.Bronze) { matricula.TipoTrofeu = tipoTrofeu; manterMatricula.Salvar(matricula); var mensagem = new ManterMensagemGuia().ObterPorId(momento); var visualizacao = RegistrarVisualizacao(matricula, mensagem); return(new DTOMensagemGuia(visualizacao.ID, mensagem.ObterTexto(trilha, matricula, corPin: tipoTrofeu.ToString()))); } return(null); } catch (Exception) { return(null); } }