public bool ValidarTituloGenericoAtividadeCaracterizacao(IEspecificidade especificidade, eEspecificidade tipo = eEspecificidade.Nulo) { CaracterizacaoBus busCaracterizacao = new CaracterizacaoBus(); GerenciadorConfiguracao configAtividade = new GerenciadorConfiguracao(new ConfiguracaoAtividade()); GerenciadorConfiguracao configCaracterizacao = new GerenciadorConfiguracao(new ConfiguracaoCaracterizacao()); List <AtividadeCaracterizacao> lstAtivCaract = configAtividade.Obter <List <AtividadeCaracterizacao> >(ConfiguracaoAtividade.KeyAtividadesCaracterizacoes); List <Caracterizacao> lstCaracterizacoes = busCaracterizacao.ObterCaracterizacoesEmpreendimento(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault()); List <CaracterizacaoLst> lstCnfCaracterizacoes = configCaracterizacao.Obter <List <CaracterizacaoLst> >(ConfiguracaoCaracterizacao.KeyCaracterizacoes); //List<DependenciaLst> lstCnfDependencias = configCaracterizacao.Obter<List<DependenciaLst>>(ConfiguracaoCaracterizacao.KeyCaracterizacoesDependencias); EspecificidadeBusBase _busEspBase = new EspecificidadeBusBase(); foreach (var item in especificidade.Atividades) { if (item.Id == 0) { continue; } var ativCaract = lstAtivCaract.FirstOrDefault(x => x.AtividadeId == item.Id); if (ativCaract == null || ativCaract.AtividadeId != item.Id || !ativCaract.IsTituloGenerico) { EspecificidadeDa _daEsp = new EspecificidadeDa(); item.NomeAtividade = _daEsp.ObterAtividadeNome(item.Id); Validacao.Add(Mensagem.Especificidade.AtividadeNaoConfiguradaNaAtividadeCaracte(item.NomeAtividade, especificidade.Titulo.ModeloSigla)); continue; } Caracterizacao caracterizacao = lstCaracterizacoes.Find(x => x.Tipo == (eCaracterizacao)ativCaract.CaracterizacaoTipoId); CaracterizacaoLst caracterizacaoTipo = lstCnfCaracterizacoes.Find(x => x.Id == ativCaract.CaracterizacaoTipoId); ICaracterizacaoBus busCaract = CaracterizacaoBusFactory.Criar(caracterizacao.Tipo); if (busCaract == null) { throw new Exception("CaracterizacaoBusFactory não implementada para o tipo " + caracterizacaoTipo.Texto); } List <int> atividadesCaract = busCaract.ObterAtividadesCaracterizacao(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault()); if (atividadesCaract == null || atividadesCaract.Count == 0) { Validacao.Add(Mensagem.Especificidade.CaracterizacaoNaoPreenchida(caracterizacaoTipo.Texto)); continue; } if (!atividadesCaract.Exists(x => x == item.Id)) { Validacao.Add(Mensagem.Especificidade.AtividadeDiferenteCaracterizacao(caracterizacaoTipo.Texto)); continue; } List <Dependencia> lstDependenciaAteradas = busCaracterizacao.ObterDependenciasAlteradas( especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(), caracterizacao.Id, (eCaracterizacao)caracterizacaoTipo.Id, eCaracterizacaoDependenciaTipo.Caracterizacao); if (lstDependenciaAteradas != null && lstDependenciaAteradas.Count > 0) { Validacao.Add(Mensagem.Especificidade.CaracterizacaoDependencias(caracterizacaoTipo.Texto)); /*Validacao.Add(Mensagem.Especificidade.CaracterizacaoDependencias(String.Join(", ", lstDependenciaAteradas.Select(x => * String.Format("{0} - {1}", * lstCnfDependencias.Single(y => y.Id == x.DependenciaTipo).TipoTexto, * lstCnfCaracterizacoes.Single(y => y.Id == x.DependenciaCaracterizacao).Texto) * ).ToArray())));*/ } } switch (tipo) { case eEspecificidade.LicencaAmbientalRegularizacao: case eEspecificidade.LicencaAmbientalUnica: case eEspecificidade.LicencaSimplificada: case eEspecificidade.LicencaInstalacao: case eEspecificidade.LicencaOperacao: case eEspecificidade.LicencaPrevia: if (especificidade.Atividades.Count > 0) { especificidade.AtividadeCaractTipo = (eAtividadeCodigo)ConfiguracaoAtividade.ObterCodigo(especificidade.Atividades[0].Id); } switch (especificidade.AtividadeCaractTipo) { case eAtividadeCodigo.Barragem: var configEspAtivCaract = _busEspBase.GetConfigAtivEspCaracterizacao((int)tipo); var list = configEspAtivCaract.GetListValue <int>("Atividades"); if (especificidade is ILicenca && list.Where(x => x == (int)eAtividadeCodigo.Barragem).ToList().Count > 0) { _validarLicenca.Validar(especificidade as ILicenca); } break; } break; } return(Validacao.EhValido); }