protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                PreencherCombos();

                if (Request["Id"] != null)
                {
                    int idCertificadoTemplate = int.Parse(Request["Id"]);
                    _certificadoTemplate = _manterCertificadoTemplate.ObterCertificadoTemplatePorID(idCertificadoTemplate);
                    PreencherCampos(_certificadoTemplate);

                    DesabilitaSeVisualizar();

                    if (Request["C"] != null)
                    {
                        btnVisualizar.Visible = false;
                    }
                }
                else
                {
                    var usuario = _manterUsuario.ObterUsuarioLogado();
                    ucCategorias1.PreencherCategorias(false, null, usuario, false, false, true);
                    btnVisualizar.Visible = false;
                }
            }
        }
Ejemplo n.º 2
0
        private classes.EmailEnvio ObterObjetoEmailEnvio()
        {
            _emailEnvioEdicao = Request["Id"] != null
                ? new ManterEmailEnvio().ObterEmailEnvioPorID((int.Parse(Request["Id"])))
                : new classes.EmailEnvio();

            //Texto
            _emailEnvioEdicao.Texto = txtMensagem.Text.Trim();

            //Assunto
            _emailEnvioEdicao.Assunto = txtAssunto.Text.Trim();

            if (_emailEnvioEdicao.Uf == null)
            {
                Usuario usuario;

                using (var manterUsuario = new ManterUsuario())
                {
                    usuario = manterUsuario.ObterUsuarioLogado();
                }

                _emailEnvioEdicao.Uf = new ManterUf().ObterUfPorID(usuario.UF.ID);
            }

            AdicionarPermissao(_emailEnvioEdicao);

            return(_emailEnvioEdicao);
        }
Ejemplo n.º 3
0
        private void AdicionarOuRemoverSolucaoEducacional(Programa programaEdicao)
        {
            var listaSelecionados = ucSolucaoEducacional1.ConverterListItemCollectionEmListaTipada(ucSolucaoEducacional1.ObterTodasSolucoesEducacionais) ?? new List <classes.SolucaoEducacional>();

            if (listaSelecionados.Count == 0)
            {
                return;
            }
            var listaIdsSelecionados = listaSelecionados.Select(x => x.ID).ToList();
            var listaDiferenca       = programaEdicao.ListaSolucaoEducacional.Where(x => !listaIdsSelecionados.Contains(x.SolucaoEducacional.ID)).Select(x => x.SolucaoEducacional).ToList();
            var listaIdsDiferenca    = listaDiferenca.Select(x => x.ID).ToList();

            foreach (var item in listaIdsDiferenca.Select(id => programaEdicao.ListaSolucaoEducacional.FirstOrDefault(x => x.SolucaoEducacional.ID == id)).Where(item => item != null))
            {
                programaEdicao.ListaSolucaoEducacional.Remove(item);
            }
            var manterUsuarioLogado = new ManterUsuario();
            var manterSe            = new ManterSolucaoEducacional();
            var usuarioLogado       = manterUsuarioLogado.ObterUsuarioLogado();

            foreach (var id in listaIdsSelecionados)
            {
                if (!programaEdicao.ListaSolucaoEducacional.Any(x => x.SolucaoEducacional.ID == id))
                {
                    programaEdicao.ListaSolucaoEducacional.Add(new ProgramaSolucaoEducacional
                    {
                        Programa           = programaEdicao,
                        SolucaoEducacional = manterSe.ObterSolucaoEducacionalPorId(id),
                        Auditoria          = usuarioLogado != null ? new Auditoria(usuarioLogado.CPF) : new Auditoria()
                    });
                }
            }
        }
 protected void ValidarRowCommandPorSolucaoEducacionalAprovacao(object sender, GridViewCommandEventArgs e)
 {
     if (e.CommandName == "Page")
     {
         return;
     }
     if (e.CommandName.Equals("excluir"))
     {
         var idItemTrilha = int.Parse(e.CommandArgument.ToString());
         try {
             var manterItemTrilha = new ManterItemTrilha();
             var manterUsuario    = new ManterUsuario();
             var usuarioLogado    = manterUsuario.ObterUsuarioLogado();
             manterItemTrilha.ExcluirSolucaoEducacionalAutoIndicativa(idItemTrilha, usuarioLogado.CPF, usuarioLogado);
             PreencherSolucoesEducacionaisSugeridas();
             WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Registro excluído com sucesso!");
         }catch (AcademicoException ex) {
             WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message);
         }catch (Exception ex) {
             WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message);
         }
         return;
     }
     if (e.CommandName.Equals("editar"))
     {
         Response.Redirect("~/Cadastros/SeAutoindicativa/EdicaoSeAutoindicativa.aspx?id=" + e.CommandArgument.ToString());
         return;
     }
 }
        private classes.NotificacaoEnvio ObterObjetoNotificacaoEnvio()
        {
            if (Request["Id"] != null)
            {
                _notificacaoEnvioEdicao = new ManterNotificacaoEnvio().ObterNotificacaoEnvioPorID((int.Parse(Request["Id"])));
            }
            else
            {
                _notificacaoEnvioEdicao = new classes.NotificacaoEnvio();
            }

            //Texto
            _notificacaoEnvioEdicao.Texto = txtTexto.Text.Trim();

            //Link
            _notificacaoEnvioEdicao.Link = txtLink.Text.Trim();

            AdicionarPermissao(_notificacaoEnvioEdicao);

            if (_notificacaoEnvioEdicao.Uf == null)
            {
                using (var bmusuario = new ManterUsuario())
                {
                    var usuario = bmusuario.ObterUsuarioLogado();
                    _notificacaoEnvioEdicao.Uf = new ManterUf().ObterUfPorID(usuario.UF.ID);
                }
            }

            return(_notificacaoEnvioEdicao);
        }
Ejemplo n.º 6
0
        protected void Page_Load(object sender, EventArgs e)
        {
            var manterUsuario = new ManterUsuario();
            var usuarioLogado = manterUsuario.ObterUsuarioLogado();

            IsAdminOrGestorUc = usuarioLogado.IsAdministrador() || usuarioLogado.IsGestor();

            if (IsPostBack)
            {
                return;
            }

            WebFormHelper.PrevinirCliqueDuplo(new List <Button>()
            {
                btnEnviar
            }, this.Page);

            WebFormHelper.PreencherLista(
                new List <StatusMatricula> {
                new StatusMatricula {
                    ID = 0, Nome = "- Selecione uma Turma -"
                }
            },
                this.ddlStatus, false, false);
        }
        protected void btnPesquisar_Click(object sender, EventArgs e)
        {
            try
            {
                Usuario userFiltro = new Usuario()
                {
                    Nome = txtNome.Text,
                    CPF  = txtCPF.Text,
                    UF   = string.IsNullOrWhiteSpace(ddlUF.SelectedValue) ? null : new Uf()
                    {
                        ID = int.Parse(ddlUF.SelectedValue)
                    },
                    NivelOcupacional = string.IsNullOrWhiteSpace(ddlNivelOcupacional.SelectedValue) ? null : new NivelOcupacional()
                    {
                        ID = int.Parse(ddlNivelOcupacional.SelectedValue)
                    }
                };

                var manterUsario = new ManterUsuario();
                if (manterUsario.ObterUsuarioLogado().UF.ID != (int)enumUF.NA && userFiltro.UF.ID == 0 && !IsNacional)
                {
                    throw new AcademicoException("Selecione o UF");
                }

                this.QtdRegistros = 100;
                IList <Usuario> lstUsuario = lupaUsuario.ObterListaUsuarioPorFiltro(userFiltro, this.QtdRegistros).OrderBy(x => x.Nome).ToList();
                Session.Add("lstUGrid", lstUsuario);
                WebFormHelper.PreencherGrid(lstUsuario, dgPesquisaUsuario);
            }
            catch (AcademicoException ex)
            {
                WebFormHelper.PreencherGrid(new List <Usuario>(), dgPesquisaUsuario);
                WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message);
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            // Passar a chave do Helper pra frente.
            UcHelperTooltip2.Chave = Chave;

            txtNome.Focus();
            if (!IsPostBack)
            {
                var manterUsario = new ManterUsuario();
                var usuario      = manterUsario.ObterUsuarioLogado();
                int idUf         = manterUsario.ObterUfLogadoSeGestor();

                if (IsNacional || !usuario.IsGestor() || idUf == (int)enumUF.NA)
                {
                    WebFormHelper.PreencherLista(lupaUsuario.ObterListaUf().OrderBy(x => x.Nome).ToList(), ddlUF, true);
                }
                else
                {
                    var uf = new BMUsuario().ObterUsuarioLogado().UF;
                    WebFormHelper.PreencherLista(lupaUsuario.ObterListaUf().Where(u => u.ID == uf.ID).OrderBy(x => x.Nome).ToList(), ddlUF, true);
                }

                if (Uf != null)
                {
                    ddlUF.SelectedValue = Uf.ID.ToString();
                    ddlUF.Enabled       = false;
                }

                WebFormHelper.PreencherLista(lupaUsuario.ObterListaNivelOcupacional().OrderBy(x => x.Nome).ToList(), ddlNivelOcupacional, true);

                if (usuario.IsGestor())
                {
                    if (idUf != (int)enumUF.NA)
                    {
                        ddlUF.SelectedValue = manterUsario.ObterUfLogadoSeGestor().ToString();

                        if (Uf == null)
                        {
                            OcultarUf();
                        }

                        if (IsNacional)
                        {
                            OcultarUf(true);
                        }
                    }
                }
            }

            if (!string.IsNullOrEmpty(Text))
            {
                Label3.Text = Text;
            }
        }
Ejemplo n.º 9
0
        protected void btnPerfilAdministrador_OnServerClick(object sender, EventArgs e)
        {
            var manterUsuario = new ManterUsuario();

            manterUsuario.SetarPerfisOriginais();

            // Atualizar a variável de IsAdmin da sessão.
            Session["UsuarioLogadoIsAdmin"] = manterUsuario.ObterUsuarioLogado().IsAdministrador();

            AtualizarPagina();
        }
Ejemplo n.º 10
0
        private TermoAceite ObterObjetoTermoAceite()
        {
            ValidarTermoAceite();

            Usuario usuarioLogado = null;

            using (var manterUsuario = new ManterUsuario())
            {
                usuarioLogado = manterUsuario.ObterUsuarioLogado();
            }

            TermoAceite termoAceite;

            if (Request["Id"] == null)
            {
                termoAceite      = new TermoAceite();
                termoAceite.Nome = txtNome.Text;
            }
            else
            {
                var termoOriginal = new ManterTermoAceite().ObterTermoAceitePorID(int.Parse(Request["Id"]));
                // Retorna um novo termo de aceite se for para duplicar, utilizando o AutoMapper.
                if (Request["Duplicar"] != null)
                {
                    termoAceite      = new TermoAceite();
                    termoAceite.Nome = (termoOriginal.Nome == txtNome.Text.Trim()) ? termoOriginal.Nome + " - Cópia" : txtNome.Text;
                }
                else
                {
                    termoAceite      = termoOriginal;
                    termoAceite.Nome = txtNome.Text;
                }
            }

            // Caso esteja cadastrando, atualiza o gestor criador.
            if (termoAceite.ID == 0)
            {
                VerificarGestor(termoAceite, usuarioLogado);
            }

            termoAceite.Texto = txtTermo.Text;
            termoAceite.PoliticaConsequencia = txtPoliticaConseguencia.Text;
            termoAceite.Uf = usuarioLogado.UF;

            AdicionarOuRemoverCategoriaConteudo(termoAceite);

            return(termoAceite);
        }
Ejemplo n.º 11
0
        protected override void OnInit(EventArgs e)
        {
            var manterUsuario = new ManterUsuario();

            if (!manterUsuario.EstaLogado())
            {
                var urlDeRetorno = Request.Url.ToString();
                var urlResolvida = ResolveUrl("~/Default.aspx");
                var url          = string.Format("{0}?ReturnUrl={1}", urlResolvida, urlDeRetorno);
                Response.Redirect(url);
            }
            else
            {
                var usuario = manterUsuario.ObterUsuarioLogado();

                if (usuario != null && usuario.Nome.Length > 0)
                {
                    spanSaudacao.InnerText = string.Format("Olá, {0}", usuario.Nome.Split(' ')[0]);

                    if (manterUsuario.IsSimulandoPerfil())
                    {
                        var perfilSimulado = manterUsuario.ObterPerfilSimulado();

                        spanPerfil.InnerText = string.Format(" ({0}{1})",
                                                             perfilSimulado.Nome.Split(' ')[0],
                                                             perfilSimulado.ID == (int)enumPerfil.GestorUC ? " - " + usuario.UF.Sigla : "");
                    }
                    else
                    {
                        spanPerfil.InnerText = "";
                    }
                }
                else
                {
                    spanSaudacao.InnerText = "Olá";
                }
            }

            base.OnInit(e);
        }
Ejemplo n.º 12
0
        protected void AlterarPerfil_OnServerClick(object sender, EventArgs e)
        {
            var usuarioLogado = new ManterUsuario().ObterUsuarioLogado(true);

            if (usuarioLogado.ListaPerfil.Any(x => x.Perfil.ID == (int)enumPerfil.Administrador))
            {
                var idPerfil = ((HtmlAnchor)sender).Name;

                var manterUsuario = new ManterUsuario();

                manterUsuario.SetarPerfilSimulado(int.Parse(idPerfil));

                // Atualizar a variável de IsAdmin da sessão.
                Session["UsuarioLogadoIsAdmin"] = manterUsuario.ObterUsuarioLogado().IsAdministrador();

                AtualizarPagina();
            }
            else
            {
                WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Você não tem permissões de Administrador para utilizar a simulação de perfis.");
            }
        }
        protected void btnPesquisar_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                try
                {
                    classes.NotificacaoEnvio Notificacao            = ObterNotificacaoEnvio();
                    ManterNotificacaoEnvio   manterNotificacaoEnvio = new ManterNotificacaoEnvio();

                    using (var manterUsuario = new ManterUsuario())
                    {
                        var usuario = manterUsuario.ObterUsuarioLogado();
                        if (usuario.IsGestor())
                        {
                            Notificacao.Uf = usuario.UF;
                        }
                    }

                    IList <classes.NotificacaoEnvio> ListaNotificacao = manterNotificacaoEnvio.ObterNotificacaoEnvioPorFiltro(Notificacao);
                    WebFormHelper.PreencherGrid(ListaNotificacao, this.dgvNotificacaoEnvio);

                    if (ListaNotificacao != null && ListaNotificacao.Count > 0)
                    {
                        WebFormHelper.PreencherGrid(ListaNotificacao, this.dgvNotificacaoEnvio);
                        pnlNotificacaoEnvio.Visible = true;
                    }
                    else
                    {
                        pnlNotificacaoEnvio.Visible = false;
                        WebFormHelper.ExibirMensagem(enumTipoMensagem.Atencao, "Nenhuma Informação Encontrada");
                    }
                }
                catch (AcademicoException ex)
                {
                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message);
                }
            }
        }
Ejemplo n.º 14
0
        protected void btnEnviarAvaliacao_OnClick(object sender, EventArgs e)
        {
            if (BloquearCampos)
            {
                WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Não é possível alterar esta avaliação, pois ela está bloqueada.");
                return;
            }

            // Salvar os dados da tela antes de enviar, só para se certificar.
            btnSalvar_OnClick(null, null);

            // O evento de salvar persiste a avaliação salva na variável AvaliacaoSalva.
            var avaliacao = AvaliacaoSalva;

            var manterAvaliacao = new ManterAvaliacao();

            var qtQuestoes = manterAvaliacao.ObterQuestoes().Count();

            var qtMatriculas = ObterTurma().ListaMatriculas.Count();

            var manterUsuario = new ManterUsuario();

            var usuarioLogado = manterUsuario.ObterUsuarioLogado();

            if (avaliacao.Status == enumStatusAvaliacao.AguardandoResposta)
            {
                if (avaliacao.IsRespondido(qtQuestoes, qtMatriculas) && usuarioLogado.IsConsultorEducacional())
                {
                    var template = new ManterTemplate().ObterTemplatePorID((int)enumTemplate.AvaliacaoGestor);

                    if (template == null)
                    {
                        WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro,
                                                     "Não foi possível enviar e-mail ao gestor. Tente novamente.");
                        return;
                    }

                    // Obter todos os gestores da UF do usuário logado.
                    var usuarioFiltro = new classes.Usuario
                    {
                        ListaPerfil =
                            new List <classes.UsuarioPerfil>
                        {
                            new classes.UsuarioPerfil {
                                Perfil = new classes.Perfil {
                                    ID = (int)enumPerfil.GestorUC
                                }
                            }
                        },
                        UF = new classes.Uf {
                            ID = usuarioLogado.UF.ID
                        }
                    };

                    var gestores = manterUsuario.ObterPorFiltro(usuarioFiltro)
                                   .Where(x => x.Email != null && x.Email != "")
                                   // Selecionar somente os campos que interessam.
                                   .Select(x => new classes.Usuario {
                        Email = x.Email, Nome = x.Nome
                    })
                                   .ToList();

                    // Caso não haja gestores para atualizar, notifica o usuário e impede a alteração.
                    if (!gestores.Any())
                    {
                        WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro,
                                                     "Não há gestor na UF " + usuarioLogado.UF.Sigla + " para validar a avaliação dos alunos.");
                        return;
                    }

                    var manterEmail = new ManterEmail();

                    var textoTemplate = template.TextoTemplate;


                    // Reza a lenda que cada oferta desses cursos só possui uma turma. Vamos torcer para isso ser verdade.
                    var turma = avaliacao.Turma;

                    textoTemplate =
                        textoTemplate
                        // Substituir o nome da solução duas vezes porque tem duas tags de solução.
                        .Replace("#SOLUCAO", turma.Oferta.SolucaoEducacional.Nome)
                        .Replace("#SOLUCAO", turma.Oferta.SolucaoEducacional.Nome)
                        .Replace("#OFERTA", turma.Oferta.Nome)
                        .Replace("#TURMA", turma != null ? turma.Nome : "")
                        .Replace("#CONSULTOR",
                                 turma != null && turma.ConsultorEducacional != null
                                    ? turma.ConsultorEducacional.Nome
                                    : "");

                    // Executa o envio de e-mails via Threading para deixar o fluxo mais rápido.
                    var thread = new Thread(() =>
                    {
                        foreach (var gestor in gestores)
                        {
                            try
                            {
                                var templateFinal = textoTemplate.Replace("#GESTOR", gestor.Nome);

                                manterEmail.EnviarEmail(gestor.Email, template.Assunto ?? template.DescricaoTemplate, templateFinal);
                            }
                            catch (Exception)
                            {
                                // Ignored.
                            }
                        }
                    })
                    {
                        IsBackground = true
                    };

                    thread.Start();

                    avaliacao.Status = enumStatusAvaliacao.AguardandoGestor;

                    manterAvaliacao.Salvar(avaliacao);

                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso,
                                                 "Avaliação enviada ao gestor e aguardando análise.",
                                                 "GerenciamentoMatricula.aspx?oferta=" + avaliacao.Turma.Oferta.ID);
                }
                else
                {
                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Você precisa responder todas as questões antes de enviar sua avaliação ao Gestor.");
                }
            }
        }
Ejemplo n.º 15
0
        protected void btnEnviar_Click(object sender, EventArgs e)
        {
            //this.SetarAcaoDaTela(enumAcaoTelaMatriculaOferta.NovaMatricula);
            var manterUsuario = new ManterUsuario();
            var usuarioLogado = manterUsuario.ObterUsuarioLogado();

            try
            {
                if (string.IsNullOrEmpty(ddlTurma.SelectedValue) || int.Parse(ddlTurma.SelectedValue) <= 0)
                {
                    throw new AcademicoException("Selecione uma turma para alterar a inscrição");
                }

                if (string.IsNullOrEmpty(ddlStatus.SelectedValue) || int.Parse(ddlStatus.SelectedValue) <= 0)
                {
                    throw new AcademicoException("Selecione um status");
                }

                var dtDataMatricula = DateTime.Now;
                var dtDataConclusao = DateTime.Now;

                if (IsAdminOrGestorUc && !string.IsNullOrEmpty(txtDataInscricao.Text))
                {
                    try
                    {
                        dtDataMatricula = Convert.ToDateTime(txtDataInscricao.Text);
                    }
                    catch
                    {
                        WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Data de Matrícula inválida.");
                        return;
                    }
                    try
                    {
                        dtDataConclusao = Convert.ToDateTime(txtDataConclusao.Text);
                    }
                    catch
                    {
                        WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Data de Conclusão inválida.");
                        return;
                    }
                }

                var manterTurma = new ManterTurma();

                if (!usuarioLogado.IsAdministrador())
                {
                    var matriculaOferta       = this.ObterObjetoMatriculaOferta();
                    var manterMatriculaOferta = new ManterMatriculaOferta();

                    var idOferta          = matriculaOferta.Oferta.ID;
                    var cpf               = matriculaOferta.Usuario.CPF;
                    var idStatusMatricula = ddlStatus.SelectedIndex > 0 ? int.Parse(ddlStatus.SelectedValue) : 0;
                    var idTurma           = ddlTurma.SelectedIndex > 0 ? int.Parse(ddlTurma.SelectedValue) : 0;

                    new ManterMatriculaOfertaService().MatriculaSolucaoEducacionalGestorUC(idOferta, cpf,
                                                                                           idStatusMatricula, idTurma, usuarioLogado.CPF);

                    //Dispara o evento informando que a matricula em uma oferta foi realizada
                    if (MatriculouAlunoEmUmaOferta == null)
                    {
                        return;
                    }
                    var mo = manterMatriculaOferta.ObterPorUsuarioESolucaoEducacional(matriculaOferta.Usuario.ID,
                                                                                      matriculaOferta.Oferta.SolucaoEducacional.ID);

                    if (mo != null && mo.ToList().Any())
                    {
                        matriculaOferta = mo.FirstOrDefault();
                        if (matriculaOferta == null)
                        {
                            return;
                        }
                        //Obtem as informações da matricula Oferta (inclusive a lista de turmas da oferta)
                        matriculaOferta = manterMatriculaOferta.ObterInformacoesDaMatricula(matriculaOferta.ID);
                    }

                    AdicionaOfertEmMatriculaTurma(matriculaOferta);

                    MatriculouAlunoEmUmaOferta(this, new MatricularAlunoEmUmaOfertaEventArgs(matriculaOferta));
                    ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "myscript",
                                                        " $('#EdicaoNivel, #modal-background').removeClass('active');", true);

                    LimparCamposMatriculaAluno();

                    //Cadastrar Solucao Educacional com o SAS
                    var manterSEService = new ManterSolucaoEducacionalService();

                    if (matriculaOferta.Oferta.SolucaoEducacional.IntegracaoComSAS)
                    {
                        manterSEService.CadastrarSAS(matriculaOferta.Usuario, new BP.integracaoSAS.TreinamentoSasClient());
                    }

                    //Matricular Aluno no Moodle
                    manterSEService.MatricularAlunoMoodle(matriculaOferta.Usuario, matriculaOferta.Oferta);

                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Aluno cadastrado com sucesso.");
                }
                else
                {
                    if (!string.IsNullOrEmpty(txtDataInscricao.Text))
                    {
                        var idTurma = ddlTurma.SelectedIndex > 0 ? int.Parse(ddlTurma.SelectedValue) : 0;
                        var turma   = manterTurma.ObterTurmaPorID(idTurma);

                        if (turma == null)
                        {
                            WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Turma não encontrada.");
                            return;
                        }
                        var dataValida = turma.Oferta.DataInicioInscricoes.HasValue &&
                                         turma.Oferta.DataFimInscricoes.HasValue &&
                                         dtDataMatricula.Date.Between(turma.Oferta.DataInicioInscricoes.Value.Date,
                                                                      turma.Oferta.DataFimInscricoes.Value.Date);

                        if (!dataValida)
                        {
                            WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro,
                                                         turma.Oferta.DataInicioInscricoes.HasValue && turma.Oferta.DataFimInscricoes.HasValue
                                    ? "Data de Matrícula deve ser entre " +
                                                         turma.Oferta.DataInicioInscricoes.Value.Date.ToString("dd/MM/yyyy") + " e " +
                                                         turma.Oferta.DataFimInscricoes.Value.Date.ToString("dd/MM/yyyy")
                                    : "Data de Matrícula inválida.");
                            return;
                        }

                        var dataValidaConclusao = dtDataConclusao.Date >= turma.DataInicio;

                        if (!dataValidaConclusao)
                        {
                            WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro,
                                                         "Data de Conclusão deve ser maior ou igual à: " + turma.DataInicio.ToString("dd/MM/yyyy"));
                            return;
                        }
                    }

                    var matriculaOferta       = this.ObterObjetoMatriculaOferta();
                    var manterMatriculaOferta = new ManterMatriculaOferta();
                    if (matriculaOferta.Oferta != null)
                    {
                        if (
                            matriculaOferta.Oferta.ListaMatriculaOferta.Any(
                                x =>
                                x.Usuario.ID == matriculaOferta.Usuario.ID &&
                                (x.StatusMatricula == enumStatusMatricula.Inscrito ||
                                 x.StatusMatricula == enumStatusMatricula.PendenteConfirmacaoAluno)))
                        {
                            throw new AcademicoException("Usuário já inscrito nesta oferta");
                        }
                    }

                    // Verificar permissao de matricula de acordo com as regras de permissão da Oferta.
                    if (matriculaOferta.Oferta != null &&
                        !matriculaOferta.Oferta.UsuarioPossuiPermissao(matriculaOferta.Usuario))
                    {
                        throw new AcademicoException("Usuário não possui permissão para essa oferta");
                    }

                    if (!divDataInscricao.Visible)
                    {
                        (new ManterMatriculaOferta()).VerificarPoliticaDeConsequencia(matriculaOferta);
                    }

                    SalvarMatriculaOferta(manterMatriculaOferta, matriculaOferta);

                    ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "myscript",
                                                        " $('#EdicaoNivel, #modal-background').removeClass('active');", true);

                    LimparCamposMatriculaAluno();

                    //Cadastrar Solucao Educacional com o SAS
                    var manterSEService = new ManterSolucaoEducacionalService();

                    if (matriculaOferta.Oferta.SolucaoEducacional.IntegracaoComSAS)
                    {
                        manterSEService.CadastrarSAS(matriculaOferta.Usuario, new BP.integracaoSAS.TreinamentoSasClient());
                    }

                    //Matricular Aluno no Moodle
                    manterSEService.MatricularAlunoMoodle(matriculaOferta.Usuario, matriculaOferta.Oferta);

                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Aluno cadastrado com sucesso.");
                }
            }
            catch (AcademicoException ex)
            {
                // Lógica para alteração de status quando o usuário for administrador ou gestor uc
                if (LupaUsuario.SelectedUser != null && (usuarioLogado.IsAdministrador() || usuarioLogado.IsGestor()))
                {
                    try
                    {
                        var matriculaOferta = ObterObjetoMatriculaOferta();


                        //Status
                        if (ddlStatus.SelectedItem != null && !string.IsNullOrWhiteSpace(ddlStatus.SelectedItem.Value))
                        {
                            if (ExisteComStatusRepetido((enumStatusMatricula)int.Parse(ddlStatus.SelectedItem.Value), matriculaOferta))
                            {
                                WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Não é possível inserir uma nova matrícula com o mesmo status");
                                return;
                            }
                        }

                        lblAvisoModalConfirmacaoInscricao.Text = ex.Message;
                        pnlModalConfirmacaoInscricao.Visible   = true;
                        return;
                    }
                    catch
                    {
                    }
                }

                WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message);
                return;
            }
            catch (PoliticaConsequenciaException ex)
            {
                if (!IsAdminOrGestorUc)
                {
                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message);
                    return;
                }

                lblAvisoModalConfirmacaoInscricao.Text = ex.Message;
                pnlModalConfirmacaoInscricao.Visible   = true;
            }
        }