private void VerificarDadosEndereco(Endereco endereco, string objPaiNome, string lstEndNome, int index, string nomeEndereco, bool localizacao = false)
        {
            if (!localizacao && String.IsNullOrWhiteSpace(endereco.Cep))
            {
                Validacao.Add(endMsg.EnderecoCepObrigatorio(objPaiNome, lstEnderecosNome, index, nomeEndereco));
            }

            if (!String.IsNullOrWhiteSpace(endereco.Cep) && !(new Regex("^[0-9]{2}\\.[0-9]{3}-[0-9]{3}$").IsMatch(endereco.Cep)))
            {
                Validacao.Add(endMsg.EnderecoCepInvalido(objPaiNome, lstEnderecosNome, index, nomeEndereco));
            }

            if (localizacao && endereco.ZonaLocalizacaoId.GetValueOrDefault() <= 0)
            {
                Validacao.Add(endMsg.EnderecoZonaLocalizacaoObrigatoria(objPaiNome, lstEnderecosNome, 0));
            }

            if (String.IsNullOrWhiteSpace(endereco.Logradouro))
            {
                Validacao.Add(endMsg.EnderecoLogradouroObrigatorio(objPaiNome, lstEnderecosNome, index, nomeEndereco));
            }

            if (String.IsNullOrWhiteSpace(endereco.Bairro))
            {
                Validacao.Add(endMsg.EnderecoBairroObrigatorio(objPaiNome, lstEnderecosNome, index, nomeEndereco));
            }

            if (localizacao && String.IsNullOrWhiteSpace(endereco.DistritoLocalizacao))
            {
                Validacao.Add(endMsg.EnderecoDistritoObrigatorio(objPaiNome, lstEnderecosNome, index, nomeEndereco));
            }

            if (endereco.EstadoId <= 0)
            {
                Validacao.Add(endMsg.EnderecoEstadoObrigatorio(objPaiNome, lstEnderecosNome, index, nomeEndereco));
            }
            else if (!_da.ExisteEstado(endereco.EstadoId))
            {
                Validacao.Add(endMsg.EnderecoEstadoInvalido(objPaiNome, lstEnderecosNome, index, nomeEndereco));
            }

            if (endereco.MunicipioId <= 0)
            {
                Validacao.Add(endMsg.EnderecoMunicipioObrigatorio(objPaiNome, lstEnderecosNome, index, nomeEndereco));
            }
            else if (!_da.ExisteMunicipio(endereco.MunicipioId))
            {
                Validacao.Add(endMsg.EnderecoMunicipioInvalido(objPaiNome, lstEnderecosNome, index, nomeEndereco));
            }

            if (endereco.MunicipioId > 0 && endereco.EstadoId > 0 && _da.ObterMunicipio(endereco.MunicipioId).Estado.Id != endereco.EstadoId)
            {
                Validacao.Add(endMsg.EnderecoMunicipioOutroEstado(objPaiNome, lstEnderecosNome, index, nomeEndereco));
            }

            if (localizacao && String.IsNullOrWhiteSpace(endereco.Complemento))
            {
                Validacao.Add(endMsg.EnderecoComplementoObrigatorio(objPaiNome, lstEnderecosNome, index, nomeEndereco));
            }
        }
        public Empreendimento Obter(int id, bool simplificado = false)
        {
            try
            {
                Empreendimento emp = _da.Obter(id, simplificado: simplificado) ?? new Empreendimento();
                emp.Enderecos = emp.Enderecos ?? new List <Endereco>();

                if (emp != null && emp.Id > 0)
                {
                    emp.SegmentoDenominador = (_configEmpreendimento.Obter <List <Segmento> >(ConfiguracaoEmpreendimento.KeySegmentos).First(x => x.Id == emp.Segmento.GetValueOrDefault().ToString()) ?? new Segmento()).Denominador;
                    emp.SegmentoTexto       = (_configEmpreendimento.Obter <List <Segmento> >(ConfiguracaoEmpreendimento.KeySegmentos).First(x => x.Id == emp.Segmento.GetValueOrDefault().ToString()) ?? new Segmento()).Texto;

                    if (!simplificado)
                    {
                        emp.Coordenada.Tipo.Texto         = ((_configCoordenada.Obter <List <CoordenadaTipo> >(ConfiguracaoCoordenada.KeyTiposCoordenada).FirstOrDefault(x => x.Id == emp.Coordenada.Tipo.Id)) ?? new CoordenadaTipo()).Texto;
                        emp.Coordenada.Datum.Texto        = ((_configCoordenada.Obter <List <Datum> >(ConfiguracaoCoordenada.KeyDatuns).FirstOrDefault(x => x.Id == emp.Coordenada.Datum.Id)) ?? new Datum()).Texto;
                        emp.Coordenada.HemisferioUtmTexto = ((_configCoordenada.Obter <List <CoordenadaHemisferio> >(ConfiguracaoCoordenada.KeyHemisferios).FirstOrDefault(x => x.Id == emp.Coordenada.HemisferioUtm)) ?? new CoordenadaHemisferio()).Texto;

                        emp.Coordenada.FormaColetaTexto = ((_configCoordenada.Obter <List <Lista> >(ConfiguracaoCoordenada.KeyFormaColetaPonto).FirstOrDefault(x => x.Id == emp.Coordenada.FormaColeta.GetValueOrDefault().ToString())) ?? new Lista()).Texto;
                        emp.Coordenada.LocalColetaTexto = ((_configCoordenada.Obter <List <Lista> >(ConfiguracaoCoordenada.KeyLocalColetaPonto).FirstOrDefault(x => x.Id == emp.Coordenada.LocalColeta.GetValueOrDefault().ToString())) ?? new Lista()).Texto;

                        foreach (var item in emp.Enderecos)
                        {
                            if (item.EstadoId > 0)
                            {
                                item.EstadoTexto    = _configEnd.Obter <List <Estado> >(ConfiguracaoEndereco.KeyEstados).First(x => x.Id == item.EstadoId).Texto;
                                item.MunicipioTexto = _da.ObterMunicipio(item.MunicipioId).Texto;
                            }
                        }

                        foreach (var item in emp.Responsaveis)
                        {
                            item.TipoTexto = (_configEmpreendimento.Obter <List <TipoResponsavel> >(ConfiguracaoEmpreendimento.KeyTiposResponsavel).First(x => x.Id == item.Tipo.GetValueOrDefault()) ?? new TipoResponsavel()).Texto;
                        }

                        if (emp.Atividade.Id > 0)
                        {
                            AtividadeEmpreendimentoInternoBus atividadeEmpBus = new AtividadeEmpreendimentoInternoBus();
                            emp.Atividade.Atividade = atividadeEmpBus.Filtrar(new AtividadeListarFiltro()
                            {
                                Id = emp.Atividade.Id
                            }, new Paginacao()
                            {
                                PaginaAtual = 1, QuantPaginacao = 1
                            }).Itens[0].Atividade;
                        }

                        ContatoLst contatoAux = new ContatoLst();
                        emp.MeiosContatos.ForEach(x =>
                        {
                            contatoAux  = (_configSys.Obter <List <ContatoLst> >(ConfiguracaoSistema.KeyMeiosContato).SingleOrDefault(y => y.Id == (int)x.TipoContato) ?? new ContatoLst());
                            x.Mascara   = contatoAux.Mascara;
                            x.TipoTexto = contatoAux.Texto;
                        });
                    }
                }

                return(emp);
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(null);
        }
        public Empreendimento Obter(int id, BancoDeDados bancoCredenciado, bool simplificado = false)
        {
            Empreendimento emp = _da.Obter(id, bancoCredenciado, simplificado: simplificado) ?? new Empreendimento();

            emp.Enderecos = emp.Enderecos ?? new List <Endereco>();

            if (emp != null && emp.Id > 0)
            {
                emp.SegmentoDenominador =
                    (_da.ObterSegmentos().First(x => x.Id == emp.Segmento.GetValueOrDefault().ToString()) ??
                     new Segmento()).Denominador;
                emp.SegmentoTexto =
                    (_da.ObterSegmentos().First(x => x.Id == emp.Segmento.GetValueOrDefault().ToString()) ??
                     new Segmento()).Texto;

                if (!simplificado)
                {
                    emp.Coordenada.Tipo.Texto =
                        ((_da.ObterTiposCoordenada().FirstOrDefault(x => x.Id == emp.Coordenada.Tipo.Id)) ??
                         new CoordenadaTipo()).Texto;
                    emp.Coordenada.Datum.Texto =
                        ((_da.ObterDatuns().FirstOrDefault(x => x.Id == emp.Coordenada.Datum.Id)) ?? new Datum()).Texto;
                    emp.Coordenada.HemisferioUtmTexto =
                        ((_da.ObterHemisferios().FirstOrDefault(x => x.Id == emp.Coordenada.HemisferioUtm)) ??
                         new CoordenadaHemisferio()).Texto;

                    emp.Coordenada.FormaColetaTexto =
                        ((_da.ObterFormaColetaPonto()
                          .FirstOrDefault(x => x.Id == emp.Coordenada.FormaColeta.GetValueOrDefault().ToString())) ??
                         new Lista()).Texto;
                    emp.Coordenada.LocalColetaTexto =
                        ((_da.ObterFormaColetaPonto()
                          .FirstOrDefault(x => x.Id == emp.Coordenada.LocalColeta.GetValueOrDefault().ToString())) ??
                         new Lista()).Texto;

                    foreach (var item in emp.Enderecos)
                    {
                        if (item.EstadoId > 0)
                        {
                            item.EstadoTexto    = _da.ObterEstados().First(x => x.Id == item.EstadoId).Texto;
                            item.MunicipioTexto = _da.ObterMunicipio(item.MunicipioId).Texto;
                        }
                    }

                    foreach (var item in emp.Responsaveis)
                    {
                        item.TipoTexto =
                            (_da.ObterEmpTipoResponsavel().First(x => x.Id == item.Tipo.GetValueOrDefault()) ??
                             new TipoResponsavel()).Texto;
                    }

                    if (emp.Atividade.Id > 0)
                    {
                        AtividadeEmpreendimentoInternoBus atividadeEmpBus = new AtividadeEmpreendimentoInternoBus();

                        emp.Atividade.Atividade =
                            atividadeEmpBus.Filtrar(new AtividadeListarFiltro()
                        {
                            Id = emp.Atividade.Id
                        },
                                                    new Paginacao()
                        {
                            PaginaAtual = 1, QuantPaginacao = 1
                        }).Itens[0].Atividade;
                    }

                    ContatoLst contatoAux = new ContatoLst();
                    emp.MeiosContatos.ForEach(x =>
                    {
                        contatoAux = (_da.ObterMeiosContato().SingleOrDefault(y => y.Id == (int)x.TipoContato) ??
                                      new ContatoLst());
                        x.Mascara   = contatoAux.Mascara;
                        x.TipoTexto = contatoAux.Texto;
                    });
                }
            }

            return(emp);
        }