예제 #1
0
        public async Task <UsuarioDto> Executar(string codigoDre, long codigoUe, string cpf)
        {
            if (ValidacaoCpf.Valida(cpf) == false)
            {
                throw new NegocioException($"CPF inválido!");
            }

            var usuarioCoreSSO = await mediator.Send(new ObterUsuarioCoreSSOQuery(cpf));

            await mediator.Send(new ObterDadosAlunosPorDreUeCpfResponsavelQuery(codigoDre, codigoUe, cpf));

            var usuarioApp = await mediator.Send(new ObterUsuarioNaoExcluidoPorCpfQuery(cpf));

            var usuarioEol = await mediator.Send(new ObterDadosResumidosReponsavelPorCpfQuery(cpf));

            if (usuarioCoreSSO == null)
            {
                throw new NegocioException($"Este CPF não consta como responsável de um estudante ativo nesta Unidade Escolar.");
            }

            if (usuarioApp == null && usuarioCoreSSO != null)
            {
                throw new NegocioException($"O usuário {Formatacao.FormatarCpf(cpf)} deverá informar a data de nascimento de um dos estudantes que é responsável no campo de senha!");
            }

            return(new UsuarioDto(usuarioApp.Cpf, usuarioEol.Nome));
        }
예제 #2
0
        private async Task <IEnumerable <ResponsavelAlunoEOLDto> > ObterUsuariosAlunos()
        {
            var usuariosComApp =
                (await ObterUsuariosAlunosNotificacoesApp())
                .Select(usuario => usuario.CpfResponsavel)
                .Distinct()
                .OrderBy(u => u)
                .ToArray();

            var responsaveisEOL =
                (await responsavelEOLRepositorio.ListarCpfResponsavelAlunoDaDreUeTurma())
                .AsParallel()
                .Where(resp => ValidacaoCpf.Valida(resp.CpfResponsavel.ToString("00000000000")))
                .Select(usuarioAluno =>
            {
                usuarioAluno
                .TemAppInstalado =
                    Array
                    .BinarySearch(usuariosComApp, usuarioAluno.CpfResponsavel) >= 0;
                return(usuarioAluno);
            })
                .ToArray();

            return(responsaveisEOL);
        }
        public async Task <RespostaApi> Executar(SolicitarReiniciarSenhaDto solicitarReiniciarSenhaDto)
        {
            if (ValidacaoCpf.Valida(solicitarReiniciarSenhaDto.Cpf) == false)
            {
                throw new NegocioException($"CPF inválido!");
            }

            var usuarioCoreSSO = await mediator.Send(new ObterUsuarioCoreSSOQuery(solicitarReiniciarSenhaDto.Cpf));

            await mediator.Send(new ObterDadosAlunosQuery(solicitarReiniciarSenhaDto.Cpf));

            var usuario = await mediator.Send(new ObterUsuarioPorCpfQuery(solicitarReiniciarSenhaDto.Cpf));

            if (usuario == null && usuarioCoreSSO != null)
            {
                throw new NegocioException($"O usuário {Formatacao.FormatarCpf(solicitarReiniciarSenhaDto.Cpf)} deverá informar a data de nascimento de um dos estudantes que é responsável no campo de senha!");
            }

            var usuarioEol = await mediator.Send(new ObterDadosResumidosReponsavelPorCpfQuery(solicitarReiniciarSenhaDto.Cpf));

            if (usuario.PrimeiroAcesso == true)
            {
                throw new NegocioException($"O usuário {Formatacao.FormatarCpf(solicitarReiniciarSenhaDto.Cpf)} - {usuarioEol.Nome} deverá informar a data de nascimento de um dos estudantes que é responsável no campo de senha!");
            }

            await mediator.Send(new ReiniciarSenhaCommand()
            {
                Id = usuario.Id, PrimeiroAcesso = true
            });

            var mensagemSucesso = $"A senha do usuário {Formatacao.FormatarCpf(usuario.Cpf)} - {usuarioEol.Nome} foi reiniciada com sucesso. No próximo acesso ao aplicativo o usuário deverá informar a data de nascimento de um dos estudantes que é responsável!";

            return(RespostaApi.Sucesso(mensagemSucesso));
        }
예제 #4
0
        private DashboardAdesaoDto ProcessaResponsavel(ResponsavelEOLDto responsavel, IEnumerable <Dominio.Entidades.Usuario> usuariosDoSistema, List <DashboardAdesaoUnificacaoDto> listaCpfsUnificados)
        {
            if (responsavel.CpfResponsavel == 0 || !listaCpfsUnificados.Any(a => a.CPF == responsavel.CpfResponsavel))
            {
                var cpf       = responsavel.CpfResponsavel.ToString("00000000000");
                var cpfValido = ValidacaoCpf.Valida(cpf);

                var usuarios_primeiro_acesso_incompleto = 0;
                var usuarios_validos           = 0;
                var usuarios_cpf_invalidos     = 0;
                var usuarios_sem_app_instalado = 0;

                if (cpfValido)
                {
                    var usuarioDoSistema = usuariosDoSistema.FirstOrDefault(a => a.Cpf == cpf);

                    if (usuarioDoSistema == null)
                    {
                        usuarios_sem_app_instalado = 1;
                    }
                    else
                    {
                        usuarios_primeiro_acesso_incompleto = usuarioDoSistema.PrimeiroAcesso ? 1 : 0;
                        usuarios_validos = !usuarioDoSistema.PrimeiroAcesso ? 1 : 0;
                    }
                }
                else
                {
                    usuarios_cpf_invalidos = 1;
                }

                var dashboard_adesao = new DashboardAdesaoDto
                {
                    dre_codigo   = responsavel.CodigoDre,
                    dre_nome     = responsavel.Dre,
                    ue_codigo    = responsavel.CodigoUe,
                    ue_nome      = responsavel.Ue,
                    codigo_turma = responsavel.CodigoTurma,
                    usuarios_primeiro_acesso_incompleto = usuarios_primeiro_acesso_incompleto,
                    usuarios_validos           = usuarios_validos,
                    usuarios_cpf_invalidos     = usuarios_cpf_invalidos,
                    usuarios_sem_app_instalado = usuarios_sem_app_instalado
                };

                listaDeCpfsUtilizados.Add(new DashboardAdesaoUnificacaoDto()
                {
                    CPF       = long.Parse(cpf),
                    DreCodigo = responsavel.CodigoDre,
                    PrimeiroAcessoIncompleto = usuarios_primeiro_acesso_incompleto,
                    TurmaCodigo            = responsavel.CodigoTurma,
                    UeCodigo               = responsavel.CodigoUe,
                    UsuarioCpfInvalido     = usuarios_cpf_invalidos,
                    UsuarioSemAppInstalado = usuarios_sem_app_instalado,
                    UsuarioValido          = usuarios_validos
                });

                return(dashboard_adesao);
            }
            return(null);
        }