public Ortofoto ValidarChaveOrtofoto(string chave) { Ortofoto ortofoto = null; int duracao = Convert.ToInt32(ConfigurationManager.AppSettings["diasChaveFicaraAtiva"]); using (BancoDeDados bd = BancoDeDados.ObterInstancia()) { #region Exclui as chaves expiradas do banco Comando comando = bd.CriarComando(@"delete from tab_download_ortofoto where data_ativacao+:duracao < sysdate "); comando.AdicionarParametroEntrada("duracao", duracao, DbType.Int32); bd.ExecutarNonQuery(comando); #endregion #region Verifica se a chave enviada ainda está ativa comando = bd.CriarComando(@"select chave, arquivo_nome from tab_download_ortofoto where chave = :chave and data_ativacao+:duracao>= sysdate "); comando.AdicionarParametroEntrada("duracao", duracao, DbType.Int32); comando.AdicionarParametroEntrada("chave", chave, DbType.String); using (DbDataReader reader = bd.ExecutarReader(comando)) { if (reader.Read()) { ortofoto = new Ortofoto(); ortofoto.ArquivoChave = Convert.ToString(reader["chave"]); ortofoto.ArquivoNome = Convert.ToString(reader["arquivo_nome"]); } reader.Close(); } #endregion } return(ortofoto); }
public FileResult DownloadArquivoOrtoFoto(string chave) { OrtofotoBus ortofotoBus = new OrtofotoBus(); Ortofoto ortofoto = ortofotoBus.ValidarChaveOrtofoto(chave); string diretorio = Path.Combine(ConfigurationManager.AppSettings["diretorioOrtofotos"], ortofoto.ArquivoNome); FilePathResult fileResult = new FilePathResult(diretorio, "application/octet-stream"); fileResult.FileDownloadName = ortofoto.ArquivoNome; return(fileResult); }
public List <Ortofoto> ObterArquivosOrtofoto(string wkt) { List <Ortofoto> ortofotos = new List <Ortofoto>(); List <string> arquivos = new List <string>(); int srid = Convert.ToInt32(ConfigurationManager.AppSettings["srid"]); using (BancoDeDados bd = BancoDeDados.ObterInstancia()) { Comando comando = bd.CriarComando(string.Format(@"select arquivo from geo_malha_ortofoto_5km a where sdo_relate(a.shape, addsrid(mdsys.sdo_util.from_wktgeometry(:wkt), {0}), 'MASK=ANYINTERACT QUERYTYPE=WINDOW') = 'TRUE' ", srid)); comando.AdicionarParametroEntrada("wkt", wkt, DbType.String); using (DbDataReader reader = bd.ExecutarReader(comando)) { while (reader.Read()) { arquivos.Add(Convert.ToString(reader["arquivo"])); } reader.Close(); } if (arquivos.Count > 0) { comando = bd.CriarComando(@"insert into tab_download_ortofoto (id, chave, arquivo_nome, data_ativacao) values (seq_down_orto.nextval, upper(replace(seq_down_orto.currval||'_'||:arquivo||replace(to_char(sysdate, 'dd_MM_YYYY'),':','_'),' ','_')), :arquivo, sysdate) returning chave, to_char(sysdate, 'dd/MM/yyyy') into :chave, :chave_data "); comando.AdicionarParametroSaida("chave", DbType.String, 300); comando.AdicionarParametroSaida("chave_data", DbType.String, 300); comando.AdicionarParametroEntrada("arquivo", DbType.String); Ortofoto ortofoto; foreach (string arq in arquivos) { comando.SetarValorParametro("arquivo", arq); bd.ExecutarNonQuery(comando); ortofoto = new Ortofoto(); ortofoto.ArquivoChave = Convert.ToString(comando.ObterValorParametro("chave")); ortofoto.ArquivoChaveData = Convert.ToDateTime(comando.ObterValorParametro("chave_data")); ortofoto.ArquivoNome = arq; ortofotos.Add(ortofoto); } bd.Commit(); } } return(ortofotos); }
public JsonResult ValidarChaveArquivoOrtoFoto(string chave) { try { OrtofotoBus ortofotoBus = new OrtofotoBus(); string dir = Convert.ToString(ConfigurationManager.AppSettings["diretorioOrtofotos"]); if (string.IsNullOrEmpty(dir)) { Validacao.Add(new Mensagem() { Tipo = eTipoMensagem.Erro, Texto = "Diretório de arquivo de ortofotos não corretamente configurado. Contate o Administrador do sistema." }); } else { string diretorio = HttpContext.Server.MapPath("~/" + dir); Ortofoto ortofoto = ortofotoBus.ValidarChaveOrtofoto(chave); if (ortofoto == null) { Validacao.Add(new Mensagem() { Tipo = eTipoMensagem.Erro, Texto = "Esta chave está expirada envie uma nova requisição de chave." }); } else { if (ArquivoBus.ExisteArquivo(ortofoto.ArquivoNome, diretorio)) { Validacao.Add(new Mensagem() { Tipo = eTipoMensagem.Erro, Texto = "Arquivo não encontrado." }); } } } } catch (Exception exc) { Validacao.AddErro(exc); } return(Json(new { Msg = Validacao.Erros, EhValido = Validacao.EhValido }, JsonRequestBehavior.AllowGet)); }