コード例 #1
0
        /// <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);
        }
コード例 #2
0
        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));
            }
        }