Beispiel #1
0
        public void CancelarMatriculaTrilha(int idUsuariotrilha, AuthenticationRequest autenticacao)
        {
            var manterUsuarioTrilha = new ManterUsuarioTrilha();

            var usuarioTrilha = manterUsuarioTrilha.ObterPorId(idUsuariotrilha);

            // Caso esteja inscrito ou não aprovado na prova pode ser cancelada a sua matrícula
            if (usuarioTrilha != null &&
                (usuarioTrilha.StatusMatricula == enumStatusMatricula.Inscrito ||
                 usuarioTrilha.StatusMatricula == enumStatusMatricula.Reprovado))
            {
                DateTime limiteCancelamentoUsuario = usuarioTrilha.TrilhaNivel.LimiteCancelamento > 0
                                   ? usuarioTrilha.DataInicio.AddDays(usuarioTrilha.TrilhaNivel.LimiteCancelamento)
                                   : usuarioTrilha.DataInicio.AddDays(usuarioTrilha.TrilhaNivel.QuantidadeDiasPrazo);

                if (DateTime.Now > limiteCancelamentoUsuario)
                {
                    //Passou do Limite para cancelamento
                    throw new AcademicoException("O prazo de cancelamento expirou");
                }

                // Atribuindo status a matrícula do usuário
                usuarioTrilha.DataFim             = DateTime.Now;
                usuarioTrilha.DataAlteracaoStatus = DateTime.Now;
                usuarioTrilha.StatusMatricula     = enumStatusMatricula.CanceladoAluno;
                manterUsuarioTrilha.Salvar(usuarioTrilha);
            }
            else
            {
                throw new AcademicoException("Não foi encontrada nenhuma matrícula com cancelamento permitido");
            }
        }
        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);
            }
        }