コード例 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="id"></param>
        /// <param name="entity"></param>
        /// <returns></returns>
        public PacienteDto Alterar(int id, Paciente entity)
        {
            var emailExistente = _pacienteRepositorio.SelecionarPorEmailPorId(entity.Email, id);

            //Verifica se já existe um Paciente com o Email já cadastrado
            if (emailExistente != null)
            {
                throw new ConflitoException($"Já existe usuário cadastrado com Email {emailExistente.Email}!");
            }

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

            return(_pacienteRepositorio.SelecionarPorId(id));
        }
コード例 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="id"></param>
        /// <param name="entity"></param>
        /// <returns></returns>
        public PacienteDto Alterar(int id, Paciente entity)
        {
            var cpfExistente = _pacienteRepositorio.SelecionarPorCpf(entity.Cpf);

            if (cpfExistente != null)
            {
                if (cpfExistente.Id != id)
                {
                    throw new ConflitoException($"Já existe cadastrado o CPF {cpfExistente.Cpf}, para outro médico!");
                }
            }

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

            return(_pacienteRepositorio.SelecionarPorId(id));
        }
コード例 #3
0
        /// <summary>
        /// Verifica se o CPF 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
        /// paciente é maior de idade. Antes de alterar os dados de um paciente.
        /// </summary>
        /// <param name="id">Usado para buscar o paciente.</param>
        /// <param name="entity">Objeto com as informações a serem alteradas.</param>
        /// <returns>Seleciona um paciente do Database ou gera alguma exceção.</returns>
        public Paciente Alterar(int id, Paciente entity)
        {
            Paciente 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 formato e a quantidade de caracteres do telefone residencial são válidos.
            if (TelefoneValido.Verificar(TelefoneValido.LimparFormatacao(entity.TelefoneRes)) == false)
            {
                throw new DadoInvalidoException($"O número de telefone residencial:\"{entity.TelefoneRes}\" é inválido!");
            }

            //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 = _pacienteRepositorio.SelecionarPorCpf(entity.Cpf);

                if (obj != null && id != obj.Id)
                {
                    throw new ConflitoException($"O CPF: \"{entity.Cpf}\", já foi cadastrado!");
                }
            }

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

            //Verifica se o paciente é 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;
            _pacienteRepositorio.Alterar(entity);

            return(_pacienteRepositorio.SelecionarPorId(id));
        }