public async Task <UsuarioAutenticacaoRetornoDto> Autenticar(string login, string senha) { login = login.Trim().ToLower(); var retornoAutenticacaoEol = await servicoAutenticacao.AutenticarNoEol(login, senha); if (!retornoAutenticacaoEol.Item1.Autenticado) { return(retornoAutenticacaoEol.Item1); } if (!retornoAutenticacaoEol.Item4 && retornoAutenticacaoEol.Item5) { retornoAutenticacaoEol.Item3 = ValidarPerfilCJ(retornoAutenticacaoEol.Item2, retornoAutenticacaoEol.Item1.UsuarioId, retornoAutenticacaoEol.Item3, login).Result; } var dadosUsuario = await servicoEOL.ObterMeusDados(login); var usuario = servicoUsuario.ObterUsuarioPorCodigoRfLoginOuAdiciona(retornoAutenticacaoEol.Item2, login, dadosUsuario.Nome, dadosUsuario.Email, true); retornoAutenticacaoEol.Item1.PerfisUsuario = await servicoPerfil.DefinirPerfilPrioritario(retornoAutenticacaoEol.Item3, usuario); var perfilSelecionado = retornoAutenticacaoEol.Item1.PerfisUsuario.PerfilSelecionado; var permissionamentos = await repositorioCache.Obter($"Permissionamento-{perfilSelecionado.ToString()}", () => servicoEOL.ObterPermissoesPorPerfil(perfilSelecionado), 720); if (permissionamentos == null || !permissionamentos.Any()) { retornoAutenticacaoEol.Item1.Autenticado = false; return(retornoAutenticacaoEol.Item1); } var listaPermissoes = permissionamentos .Distinct() .Select(a => (Permissao)a) .ToList(); // Revoga token atual para geração de um novo //await servicoTokenJwt.RevogarToken(login); // Gera novo token e guarda em cache retornoAutenticacaoEol.Item1.Token = servicoTokenJwt.GerarToken(login, dadosUsuario.Nome, usuario.CodigoRf, retornoAutenticacaoEol.Item1.PerfisUsuario.PerfilSelecionado, listaPermissoes); retornoAutenticacaoEol.Item1.DataHoraExpiracao = servicoTokenJwt.ObterDataHoraExpiracao(); //var fromDate = servicoTokenJwt.ObterDataHoraCriacao(); usuario.AtualizaUltimoLogin(); repositorioUsuario.Salvar(usuario); await servicoAbrangencia.Salvar(login, perfilSelecionado, true); return(retornoAutenticacaoEol.Item1); }
public async Task <MeusDadosDto> BuscarMeusDados() { var login = servicoUsuario.ObterLoginAtual(); var meusDados = await servicoEOL.ObterMeusDados(login); return(meusDados); }
public async Task <MeusDadosDto> BuscarMeusDados() { var login = servicoUsuario.ObterLoginAtual(); var meusDados = await servicoEOL.ObterMeusDados(login); var dadosUsuarioSgp = repositorioUsuario.ObterPorCodigoRfLogin(null, login); if (dadosUsuarioSgp != null) { meusDados.Email = dadosUsuarioSgp.Email; } return(meusDados); }
public void NotificarCompensacaoAusencia(long compensacaoId) { // Verifica se compensação possui alunos vinculados var alunos = repositorioCompensacaoAusenciaAluno.ObterPorCompensacao(compensacaoId).Result; if (alunos == null || !alunos.Any()) { return; } // Verifica se possui aluno não notificado na compensação alunos = alunos.Where(a => !a.Notificado); if (!alunos.Any()) { return; } // Carrega dados da compensacao a notificar var compensacao = repositorioCompensacaoAusencia.ObterPorId(compensacaoId); var turma = repositorioTurma.ObterPorId(compensacao.TurmaId); var ue = repositorioUe.ObterUEPorTurma(turma.CodigoTurma); var dre = repositorioDre.ObterPorId(ue.DreId); var disciplinaEOL = ObterNomeDisciplina(compensacao.DisciplinaId); MeusDadosDto professor = servicoEOL.ObterMeusDados(compensacao.CriadoRF).Result; // Carrega dados dos alunos não notificados var alunosTurma = servicoEOL.ObterAlunosPorTurma(turma.CodigoTurma).Result; var alunosDto = new List <CompensacaoAusenciaAlunoQtdDto>(); foreach (var aluno in alunos) { var alunoEol = alunosTurma.FirstOrDefault(a => a.CodigoAluno == aluno.CodigoAluno); alunosDto.Add(new CompensacaoAusenciaAlunoQtdDto() { NumeroAluno = alunoEol.NumeroAlunoChamada, CodigoAluno = aluno.CodigoAluno, NomeAluno = alunoEol.NomeAluno, QuantidadeCompensacoes = aluno.QuantidadeFaltasCompensadas }); } var gestores = BuscaGestoresUe(ue.CodigoUe); if (gestores != null && gestores.Any()) { foreach (var gestor in gestores) { var notificacaoId = NotificarCompensacaoAusencia(compensacaoId , gestor.Usuario , professor.Nome , professor.CodigoRf , disciplinaEOL , turma.CodigoTurma , turma.Nome , turma.ModalidadeCodigo.GetAttribute <DisplayAttribute>().ShortName , ue.CodigoUe , ue.Nome , ue.TipoEscola.GetAttribute <DisplayAttribute>().ShortName , dre.CodigoDre , dre.Nome , compensacao.Bimestre , compensacao.Nome , alunosDto); // Grava vinculo de notificação x compensação repositorioNotificacaoCompensacaoAusencia.Inserir(notificacaoId, compensacaoId); } // Marca aluno como notificado alunosDto.ForEach(alunoDto => { var aluno = alunos.FirstOrDefault(a => a.CodigoAluno == alunoDto.CodigoAluno); aluno.Notificado = true; repositorioCompensacaoAusenciaAluno.Salvar(aluno); }); } }