Example #1
0
        public void Nao_Devo_Conseguir_Validar_Sem_Nenhum_Endereco_Comercial()
        {
            this._empresaPadrao.AdicionaDocumento(new CNPJ("12345678901234"));
            this._empresaPadrao.AdicionaTelefone(this._telefonePadrao);

            ValidadorEmpresa validador = new ValidadorEmpresa(null);

            try
            {
                validador.ValidarCamposObrigatorios(this._empresaPadrao);
            }
            catch (ExcecaoEnderecoComercialNaoInformado)
            {
                this._empresaPadrao.AdicionaEndereco(new Endereco("Rua de teste", "823", new CEP("86430-000"), CidadeStub.GetInstance(1, "SANTO ANTÔNIO DA PLATINA", EstadoStub.GetInstance(1, "PR")), TipoEndereco.Cobranca));
                validador.ValidarCamposObrigatorios(this._empresaPadrao);
            }
        }
Example #2
0
        public void Nao_Devo_Conseguir_Validar_Sem_Nenhum_CNPJ_Adicionado()
        {
            this._empresaPadrao.AdicionaTelefone(this._telefonePadrao);
            this._empresaPadrao.AdicionaEndereco(this._enderecoPadrao);

            ValidadorEmpresa validador = new ValidadorEmpresa(null);

            try
            {
                validador.ValidarCamposObrigatorios(this._empresaPadrao);
            }
            catch (ExcecaoCNPJNaoInformado)
            {
                this._empresaPadrao.AdicionaDocumento(new IE("06388715907"));
                validador.ValidarCamposObrigatorios(this._empresaPadrao);
            }
        }
Example #3
0
        public void Nao_Devo_Conseguir_Validar_Sem_Nenhum_Telefone_Adicionado()
        {
            this._empresaPadrao.AdicionaDocumento(new CNPJ("12345678901234"));
            this._empresaPadrao.AdicionaEndereco(this._enderecoPadrao);

            ValidadorEmpresa validador = new ValidadorEmpresa(null);

            try
            {
                validador.ValidarCamposObrigatorios(this._empresaPadrao);
            }
            catch (ExcecaoNenhumTelefoneInformado)
            {
                this._empresaPadrao.AdicionaTelefone(this._telefonePadrao);
                this._empresaPadrao.RemoveTelefone(this._telefonePadrao);
                validador.ValidarCamposObrigatorios(this._empresaPadrao);
            }
        }
Example #4
0
        public Boolean Gravar(DTOPessoa dtoEmpresaQueVaiSerPersistida)
        {
            if (dtoEmpresaQueVaiSerPersistida == null)
            {
                return(false);
            }

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

            if (pessoa == null)
            {
                pessoa = new Empresa(dtoEmpresaQueVaiSerPersistida.Nome, dtoEmpresaQueVaiSerPersistida.DtNascimento);
            }
            else
            {
                pessoa.Nome         = dtoEmpresaQueVaiSerPersistida.Nome;
                pessoa.DtNascimento = dtoEmpresaQueVaiSerPersistida.DtNascimento;
            }

            pessoa.LimparColecoes();
            foreach (DTODocumento dto in dtoEmpresaQueVaiSerPersistida.Documentos)
            {
                pessoa.AdicionaDocumento(dto.ConverteDTOParaDocumento());
            }

            foreach (DTOTelefone dto in dtoEmpresaQueVaiSerPersistida.Telefones)
            {
                pessoa.AdicionaTelefone(dto.ConverteDTOParaTelefone());
            }

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

            DTODocumento dtoDocumento = dtoEmpresaQueVaiSerPersistida.Documentos.SingleOrDefault(d => (d.TipoDocumento.Equals(TipoDocumento.CNPJ)));
            CNPJ         cnpj;

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

            Pessoa  pessoaComOMesmoCNPJ = this._repositorio.ObterPorDocumento(cnpj);
            Empresa empresaEncontradaNoBD;

            if (pessoaComOMesmoCNPJ != null)
            {
                empresaEncontradaNoBD = (Empresa)pessoaComOMesmoCNPJ;
            }
            else
            {
                empresaEncontradaNoBD = null;
            }

            // Efetuando as validações
            ValidadorEmpresa validador = new ValidadorEmpresa(empresaEncontradaNoBD);

            Empresa empresaQueVaiSerPersistida = (Empresa)pessoa;

            validador.ValidarCamposObrigatorios(empresaQueVaiSerPersistida);

            if (dtoEmpresaQueVaiSerPersistida.IsNovo())
            {
                validador.ValidarDuplicidadeCNPJDeNovaEmpresa(empresaQueVaiSerPersistida);
            }
            else
            {
                validador.ValidarDuplicidadeCNPJDeEmpresaEmAlteracao(empresaQueVaiSerPersistida);
            }

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

            return(true);
        }