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));
        }
Example #2
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));
        }
Example #3
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);
        }
Example #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);
        }
Example #5
0
        public void FuncaoValidaCpf_Erro(string cpf)
        {
            //Arrange

            //Act

            //Assert
            Assert.False(ValidacaoCpf.ValidaCPF(cpf));
        }
Example #6
0
        public void FuncaoValidaCpf_ok(string cpf)
        {
            //Arrange

            //Act

            //Assert
            Assert.True(ValidacaoCpf.ValidaCPF(cpf));
        }
        /// <summary>
        /// Validação server
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public override bool IsValid(object value)
        {
            if (value == null || string.IsNullOrEmpty(value.ToString()))
            {
                return(true);
            }

            bool valido = ValidacaoCpf.ValidaCPF(value.ToString());

            return(valido);
        }
        public FornecedorValidation()
        {
            RuleFor(f => f.Nome)
            .NotEmpty().WithMessage("O campo {PropertyName} precisa ser fornecido")
            .Length(2, 100).WithMessage(("O campo {PropertyName} precisa ter entre {MinLength} e {MaxLength} caracteres"));

            When(f => f.TipoFornecedor == TipoFornecedor.PessoaFisica, () =>
            {
                RuleFor(f => f.Documento.Length).Equal(ValidacaoCpf.TamanhoCpf)
                .WithMessage("O campo Documento precisa ter {ComparisonValue} caracteres e foi fornecido {PropertyValue}.");

                RuleFor(f => ValidacaoCpf.Validar(f.Documento)).Equal(true)
                .WithMessage("O campo Documento fornecido é inválido.");
            });

            When(f => f.TipoFornecedor == TipoFornecedor.PessoaJuridica, () =>
            {
                RuleFor(f => f.Documento.Length).Equal(ValidacaoCnpf.TamanhoCNPJ)
                .WithMessage("O campo Documento precisa ter {ComparisonValue} caracteres e foi fornecido {PropertyValue}.");

                RuleFor(f => ValidacaoCnpf.Validar(f.Documento)).Equal(true)
                .WithMessage("O campo Documento fornecido é inválido.");
            });
        }
Example #9
0
        /// <summary>
        /// Verifica se o CPF, o CRM e o email já não estão cadastrados, se o CPF é válido, se existem campos obrigatórios
        /// que não estão preenchidos, se os campos respeitam os limites de caracteres especificados no Database e se o
        /// médico é maior de idade. Antes de alterar os dados sobre um médico.
        /// </summary>
        /// <param name="id">Usado para buscar o médico no Database.</param>
        /// <param name="entity">Objeto com as informações a serem alteradas.</param>
        /// <returns>Seleciona um médico do Database ou gera alguma exceção.</returns>
        public Medico Alterar(int id, Medico entity)
        {
            Medico obj;

            //Verifica se existem campos vazios.
            if (CamposVazios.Verificar(entity))
            {
                throw new DadoInvalidoException("Existem campos obrigatórios que não foram preenchidos!");
            }

            //Verifica se nenhum campo do objeto entity excede o limite de caracteres estipulado no Database.
            if (ExcedeLimiteDeCaracteres.Verificar(entity))
            {
                throw new DadoInvalidoException("Existem campos que excedem o limite de caracteres permitidos!");
            }

            //Converte o gênero para caixa alta e verifica se o gênero é válido.
            if (GeneroValido.Verificar(GeneroValido.CaixaAlta(entity.Genero)) == false)
            {
                throw new DadoInvalidoException($"O gênero: \"{entity.Genero}\", é inválido!");
            }

            //Verifica se o formato e a quantidade de caracteres do celular são válidos.
            if (TelefoneValido.Verificar(TelefoneValido.LimparFormatacao(entity.Celular)) == false)
            {
                throw new DadoInvalidoException($"O número de celular:\"{entity.Celular}\" é inválido!");
            }

            //Verifica se o CRM já não foi cadastrado.
            obj = _medicoRepositorio.SelecionarPorCrm(entity.Crm);
            if (obj != null && obj.Id != id)
            {
                throw new ConflitoException($"O CRM: \"{entity.Crm}\", já foi cadastrado!");
            }

            //Verifica se o CPF é válido e se ele já foi cadastrado.
            if (ValidacaoCpf.Verificar(entity.Cpf) == false)
            {
                throw new DadoInvalidoException($"O CPF: \"{entity.Cpf}\" é invalido!");
            }
            else
            {
                obj = _medicoRepositorio.SelecionarPorCpf(entity.Cpf);
                if (obj != null && obj.Id != id)
                {
                    throw new ConflitoException($"O CPF: \"{entity.Cpf}\", já foi cadastrado!");
                }
                else if (_pacienteRepositorio.SelecionarPorCpf(entity.Cpf) != null)
                {
                    throw new ConflitoException($"O CPF: \"{entity.Cpf}\", já foi cadastrado!");
                }
            }

            //Verifica se o email já foi casatrado.
            obj = _medicoRepositorio.SelecionarPorEmail(entity.Email);
            if (obj != null && id != obj.Id)
            {
                throw new ConflitoException($"O email: \"{entity.Email}\", já foi cadastrado!");
            }

            //Verifica se o médico é maior de idade.
            if (Maioridade.Verificar(entity.DataNasc) == false)
            {
                throw new DadoInvalidoException("Idade inválida - Apenas maiores de 18 anos podem se cadastrar");
            }

            entity.Id = id;
            _medicoRepositorio.Alterar(entity);

            return(_medicoRepositorio.SelecionarPorId(id));
        }