Ejemplo n.º 1
0
        //[System.Web.Http.HttpPost]
        // public HttpResponseMessage ExportOutageNumberReport([FromBody]PreFormatedExportData data)
        // {
        //     if (data.ExportType == "Excel")
        //     {
        //         return ExportToExcel(data);
        //     }
        //     else if (data.ExportType == "Pdf")
        //     {
        //         return ExportToPdf(data);
        //     }
        //     else
        //     {
        //         return new HttpResponseMessage(HttpStatusCode.NotImplemented);
        //     }
        // }

        //[System.Web.Http.HttpPost]
        //public HttpResponseMessage ExportOutageCasesReport([FromBody]PreFormatedExportData data)
        //{
        //    if (data.ExportType == "Excel")
        //    {
        //        return ExportToExcel(data);
        //    }
        //    else if (data.ExportType == "Pdf")
        //    {
        //        return ExportToPdf(data);
        //    }
        //    else
        //    {
        //        return new HttpResponseMessage(HttpStatusCode.NotImplemented);
        //    }
        //}

        //[System.Web.Http.HttpPost]
        //public HttpResponseMessage ExportResourceReport([FromBody]PreFormatedExportData data)
        //{
        //    if (data.ExportType == "Excel")
        //    {
        //        return ExportToExcel(data);
        //    }
        //    else if (data.ExportType == "Pdf")
        //    {
        //        return ExportToPdf(data);
        //    }
        //    else
        //    {
        //        return new HttpResponseMessage(HttpStatusCode.NotImplemented);
        //    }
        //}

        private HttpResponseMessage ExportToExcel(ExportData data)
        {
            XSSFWorkbook xssfworkbook = new XSSFWorkbook();
            XSSFSheet    sheet        = (XSSFSheet)xssfworkbook.CreateSheet(data.ApiResource);

            try
            {
                switch (data.ApiResource)
                {
                case "Users":
                    EXPORTBL.ExportUsers(sheet, data as StandardExportData);
                    break;

                case "Events":
                    EXPORTBL.ExportEvents(sheet, data as StandardExportData);
                    break;

                //case "Requests":
                //    EXPORTBL.ExportRequests(sheet, data as StandardExportData);
                //    break;
                //case "Responses":
                //    EXPORTBL.ExportResponses(sheet, data as StandardExportData);
                //    break;
                //case "Allocation":
                //    EXPORTBL.ExportAllocation(sheet, data as AllocationExportData);
                //    break;
                //case "Matching":
                //    EXPORTBL.ExportMatching(sheet, data as MatchingExportData);
                //    break;
                //case "MatchLog":
                //    EXPORTBL.ExportMatchLog(sheet, data as StandardExportData);
                //    break;
                case "Companies":
                    EXPORTBL.ExportCompanies(sheet, data as StandardExportData);
                    break;

                case "AdhocReport":
                    EXPORTBL.AdhocReport(sheet, data as AdhocReportData);
                    break;

                //case "OutageNumberReport":
                //    EXPORTBL.ExportOutageNumberReport(sheet, data as PreFormatedExportData);
                //    break;
                //case "OutageCasesReport":
                //    EXPORTBL.ExportOutageCasesReport(sheet, data as PreFormatedExportData);
                //    break;
                //case "ResourceReport":
                //    EXPORTBL.ExportResourceReport(sheet, data as PreFormatedExportData);
                //    break;
                //case "NonIOURequests":
                //    EXPORTBL.ExportNonIOURequests(sheet, data as StandardExportData);
                //    break;
                default:
                    return(new HttpResponseMessage(HttpStatusCode.NoContent));
                }
            }
            catch (Exception ex)
            {
                if (ex.Message == "INVALID_API_PARAMS")
                {
                    return(new HttpResponseMessage(HttpStatusCode.NoContent));
                }
                else
                {
                    return(new HttpResponseMessage()
                    {
                        Content = new StringContent(ex.Message),
                        RequestMessage = Request
                    });
                }
            }

            MemoryStream stream = new MemoryStream();

            xssfworkbook.Write(stream);
            HttpResponseMessage result = Request.CreateResponse(HttpStatusCode.OK);

            result.Content = new ByteArrayContent(stream.ToArray());
            string saveAsFileName = data.ApiResource + ".xlsx";

            result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.ms-excel");
            result.Content.Headers.Add("x-filename", saveAsFileName);
            result.Content.Headers.ContentDisposition          = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment");
            result.Content.Headers.ContentDisposition.FileName = saveAsFileName;

            return(result);
        }