public bool ValidarAcessarTela(List <CaracterizacaoLst> caracterizacoes = null, bool mostrarMensagem = true)
        {
            if (caracterizacoes == null)
            {
                caracterizacoes = CaracterizacaoConfig.Obter <List <CaracterizacaoLst> >(ConfiguracaoCaracterizacao.KeyCaracterizacoes);
            }

            bool            podeAcessar = false;
            eCaracterizacao tipo;

            caracterizacoes.ForEach(x =>
            {
                tipo = ((eCaracterizacao)x.Id);

                if (User.IsInAnyRole(String.Join(",", new[] {
                    String.Format("{0}Criar", tipo.ToString()),
                    String.Format("{0}Editar", tipo.ToString()),
                    String.Format("{0}Visualizar", tipo.ToString()),
                    String.Format("{0}Excluir", tipo.ToString())
                })))
                {
                    podeAcessar = true;
                    return;
                }
            });

            if (!podeAcessar && mostrarMensagem)
            {
                Validacao.Add(Mensagem.Padrao.SemPermissao);
            }

            return(podeAcessar);
        }
        public List <int> ObterAtividades(int empreendimentoId, eCaracterizacao caracterizacaoTipo)
        {
            List <CaracterizacaoLst> caracterizacoes = CaracterizacaoConfig.Obter <List <CaracterizacaoLst> >(ConfiguracaoCaracterizacao.KeyCaracterizacoes);
            string tabela = caracterizacoes.Find(x => x.Id == (int)caracterizacaoTipo).Tabela;

            return(_da.ObterAtividadesCaracterizacao(tabela, empreendimentoId));
        }
        public bool ExcluirCaracterizacoes(int empreendimento, BancoDeDados banco = null)
        {
            List <CaracterizacaoLst> caracterizacoes = CaracterizacaoConfig.Obter <List <CaracterizacaoLst> >(ConfiguracaoCaracterizacao.KeyCaracterizacoes);
            List <DependenciaLst>    dependencias    = CaracterizacaoConfig.Obter <List <DependenciaLst> >(ConfiguracaoCaracterizacao.KeyCaracterizacoesDependencias);

            caracterizacoes = caracterizacoes.Where(x => dependencias.Exists(y => y.TipoId == x.Id && y.ExibirCredenciado)).ToList();
            ICaracterizacaoBus caracterizacao;

            try
            {
                if (!ValidarEmPosse(empreendimento))
                {
                    return(Validacao.EhValido);
                }

                if (caracterizacoes != null && caracterizacoes.Count > 0)
                {
                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco, UsuarioCredenciado))
                    {
                        bancoDeDados.IniciarTransacao();

                        GerenciadorTransacao.ObterIDAtual();

                        foreach (CaracterizacaoLst car in caracterizacoes)
                        {
                            caracterizacao = CaracterizacaoBusFactory.Criar((eCaracterizacao)car.Id);

                            if (caracterizacao == null)
                            {
                                Validacao.Add(eTipoMensagem.Erro, String.Format("{0} Bus não criada", car.Texto));
                                continue;
                            }

                            caracterizacao.Excluir(empreendimento, bancoDeDados, false);
                        }

                        bancoDeDados.Commit();
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(Validacao.EhValido);
        }