private void AdicionarOuRemoverAlunos(classes.EmailEnvio emailEnvioEdicao)
        {
            IList <EmailEnvioPermissao> listaNot = emailEnvioEdicao.ListaPermissao.Where(x => x.Usuario != null).ToList();

            // Remove todos do Objeto sempre e aloca somente os selecionados no grid view
            emailEnvioEdicao.removerUsuarios();

            GridView gridViewUsuarios = (GridView)this.ucLupaMultiplosUsuarios.FindControl("GridViewUsuariosSelecionados");

            if (gridViewUsuarios.Rows.Count > 0)
            {
                BMUsuario bmUsu         = new BMUsuario();
                Usuario   usuarioLogado = bmUsu.ObterUsuarioLogado();

                foreach (GridViewRow row in gridViewUsuarios.Rows)
                {
                    if (row.RowType == DataControlRowType.DataRow)
                    {
                        CheckBox chkRow = (row.Cells[0].FindControl("chkRow") as CheckBox);

                        // Se estiver selecionado
                        if (chkRow.Checked)
                        {
                            ManterUsuario   mantUsuario = new ManterUsuario();
                            classes.Usuario user        = mantUsuario.ObterPorCPF(row.Cells[2].Text);

                            emailEnvioEdicao.adicionarUsuario(user, usuarioLogado);
                        }
                    }
                }
            }
        }
示例#2
0
        public void ExcluirSolucaoEducacionalAutoIndicativa(int idItemTrilha, string cpfSolicitante,
                                                            Usuario usuarioLogado = null)
        {
            if (usuarioLogado == null)
            {
                var manterUsuario = new ManterUsuario();
                usuarioLogado = manterUsuario.ObterPorCPF(cpfSolicitante);
                if (usuarioLogado == null)
                {
                    throw new AcademicoException("Acesso Restrito.");
                }
            }
            var itemTrilha = ObterItemTrilhaPorID(idItemTrilha);

            if (itemTrilha == null)
            {
                throw new AcademicoException("Acesso Restrito.");
            }
            if (itemTrilha.Usuario.ID != usuarioLogado.ID)
            {
                throw new AcademicoException("Acesso Restrito.");
            }
            var bmItemTrilhaParticipacao = new BMItemTrilhaParticipacao();
            var lista =
                bmItemTrilhaParticipacao.ObterItemTrilhaParticipacaoPorFiltro(new ItemTrilhaParticipacao
            {
                ItemTrilha = itemTrilha
            });

            if (lista.Any())
            {
                foreach (var item in lista)
                {
                    bmItemTrilhaParticipacao.Excluir(item);
                }
            }
            var perfilPodeExcluir = usuarioLogado.IsMonitorTrilha() || usuarioLogado.IsAdministradorTrilha() ||
                                    usuarioLogado.IsAdministrador();

            if (!perfilPodeExcluir)
            {
                bool usuarioAssociado = bmItemTrilhaParticipacao.ItemAutoIndicativo(idItemTrilha, cpfSolicitante);
                if (!usuarioAssociado)
                {
                    throw new AcademicoException(
                              "Você não pode excluir itens da trilha de outro usuário ou sugerido pela UC.");
                }
            }
            this.ExcluirItemTrilha(idItemTrilha);
        }
示例#3
0
        public string MatriculaSolucaoEducacionalGestorUC(int idOferta, string cpf, int idStatusMatricula, int idTurma, string solicitante, string dataInscricao = "", string dataConclusao = "")
        {
            var manterUsuario = new ManterUsuario();
            var usuario       = manterUsuario.ObterPorCPF(cpf);
            var usuarioLogado = new BMUsuario().ObterPorCPF(solicitante);

            if (!(idStatusMatricula == 2 || idStatusMatricula == 6 || idStatusMatricula == 8))
            {
                throw new AcademicoException("Status da matrícula inválido");
            }
            if (usuario == null)
            {
                throw new AcademicoException("CPF não localizado na base");
            }

            var oferta = new BMOferta().ObterPorId(idOferta);

            if (oferta == null)
            {
                throw new AcademicoException("Oferta não localizada na base");
            }

            if (oferta.ListaMatriculaOferta == null)
            {
                oferta.ListaMatriculaOferta = new List <MatriculaOferta>();
            }

            if (oferta.ListaMatriculaOferta.Any(x => x.Usuario.ID == usuario.ID && (x.StatusMatricula == enumStatusMatricula.Inscrito || x.StatusMatricula == enumStatusMatricula.PendenteConfirmacaoAluno)))
            {
                throw new AcademicoException("Usuário já inscrito nesta oferta");
            }

            //VERIFICA PRÉ-REQUISITO
            if (oferta.SolucaoEducacional.ListaPreRequisito.Any())
            {
                var aprovados = new List <enumStatusMatricula> {
                    enumStatusMatricula.Aprovado,
                    enumStatusMatricula.Concluido
                };

                foreach (var item in oferta.SolucaoEducacional.ListaPreRequisito)
                {
                    if (!usuario.ListaMatriculaOferta.Any(x => aprovados.Contains(x.StatusMatricula) && x.Oferta.SolucaoEducacional.ID == item.PreRequisito.ID))
                    {
                        throw new AcademicoException("Erro: Existem soluções como pré-requisito que não estão cursadas");
                    }
                }
            }

            if (usuarioLogado.UF.ID != (int)enumUF.NA)
            {
                if (usuario.UF.ID != usuarioLogado.UF.ID)
                {
                    throw new AcademicoException("Este usuário não é do seu estado");
                }
            }

            var ofertaEstado = oferta.ListaPermissao.FirstOrDefault(f => f.Uf != null && f.Uf.ID == usuario.UF.ID);

            if (ofertaEstado == null)
            {
                throw new AcademicoException("Erro: A vaga não é permitida para o seu estado");
            }
            if (ofertaEstado.QuantidadeVagasPorEstado > 0)
            {
                var qtdMatriculaOfertaPorEstado = oferta.ListaMatriculaOferta.Count(x => !x.IsUtilizado() && x.UF.ID == ofertaEstado.Uf.ID);

                if (qtdMatriculaOfertaPorEstado >= ofertaEstado.QuantidadeVagasPorEstado && !oferta.FiladeEspera)
                {
                    throw new AcademicoException("Erro: As vagas já foram preenchidas para o seu estado");
                }
            }

            if (usuario.ListaMatriculaOferta.Any(x => x.Usuario.ID == usuario.ID && x.Oferta.ID == oferta.ID && x.Oferta.SolucaoEducacional.ID == oferta.SolucaoEducacional.ID && (x.StatusMatricula == enumStatusMatricula.Inscrito ||
                                                                                                                                                                                   x.StatusMatricula == enumStatusMatricula.PendenteConfirmacaoAluno ||
                                                                                                                                                                                   x.StatusMatricula == enumStatusMatricula.Aprovado ||
                                                                                                                                                                                   x.StatusMatricula == enumStatusMatricula.Concluido
                                                                                                                                                                                   )))
            {
                throw new AcademicoException("Usuário já cursou esta Solução Educacional");
            }

            var matriculaOferta = new MatriculaOferta
            {
                Usuario         = usuario,
                Oferta          = oferta,
                DataSolicitacao = DateTime.Now,
                StatusMatricula = (enumStatusMatricula)idStatusMatricula,
                UF = usuario.UF,
                NivelOcupacional = usuario.NivelOcupacional,
                Auditoria        = new Auditoria(solicitante)
            };

            (new ManterMatriculaOferta()).VerificarPoliticaDeConsequencia(matriculaOferta);

            if (matriculaOferta.StatusMatricula == enumStatusMatricula.Inscrito)
            {
                Turma turma;
                if (idTurma > 0)
                {
                    turma = oferta.ListaTurma.FirstOrDefault(x => x.ID == idTurma);
                    if (turma == null)
                    {
                        throw new AcademicoException("A turma informada não pertence a oferta informada");
                    }
                }
                else
                {
                    turma = oferta.ListaTurma.FirstOrDefault();
                }

                if (turma != null)
                {
                    if (!turma.InAberta)
                    {
                        throw new AcademicoException("A turma não está aberta para inscrições");
                    }

                    if (!usuarioLogado.IsGestor() && (turma.Oferta.DataInicioInscricoes > DateTime.Now || (turma.Oferta.DataFimInscricoes.HasValue && turma.Oferta.DataFimInscricoes.Value < DateTime.Now)))
                    {
                        throw new AcademicoException("A oferta selecionada está fora do período de inscrição");
                    }

                    //Verifica se a quantidade de matriculas para a turma foi preenchida.
                    if (turma.QuantidadeMaximaInscricoes > 0 && turma.QuantidadeAlunosMatriculadosNaTurma >= turma.QuantidadeMaximaInscricoes)
                    {
                        throw new AcademicoException("Todas as vagas para esta turma foram preenchidas");
                    }

                    var matriculaTurma = new MatriculaTurma
                    {
                        Turma           = turma,
                        MatriculaOferta = matriculaOferta,
                        DataMatricula   = DateTime.Now,
                        Auditoria       = new Auditoria(solicitante)
                    };

                    matriculaTurma.DataLimite = matriculaTurma.CalcularDataLimite(matriculaOferta.Oferta);

                    matriculaTurma.DataMatricula = DateTime.Now;
                    if (!usuarioLogado.IsGestor() && matriculaOferta.Oferta.DataInicioInscricoes.HasValue && matriculaOferta.Oferta.DataFimInscricoes.HasValue && !matriculaTurma.DataMatricula.Date.Between(matriculaOferta.Oferta.DataInicioInscricoes.Value, matriculaOferta.Oferta.DataFimInscricoes.Value))
                    {
                        throw new AcademicoException(
                                  "Data de matrícula fora do periodo de inscrição da turma que é de " +
                                  matriculaTurma.Turma.DataInicio.ToString("dd/MM/yyyy") + " a " +
                                  (matriculaTurma.Turma.DataFinal != null
                                ? matriculaTurma.Turma.DataFinal.Value.ToString("dd/MM/yyyy")
                                : ""));
                    }

                    if (matriculaOferta.MatriculaTurma == null)
                    {
                        matriculaOferta.MatriculaTurma = new List <MatriculaTurma>();
                    }

                    matriculaOferta.MatriculaTurma.Add(matriculaTurma);
                }
            }

            new BMMatriculaOferta().Salvar(matriculaOferta);

            try
            {
                if (matriculaOferta.StatusMatricula == enumStatusMatricula.PendenteConfirmacaoAluno)
                {
                    var templateMensagemEmailOfertaExclusiva = TemplateUtil.ObterInformacoes(enumTemplate.EnvioEmailParaPendenteDeConfirmacao);

                    var assuntoDoEmail = templateMensagemEmailOfertaExclusiva.Assunto;

                    var corpoEmail = templateMensagemEmailOfertaExclusiva.TextoTemplate;

                    var emailDoDestinatario = matriculaOferta.Usuario.Email;

                    if (matriculaOferta.StatusMatricula == enumStatusMatricula.PendenteConfirmacaoAluno)
                    {
                        assuntoDoEmail = assuntoDoEmail.Replace("#NOME_CURSO", matriculaOferta.NomeSolucaoEducacional);
                        corpoEmail     = new ManterOferta().CorpoEmail(corpoEmail, matriculaOferta);

                        EmailUtil.Instancia.EnviarEmail(emailDoDestinatario.Trim(), assuntoDoEmail, corpoEmail);
                    }
                }
            }
            catch
            {
                // ignored
            }

            return(string.Empty);
        }
示例#4
0
        public AuthModule() : base("Auth")
        {
            Get["/"] = p =>
            {
                return("Token Valid!");
            };

            Post["Login"] = p =>
            {
                var dadosAcesso = this.Bind <DTODadosAcesso>();

                var usuario = new ManterUsuario().ObterTodosIQueryable().Where(x => x.CPF == dadosAcesso.Login)
                              .Select(x => new Usuario
                {
                    ID    = x.ID,
                    Senha = x.Senha
                })
                              .FirstOrDefault();

                if (usuario == null)
                {
                    return("Usuário não existe.");
                }

                if (usuario.Senha != dadosAcesso.Senha)
                {
                    return("Senha inválida.");
                }

                var nivel = manterTrilhaNivel.ObterTrilhaNivelPorID(dadosAcesso.NivelID);

                if (nivel == null || !nivel.UsuarioPossuiMatricula(usuario.ID))
                {
                    return(null);
                }

                return
                    (Response.AsJson(JsonWebToken.Encode(new { id = usuario.ID, nid = nivel.ID },
                                                         manterUsuario.GerarTokenTrilha(usuario), JwtHashAlgorithm.HS256)));
            };

            Post["LoginFornecedor"] = p =>
            {
                var dadosAcesso = this.Bind <DTODadosAcesso>();

                var usuario = manterUsuario.ObterPorCPF(dadosAcesso.Login);

                if (usuario == null)
                {
                    return("Usuário não existe.");
                }

                if (usuario.Senha != dadosAcesso.Senha)
                {
                    return("Senha inválida.");
                }

                var nivel = manterTrilhaNivel.ObterTrilhaNivelPorID(dadosAcesso.NivelID);

                if (!nivel.UsuarioPossuiMatricula(usuario.ID))
                {
                    return(null);
                }

                var manterFornecedor = new ManterFornecedor();
                var fornecedor       = manterFornecedor.ObterFornecedorPorID(25);

                if (fornecedor == null)
                {
                    return("Fornecedor não existe.");
                }

                return(Response.AsJson(JsonWebToken.Encode(new { id = usuario.ID, fase = 1, itrid = 1, nid = nivel.ID }, fornecedor.TextoCriptografia, JwtHashAlgorithm.HS256), HttpStatusCode.OK));
            };
        }