Exemple #1
0
        /// <summary>
        ///     This function is for exporting a target table to excel file and send the exported one to client.
        /// </summary>
        /// <param name="findTableRecordsViewModel">
        ///     This instance is for retrieving table name sent from client [page|record] are
        ///     useless
        /// </param>
        /// <returns></returns>
        public ActionResult ExportDatabaseToExcel(FindTableRecordsViewModel findTableRecordsViewModel)
        {
            // Set page & record to one to prevent validation errors on service.
            findTableRecordsViewModel.Page    = 1;
            findTableRecordsViewModel.Records = 1;

            // Validate the model again.
            ValidateModel(findTableRecordsViewModel);

            // Model state is invalid.
            if (!ModelState.IsValid)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            // Export the target table to DataTable instance.
            var dataTable = _exportReportDomain.ExportSqlToDataTable(findTableRecordsViewModel.Table);

            // Memorizing data table instance by using MemoryStream.
            var memorizedDataTable = _exportReportDomain.ExportDataTableToMemoryStream(dataTable);

            // Export report to client download.
            ExportExcelFileToClientDownload(findTableRecordsViewModel.Table, memorizedDataTable, Response);

            // Export the datatable into an excel file.
            return(new HttpStatusCodeResult(HttpStatusCode.OK));
        }