public void Finalizar(ProjetoGeografico projetoGeo, int projetoDigitalID, DesassociarDependencias desassociarDependencias) { try { if (_validar.Finalizar(projetoGeo)) { GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(EsquemaBancoCredenciado)) { bancoDeDados.IniciarTransacao(); _da.Finalizar(projetoGeo); //Gerencia as dependências da caracterização _caracterizacaoBus.Dependencias(new Caracterizacao() { Id = projetoGeo.Id, Tipo = (eCaracterizacao)projetoGeo.CaracterizacaoId, DependenteTipo = eCaracterizacaoDependenciaTipo.ProjetoGeografico, Dependencias = projetoGeo.Dependencias }, bancoDeDados); #region Alterar Projeto Digital ProjetoDigital projetoDigital = new ProjetoDigital(); projetoDigital.Id = projetoDigitalID; projetoDigital.EmpreendimentoId = projetoGeo.EmpreendimentoId; projetoDigital.Dependencias.Add(new Dependencia() { DependenciaCaracterizacao = (int)projetoGeo.CaracterizacaoId }); desassociarDependencias(projetoDigital, bancoDeDados); #endregion if (!Validacao.EhValido) { bancoDeDados.Rollback(); } Validacao.Add(Mensagem.ProjetoGeografico.FinalizadoSucesso); bancoDeDados.Commit(); } } } catch (Exception exc) { Validacao.AddErro(exc); } }
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); } }
public bool Salvar(Dominialidade caracterizacao, int projetoDigitalID, DesassociarDependencias desassociarDependencias) { try { bool isEditar = caracterizacao.Id > 0; if (caracterizacao.PossuiAreaExcedenteMatricula < 0) { caracterizacao.PossuiAreaExcedenteMatricula = null; } caracterizacao.Dominios.SelectMany(dom => dom.ReservasLegais).ToList().ForEach(reserva => { if (reserva.Coordenada == null || reserva.Coordenada.EastingUtm <= 0 || reserva.Coordenada.Tipo.Id <= 0) { reserva.Coordenada = new Blocos.Entities.Etx.ModuloGeo.Coordenada(); if (reserva.CompensacaoTipo == eCompensacaoTipo.Receptora && reserva.EmpreendimentoCompensacao.Id > 0) { reserva.Coordenada = _da.ObterCoordenada(reserva.IdentificacaoARLCedente); } if (reserva.CompensacaoTipo == eCompensacaoTipo.Cedente && reserva.SituacaoId == (int)eReservaLegalSituacao.Proposta) { reserva.Coordenada = _da.ObterCoordenada(reserva.Id); } } }); if (_validar.Salvar(caracterizacao)) { GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(EsquemaCredenciadoBanco)) { bancoDeDados.IniciarTransacao(); _da.Salvar(caracterizacao, bancoDeDados); //Gerencia as dependências da caracterização _busCaracterizacao.Dependencias(new Caracterizacao() { Id = caracterizacao.Id, Tipo = eCaracterizacao.Dominialidade, DependenteTipo = eCaracterizacaoDependenciaTipo.Caracterizacao, Dependencias = caracterizacao.Dependencias }, bancoDeDados); if (isEditar) { ProjetoDigital projetoDigital = new ProjetoDigital(); projetoDigital.Id = projetoDigitalID; projetoDigital.EmpreendimentoId = caracterizacao.EmpreendimentoId; projetoDigital.Dependencias.Add(new Dependencia() { DependenciaCaracterizacao = (int)eCaracterizacao.Dominialidade }); desassociarDependencias(projetoDigital, bancoDeDados); } if (!Validacao.EhValido) { bancoDeDados.Rollback(); return(false); } Validacao.Erros.Clear(); Validacao.Add(Mensagem.Dominialidade.Salvar); bancoDeDados.Commit(); } } } catch (Exception e) { Validacao.AddErro(e); } return(Validacao.EhValido); }