/// <summary> /// Crea un objeto con la informacion de un registro del documento instancia /// </summary> /// <param name="reader">Informacion del registro de la bd</param> /// <param name="rowNum">Numero de registro que se esta consultando</param> /// <returns>Objeto con la informacion del documento instancia</returns> private ArchivoDocumentoInstanciaDto CrearArchivoDocumentoInstancia(IDataReader reader, int rowNum) { var dto = new ArchivoDocumentoInstanciaDto(); if (DbUtil.FieldExists(reader, "IdArchivoDocumentoInstancia")) { dto.IdArchivoDocumentoInstancia = reader.GetInt64(reader.GetOrdinal("IdArchivoDocumentoInstancia")); } if (DbUtil.FieldExists(reader, "IdDocumentoInstancia")) { dto.IdDocumentoInstancia = reader.GetInt64(reader.GetOrdinal("IdDocumentoInstancia")); } if (DbUtil.FieldExists(reader, "IdTipoArchivo")) { dto.IdTipoArchivo = reader.GetInt64(reader.GetOrdinal("IdTipoArchivo")); } if (DbUtil.FieldExists(reader, "Archivo")) { dto.Archivo = (byte[])reader[reader.GetOrdinal("Archivo")]; } return(dto); }
public IHttpActionResult BajarArchivoDocumentoInstancia() { var response = new HttpResponseMessage(); response.StatusCode = HttpStatusCode.NoContent; var idDocumentoInstancia = getFormKeyValue("idDocIns"); var tipoArchivo = getFormKeyValue("tipoArchivo"); var nombreArchivo = getFormKeyValue("nombreArchivo"); ArchivoDocumentoInstanciaDto archivoDocumento = null; if (idDocumentoInstancia != null) { var cleanId = idDocumentoInstancia.Split('#'); archivoDocumento = DocumentoInstanciaDao.ObtenerArchivoDocumentosInstancia(long.Parse(cleanId[0].Trim()), long.Parse(tipoArchivo)); } if (archivoDocumento != null) { MemoryStream stream = new MemoryStream(archivoDocumento.Archivo); stream.Position = 0; response.StatusCode = HttpStatusCode.OK; response.Content = new StreamContent(stream); response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); if (tipoArchivo.Equals(CommonConstants.TipoArchivoJSON)) { response.Content.Headers.ContentEncoding.Add("gzip"); } else { string extensionEliminar = System.IO.Path.GetExtension(nombreArchivo); string result = nombreArchivo.Substring(0, nombreArchivo.Length - extensionEliminar.Length); string extension = "pdf"; if (tipoArchivo.Equals(CommonConstants.TipoArchivoXLS)) { extension = "xls"; } else if (tipoArchivo.Equals(CommonConstants.TipoArchivoXbrlZip)) { extension = "zip"; } else if (tipoArchivo.Equals(CommonConstants.TipoArchivoXBRL)) { extension = "xbrl"; } else if (tipoArchivo.Equals(CommonConstants.TipoArchivoWord)) { extension = "docx"; } response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = result + "." + extension }; var cookie = new CookieHeaderValue("fileDownload", "true"); response.Headers.AddCookies(new CookieHeaderValue[] { cookie }); } return(ResponseMessage(response)); } else { response.StatusCode = HttpStatusCode.NoContent; return(ResponseMessage(response)); } }