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); } } } } }
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); }
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); }
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)); }; }