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); } }
public static UsuarioTrilhaMensagemGuia RegistrarVisualizacao(UsuarioTrilha matricula, MensagemGuia mensagem, LogLider logLider = null, ItemTrilha itemTrilha = null, Missao missao = null, bool salvarData = true) { using (var manterTrilhaMensagemGuia = new ManterUsuarioTrilhaMensagemGuia()) { var usuarioTrilhaMensagemGuia = new UsuarioTrilhaMensagemGuia { UsuarioTrilha = matricula, MensagemGuia = mensagem, Visualizacao = salvarData ? (DateTime?)DateTime.Now : null, LogLider = logLider, ItemTrilha = itemTrilha, Missao = missao }; return(manterTrilhaMensagemGuia.Salvar(usuarioTrilhaMensagemGuia)); } }