public void Salvar(Roteiro roteiro) { try { if (_validar.Salvar(roteiro)) { Mensagem msgSucesso; bool isEditar = false; if (roteiro.Id > 0) { isEditar = true; } #region Arquivos/Diretorio ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno); if (roteiro.Anexos != null && roteiro.Anexos.Count > 0) { foreach (Anexo anexo in roteiro.Anexos) { if (anexo.Arquivo.Id == 0) { anexo.Arquivo = _busArquivo.Copiar(anexo.Arquivo); } } } #endregion GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { bancoDeDados.IniciarTransacao(); #region Arquivos/Banco ArquivoDa arquivoDa = new ArquivoDa(); if (roteiro.Anexos != null && roteiro.Anexos.Count > 0) { foreach (Anexo anexo in roteiro.Anexos) { if (anexo.Arquivo.Id == 0) { arquivoDa.Salvar(anexo.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados); } } } #endregion int roteiroIdOriginal = roteiro.Id; _da.Salvar(roteiro, bancoDeDados); if (roteiroIdOriginal > 0) { AlterarSituacaoChecagensComRoteiros(roteiro.Id, 3, bancoDeDados); } bancoDeDados.Commit(); } if (isEditar) { msgSucesso = Mensagem.Roteiro.Editar(roteiro.Numero, roteiro.Versao, _da.ObterVersaoAtual(roteiro.Id)); } else { msgSucesso = Mensagem.Roteiro.Salvar(roteiro.Numero, _da.ObterVersaoAtual(roteiro.Id)); } Validacao.Add(msgSucesso); } } catch (Exception exc) { Validacao.AddErro(exc); } }