//Construtor
        public PessoaJuridicaDto(PessoaJuridica pessoaJuridica)
        {
            PessoaId = pessoaJuridica.PessoaId;
            Cnpj = pessoaJuridica.Cnpj;
            Nome = pessoaJuridica.Nome;
            Email = pessoaJuridica.Email;
            Fone = pessoaJuridica.Fone;
            Fax = pessoaJuridica.Fax;
            Celular = pessoaJuridica.Celular;
            Contato = pessoaJuridica.Contato;
            InscricaoMunicipal = pessoaJuridica.InscricaoMunicipal;
            InscricaoEstadual = pessoaJuridica.InscricaoEstadual;
            TipoDeCadastroId = pessoaJuridica.TipoDeCadastroId;

            Endereco enderecoPrincipal = pessoaJuridica.EnderecoPrincipal();
            EnderecoPrincipalCep = enderecoPrincipal.Cep;
            EnderecoPrincipalTipoDeLogradouro = enderecoPrincipal.TipoDeLogradouro;
            EnderecoPrincipalLogradouro = enderecoPrincipal.Logradouro;
            EnderecoPrincipalNumero = enderecoPrincipal.Numero;
            EnderecoPrincipalComplemento = enderecoPrincipal.Complemento;
            EnderecoPrincipalBairro = enderecoPrincipal.Bairro;
            EnderecoPrincipalMunicipio = enderecoPrincipal.Municipio;
            EnderecoPrincipalUf = enderecoPrincipal.Uf;

            Endereco enderecoCobranca = pessoaJuridica.EnderecoCobranca();
            EnderecoCobrancaCep = enderecoCobranca.Cep;
            EnderecoCobrancaTipoDeLogradouro = enderecoCobranca.TipoDeLogradouro;
            EnderecoCobrancaLogradouro = enderecoCobranca.Logradouro;
            EnderecoCobrancaNumero = enderecoCobranca.Numero;
            EnderecoCobrancaComplemento = enderecoCobranca.Complemento;
            EnderecoCobrancaBairro = enderecoCobranca.Bairro;
            EnderecoCobrancaMunicipio = enderecoCobranca.Municipio;
            EnderecoCobrancaUf = enderecoCobranca.Uf;

            Endereco enderecoEntrega = pessoaJuridica.EnderecoEntrega();
            EnderecoEntregaCep = enderecoEntrega.Cep;
            EnderecoEntregaTipoDeLogradouro = enderecoEntrega.TipoDeLogradouro;
            EnderecoEntregaLogradouro = enderecoEntrega.Logradouro;
            EnderecoEntregaNumero = enderecoEntrega.Numero;
            EnderecoEntregaComplemento = enderecoEntrega.Complemento;
            EnderecoEntregaBairro = enderecoEntrega.Bairro;
            EnderecoEntregaMunicipio = enderecoEntrega.Municipio;
            EnderecoEntregaUf = enderecoEntrega.Uf;
        }
        private void AjustaTipoEndereco(PessoaJuridica pessoaJuridica)
        {
            TipoDeEndereco tipoEnderecoPrincipal = db.TiposDeEndereco.Find(TipoDeEndereco.TipoDeEnderecoPrincipal.TipoDeEnderecoId);
            if (tipoEnderecoPrincipal == null)
                tipoEnderecoPrincipal = new TipoDeEndereco(TipoDeEndereco.TipoDeEnderecoPrincipal);

            TipoDeEndereco tipoEnderecoCobranca = db.TiposDeEndereco.FirstOrDefault(t => t.TipoDeEnderecoId == 2);
            if (tipoEnderecoCobranca == null)
                tipoEnderecoCobranca = new TipoDeEndereco(TipoDeEndereco.TipoDeEnderecoCobranca);

            TipoDeEndereco tipoEnderecoEntrega = db.TiposDeEndereco.FirstOrDefault(t => t.TipoDeEnderecoId == 3);
            if (tipoEnderecoEntrega == null)
                tipoEnderecoEntrega = new TipoDeEndereco(TipoDeEndereco.TipoDeEnderecoEntrega);

            pessoaJuridica.EnderecoPrincipal().TipoDeEndereco = tipoEnderecoPrincipal;
            pessoaJuridica.EnderecoCobranca().TipoDeEndereco = tipoEnderecoCobranca;
            pessoaJuridica.EnderecoEntrega().TipoDeEndereco = tipoEnderecoEntrega;
        }
 public PessoaJuridica ToEntity()
 {
     PessoaJuridica pessoaJuridica = new PessoaJuridica();
     AssignTo(pessoaJuridica);
     return pessoaJuridica;
 }
        public void AssignTo(PessoaJuridica pessoaJuridica)
        {
            pessoaJuridica.PessoaId = PessoaId;
            pessoaJuridica.Cnpj = Cnpj;
            pessoaJuridica.Nome = Nome;
            pessoaJuridica.Email = Email;
            pessoaJuridica.Fone = Fone;
            pessoaJuridica.Fax = Fax;
            pessoaJuridica.Celular = Celular;
            pessoaJuridica.Contato = Contato;
            pessoaJuridica.InscricaoMunicipal = InscricaoMunicipal;
            pessoaJuridica.InscricaoEstadual = InscricaoEstadual;
            pessoaJuridica.TipoDeCadastroId = TipoDeCadastroId;

            Endereco enderecoPrincipal = pessoaJuridica.EnderecoPrincipal();
            enderecoPrincipal.Cep = EnderecoPrincipalCep;
            enderecoPrincipal.TipoDeLogradouro = EnderecoPrincipalTipoDeLogradouro;
            enderecoPrincipal.Logradouro = EnderecoPrincipalLogradouro;
            enderecoPrincipal.Numero = EnderecoPrincipalNumero;
            enderecoPrincipal.Complemento = EnderecoPrincipalComplemento;
            enderecoPrincipal.Bairro = EnderecoPrincipalBairro;
            enderecoPrincipal.Municipio = EnderecoPrincipalMunicipio;
            enderecoPrincipal.Uf = EnderecoPrincipalUf;

            Endereco enderecoCobranca = pessoaJuridica.EnderecoCobranca();
            enderecoCobranca.Cep = EnderecoCobrancaCep;
            enderecoCobranca.TipoDeLogradouro = EnderecoCobrancaTipoDeLogradouro;
            enderecoCobranca.Logradouro = EnderecoCobrancaLogradouro;
            enderecoCobranca.Numero = EnderecoCobrancaNumero;
            enderecoCobranca.Complemento = EnderecoCobrancaComplemento;
            enderecoCobranca.Bairro = EnderecoCobrancaBairro;
            enderecoCobranca.Municipio = EnderecoCobrancaMunicipio;
            enderecoCobranca.Uf = EnderecoCobrancaUf;

            Endereco enderecoEntrega = pessoaJuridica.EnderecoEntrega();
            enderecoEntrega.Cep = EnderecoEntregaCep;
            enderecoEntrega.TipoDeLogradouro = EnderecoEntregaTipoDeLogradouro;
            enderecoEntrega.Logradouro = EnderecoEntregaLogradouro;
            enderecoEntrega.Numero = EnderecoEntregaNumero;
            enderecoEntrega.Complemento = EnderecoEntregaComplemento;
            enderecoEntrega.Bairro = EnderecoEntregaBairro;
            enderecoEntrega.Municipio = EnderecoEntregaMunicipio;
            enderecoEntrega.Uf = EnderecoEntregaUf;
        }