public HttpResponseMessage GetReport(string displayReportName,
                                             ReportDispositonTypes reportDispositonType = ReportDispositonTypes.Attachment)
        {
            if (string.IsNullOrEmpty(displayReportName))
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest));
            }
            var cachedReport = HttpContext.Current.Session[SessionReport] as byte[];

            if (cachedReport == null)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest));
            }

            var mimeType = MimeMapping.GetMimeMapping(displayReportName);
            var response = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StreamContent(new MemoryStream(cachedReport))
            };

            response.Content.Headers.ContentDisposition =
                new ContentDispositionHeaderValue(reportDispositonType == ReportDispositonTypes.Attachment ? "attachment" : "inline")
            {
                FileName = HttpUtility.UrlEncode(displayReportName, System.Text.Encoding.UTF8)
            };
            response.Content.Headers.ContentType = new MediaTypeHeaderValue(mimeType);
            return(response);
        }
        public HttpResponseMessage GetReport(string displayReportName,
            ReportDispositonTypes reportDispositonType = ReportDispositonTypes.Attachment)
        {
            if (string.IsNullOrEmpty(displayReportName)) return Request.CreateResponse(HttpStatusCode.BadRequest);
            var cachedReport = HttpContext.Current.Session[SessionReport] as byte[];
            if (cachedReport == null) return Request.CreateResponse(HttpStatusCode.BadRequest);

            var mimeType = MimeMapping.GetMimeMapping(displayReportName);
            var response = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StreamContent(new MemoryStream(cachedReport))
            };
            response.Content.Headers.ContentDisposition =
                new ContentDispositionHeaderValue(reportDispositonType == ReportDispositonTypes.Attachment ? "attachment" : "inline")
                { FileName = displayReportName };
            response.Content.Headers.ContentType = new MediaTypeHeaderValue(mimeType);
            return response;
        }