コード例 #1
0
        public void Nao_Devo_Conseguir_Validar_Sem_Nenhum_CPF_Adicionado()
        {
            this._clientePadrao.AdicionaTelefone(this._telefonePadrao);
            this._clientePadrao.AdicionaEndereco(this._enderecoPadrao);

            ValidadorCliente validador = new ValidadorCliente(null);

            try
            {
                // Primeiro testo se não há nenhum cpf com a coleção nula
                validador.ValidarCamposObrigatorios(this._clientePadrao);
            }
            catch (ExcecaoCPFNaoInformado)
            {
                // Depois testo com a coleção instânciada
                this._clientePadrao.AdicionaDocumento(new RG("89457968"));
                validador.ValidarCamposObrigatorios(this._clientePadrao);
            }
        }
コード例 #2
0
        public void Nao_Devo_Conseguir_Validar_Sem_Nenhum_Endereco()
        {
            this._clientePadrao.AdicionaDocumento(new CPF("12345678901234"));
            this._clientePadrao.AdicionaTelefone(this._telefonePadrao);

            ValidadorCliente validador = new ValidadorCliente(null);

            try
            {
                validador.ValidarCamposObrigatorios(this._clientePadrao);
            }
            catch (ExcecaoNenhumEnderecoInformado)
            {
                this._clientePadrao.AdicionaEndereco(this._enderecoPadrao);
                this._clientePadrao.RemoveEndereco(this._enderecoPadrao);
                validador.ValidarCamposObrigatorios(this._clientePadrao);
            }
        }
コード例 #3
0
        public Boolean Gravar(DTOPessoa dtoClienteQueVaiSerPersistido)
        {
            if (dtoClienteQueVaiSerPersistido == null)
                return false;

            Pessoa pessoa = this._repositorio.Obter(dtoClienteQueVaiSerPersistido.ID);

            if (pessoa == null)
                pessoa = new Cliente(dtoClienteQueVaiSerPersistido.Nome, dtoClienteQueVaiSerPersistido.DtNascimento);
            else
            {
                pessoa.Nome = dtoClienteQueVaiSerPersistido.Nome;
                pessoa.DtNascimento = dtoClienteQueVaiSerPersistido.DtNascimento;
            }

            pessoa.LimparColecoes();
            foreach (DTODocumento dto in dtoClienteQueVaiSerPersistido.Documentos)
                pessoa.AdicionaDocumento(dto.ConverteDTOParaDocumento());

            foreach (DTOTelefone dto in dtoClienteQueVaiSerPersistido.Telefones)
                pessoa.AdicionaTelefone(dto.ConverteDTOParaTelefone());

            foreach (DTOEndereco dto in dtoClienteQueVaiSerPersistido.Enderecos)
                pessoa.AdicionaEndereco(dto.ConverteDTOParaEndereco(x => this._repositorioCidade.Obter(x.ID)));

            DTODocumento dtoDocumento = dtoClienteQueVaiSerPersistido.Documentos.SingleOrDefault(d => (d.TipoDocumento.Equals(TipoDocumento.CPF)));
            CPF cpf;

            try
            {
                cpf = dtoDocumento.ValorDocumento;
            }
            catch (NullReferenceException)
            {
                cpf = null;
            }

            Pessoa pessoaComOMesmoCPF = this._repositorio.ObterPorDocumento(cpf);
            Cliente clienteEncontradoNoBD;

            try
            {
                if (pessoaComOMesmoCPF != null)
                    clienteEncontradoNoBD = (Cliente)pessoaComOMesmoCPF;
                else
                    clienteEncontradoNoBD = null;
            }
            catch (InvalidCastException)
            {
                clienteEncontradoNoBD = null;
            }

            // Efetuando as validações
            ValidadorCliente validador = new ValidadorCliente(clienteEncontradoNoBD);

            Cliente clienteQueVaiSerPersistido = (Cliente)pessoa;
            validador.ValidarCamposObrigatorios(clienteQueVaiSerPersistido);

            if (dtoClienteQueVaiSerPersistido.IsNovo())
                validador.ValidarDuplicidadeCPFDeNovoCliente(clienteQueVaiSerPersistido);
            else
                validador.ValidarDuplicidadeCPFDeClienteEmAlteracao(clienteQueVaiSerPersistido);

            this._repositorio.Salvar(pessoa);
            dtoClienteQueVaiSerPersistido.ID = pessoa.Id; ;

            return true;
        }