public static FileResult BaixarArquivoTemporario(string nomeTemporario, string contentType) { try { ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Publico); return(GerarArquivo(_busArquivo.ObterTemporario(new Arquivo() { TemporarioNome = nomeTemporario, ContentType = contentType }))); } catch (Exception exc) { Validacao.AddErro(exc); } return(null); }
public ArquivoProjeto EnviarArquivo(ProjetoGeografico projeto) { ArquivoProjeto arquivoEnviado; if (projeto.Arquivos == null || projeto.Arquivos.Count <= 0) { Validacao.Add(Mensagem.ProjetoGeografico.ArquivoNaoEncontrado); } arquivoEnviado = projeto.Arquivos[0]; try { if (_validar.EnviarArquivo(arquivoEnviado)) { GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno); _busArquivo.Copiar(arquivoEnviado); _busArquivo.ObterTemporario(arquivoEnviado); arquivoEnviado.IdRelacionamento = _da.ExisteArquivoFila(arquivoEnviado); List <ArquivoProjeto> arquivosSalvos = _da.ObterArquivos(arquivoEnviado.ProjetoId).Where(x => x.Tipo == (int)eProjetoGeograficoArquivoTipo.ArquivoEnviado).ToList(); #region Erro de Duplicaçao de arquivos enviados if (arquivosSalvos.Count > 1) { _da.ExcluirArquivoDuplicados(arquivoEnviado.ProjetoId, bancoDeDados); arquivosSalvos = _da.ObterArquivos(arquivoEnviado.ProjetoId, bancoDeDados).Where(x => x.Tipo == (int)eProjetoGeograficoArquivoTipo.ArquivoEnviado).ToList(); } #endregion Arquivo arqAnterior = null; if (arquivosSalvos.Count > 0) { ArquivoProjeto arq = arquivosSalvos.SingleOrDefault(x => x.Tipo == (int)eProjetoGeograficoArquivoTipo.ArquivoEnviado); try { arqAnterior = _busArquivo.Obter((arq ?? new ArquivoProjeto()).Id.GetValueOrDefault()); if (arqAnterior != null) { arquivoEnviado.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); } } ArquivoDa _arquivoDa = new ArquivoDa(); _arquivoDa.Salvar(arquivoEnviado, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados); //Atualiza a lista de arquivos do projeto _da.AtualizarArquivosEnviado(arquivoEnviado, bancoDeDados); arquivoEnviado.Buffer.Close(); arquivoEnviado.Buffer.Dispose(); arquivoEnviado.Buffer = null; arquivoEnviado.Etapa = (int)eFilaEtapaGeo.Validacao; //1; arquivoEnviado.Situacao = (int)eFilaSituacaoGeo.Aguardando; //1; if (arquivoEnviado.IdRelacionamento <= 0) { _da.InserirFila(arquivoEnviado, bancoDeDados); } else { _da.AlterarSituacaoFila(arquivoEnviado, bancoDeDados); } bancoDeDados.Commit(); ObterSituacao(arquivoEnviado); } } } 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); }