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); }
public void CopiarDadosInstitucional(int empreendimentoID, eCaracterizacao caracterizacaoTipo, int projetoDigitalID, DesassociarDependencias desassociarDependencias) { try { EmpreendimentoCaracterizacao empreendimento = ObterEmpreendimentoSimplificado(empreendimentoID); ProjetoGeograficoBus projetoGeograficoBus = new ProjetoGeograficoBus(); GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(UsuarioCredenciado)) { bancoDeDados.IniciarTransacao(); if (caracterizacaoTipo != eCaracterizacao.UnidadeProducao && caracterizacaoTipo != eCaracterizacao.UnidadeConsolidacao && caracterizacaoTipo != eCaracterizacao.BarragemDispensaLicenca) { projetoGeograficoBus.CopiarDadosInstitucional(empreendimentoID, empreendimento.InternoID, (eCaracterizacao)caracterizacaoTipo, bancoDeDados); } if (!Validacao.EhValido) { bancoDeDados.Rollback(); return; } ICaracterizacaoBus caracterizacaoBus = CaracterizacaoBusFactory.Criar(caracterizacaoTipo); if (caracterizacaoBus == null) { Validacao.Add(eTipoMensagem.Erro, "Caracterizacao Bus não criada"); } caracterizacaoBus.CopiarDadosInstitucional(empreendimentoID, empreendimento.InternoID, bancoDeDados); if (!Validacao.EhValido) { bancoDeDados.Rollback(); return; } #region Alterar Projeto Digital ProjetoDigital projetoDigital = new ProjetoDigital(); projetoDigital.Id = projetoDigitalID; projetoDigital.EmpreendimentoId = empreendimentoID; projetoDigital.Dependencias.Add(new Dependencia() { DependenciaCaracterizacao = (int)caracterizacaoTipo }); desassociarDependencias(projetoDigital, bancoDeDados); #endregion if (!Validacao.EhValido) { bancoDeDados.Rollback(); } Validacao.Erros.Clear(); Validacao.Add(Mensagem.ProjetoDigital.CopiarCaracterizacao); bancoDeDados.Commit(); } } catch (Exception exc) { Validacao.AddErro(exc); } }