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.")); }