예제 #1
0
        public async Task <HttpResponseMessage> ObtenerPorPeriodoCSV(Periodo periodo)
        {
            var periodoCompleto = new PeriodoService().Obtener(periodo.Inicio);

            byte[] output = null;
            await Task.Run(() =>
            {
                using (var stream = _servicioServiceExt.GenerarExcelServiciosResumen(periodoCompleto))
                {
                    stream.Flush();
                    output = stream.ToArray();
                }
            });

            if (output != null)
            {
                var result = new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = new ByteArrayContent(output)
                };
                result.Content.Headers.ContentType        = new MediaTypeHeaderValue("application/octet-stream");
                result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
                {
                    FileName = "servicios.xls"
                };
                result.Content.Headers.Add("x-filename", "servicios.xls");
                return(result);
            }

            return(this.Request.CreateErrorResponse(HttpStatusCode.NoContent, "No hay datos."));
        }