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);
        }