public bool Salvar(Empreendimento empreendimento) { try { if (_validar.Salvar(empreendimento)) { Mensagem msg = VerificarLocalizacaoEmpreendimento(empreendimento.Coordenada.EastingUtmTexto, empreendimento.Coordenada.NorthingUtmTexto, empreendimento.Enderecos[0].EstadoId, empreendimento.Enderecos[0].MunicipioId); if (msg.Texto != null) { Validacao.Add(msg); return(Validacao.EhValido); } if (empreendimento.Coordenada.Tipo.Id > 0) { empreendimento.Coordenada.Datum.Sigla = _busLista.Datuns.SingleOrDefault(x => Equals(x.Id, empreendimento.Coordenada.Datum.Id)).Sigla; } #region Responsáveis if (empreendimento.Id <= 0) { empreendimento.Responsaveis.ForEach(r => { r.OrigemTexto = "Inserido pelo IDAF"; }); } else { Empreendimento empHistorico = ObterHistorico(empreendimento.Id, empreendimento.Tid); List <Responsavel> responsaveis = empreendimento.Responsaveis.Where(x => !empHistorico.Responsaveis.Exists(y => y.CpfCnpj == x.CpfCnpj)).ToList(); responsaveis.ForEach(r => { r.OrigemTexto = "Inserido pelo IDAF"; }); empreendimento.Responsaveis.ForEach(r => { Responsavel resp = empHistorico.Responsaveis.FirstOrDefault(x => x.CpfCnpj == r.CpfCnpj); if (resp != null && r.Tipo != resp.Tipo) { r.OrigemTexto = "Alterado pelo IDAF"; } }); empreendimento.Responsaveis.Where(x => string.IsNullOrEmpty(x.OrigemTexto)).ToList().ForEach(r => { Responsavel resp = empHistorico.Responsaveis.FirstOrDefault(x => x.CpfCnpj == r.CpfCnpj); r.OrigemTexto = resp.OrigemTexto; }); } #endregion Responsáveis GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { bancoDeDados.IniciarTransacao(); _da.Salvar(empreendimento, bancoDeDados); bancoDeDados.Commit(); } } } catch (Exception exc) { Validacao.AddErro(exc); } return(Validacao.EhValido); }