public ArquivoProjeto ProcessarDesenhador(ProjetoGeografico projeto) { ArquivoProjeto arquivoEnviado = projeto.Arquivos.FirstOrDefault() ?? new ArquivoProjeto(); try { GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { arquivoEnviado.Etapa = (int)eFilaEtapaGeo.Validacao; //1; arquivoEnviado.Situacao = (int)eFilaSituacaoGeo.Aguardando; //1; arquivoEnviado.IdRelacionamento = _da.ExisteArquivoFila(arquivoEnviado); //Atualiza a lista de arquivos do projeto _da.AtualizarArquivosEnviado(arquivoEnviado, bancoDeDados); if (arquivoEnviado.IdRelacionamento == 0) { _da.InserirFila(arquivoEnviado, bancoDeDados); } else { _da.AlterarSituacaoFila(arquivoEnviado, bancoDeDados); } ObterSituacao(arquivoEnviado); bancoDeDados.Commit(); } } catch (Exception exc) { Validacao.AddErro(exc); } return(arquivoEnviado); }
public ArquivoProjeto EnviarArquivo(ArquivoProjeto arquivo) { try { if (_validar.EnviarArquivo(arquivo)) { GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(EsquemaBancoCredenciado)) { ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Credenciado); _busArquivo.Copiar(arquivo); _busArquivo.ObterTemporario(arquivo); arquivo.Processamento.Id = _da.ExisteItemFila(arquivo.Processamento); _da.ExcluirArquivoDuplicados(arquivo.ProjetoId, bancoDeDados); ArquivoProjeto arq = _da.ObterArquivos(arquivo.ProjetoId, bancoDeDados).SingleOrDefault(x => x.Tipo == (int)eProjetoGeograficoArquivoTipo.ArquivoEnviado) ?? new ArquivoProjeto(); if (arq.Id.GetValueOrDefault() > 0 && !_da.ArquivoAssociadoProjetoDigital(arq.Id.GetValueOrDefault())) { Arquivo arqAnterior = null; try { arqAnterior = _busArquivo.Obter(arq.Id.GetValueOrDefault()); if (arqAnterior != null) { arquivo.Id = arqAnterior.Id.Value; _busArquivo.Deletar(arqAnterior.Caminho); } } catch { ArquivoDa arqDa = new ArquivoDa(); if (arqAnterior == null && (arq ?? new ArquivoProjeto()).Id.GetValueOrDefault() > 0) { arqAnterior = _busArquivo.ObterDados((arq ?? new ArquivoProjeto()).Id.GetValueOrDefault()); } arqDa.MarcarDeletado(arqAnterior.Id.Value, arqAnterior.Caminho, bancoDeDados); } } ArquivoDa arquivoDa = new ArquivoDa(); arquivoDa.Salvar(arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados); //Atualiza a lista de arquivos do projeto _da.AtualizarArquivosEnviado(arquivo, bancoDeDados); arquivo.Buffer.Close(); arquivo.Buffer.Dispose(); arquivo.Buffer = null; arquivo.Processamento.Etapa = (int)eFilaEtapaGeo.Validacao; arquivo.Processamento.Situacao = (int)eFilaSituacaoGeo.Aguardando; if (arquivo.Processamento.Id <= 0) { _da.InserirFila(arquivo.Processamento, bancoDeDados); } else { _da.AlterarSituacaoFila(arquivo.Processamento, bancoDeDados); } bancoDeDados.Commit(); ObterSituacao(arquivo.Processamento); } } } catch (Exception exc) { Validacao.AddErro(exc); } return(arquivo); }