Example #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));
        }
Example #2
0
        public async Task <ActionResult> RetrieveTableRecords(FindTableRecordsViewModel findTableRecordsViewModel)
        {
            try
            {
                // Model hasn't been initialize. Initialize it and do validation.
                if (findTableRecordsViewModel == null)
                {
                    findTableRecordsViewModel = new FindTableRecordsViewModel();
                    ValidateModel(findTableRecordsViewModel);
                }

                // Request parameters are invalid.
                if (!ModelState.IsValid)
                {
                    // Build validation messages and respond to client.
                    Response.StatusCode = (int)HttpStatusCode.BadRequest;
                    return(Json(new
                    {
                        validationMessages = FindValidationMessages(ModelState)
                    }));
                }

                var tableColumns = await _masterDatabaseDomain.FindTableColumns(findTableRecordsViewModel.Table);

                var tableRows =
                    await
                    _masterDatabaseDomain.FindTableRecords(findTableRecordsViewModel.Table,
                                                           findTableRecordsViewModel.Page,
                                                           findTableRecordsViewModel.Records);

                var tableViewModel = new
                {
                    Headers = tableColumns,
                    Body    = tableRows
                };

                return(Json(tableViewModel));
            }
            catch (Exception exception)
            {
                Response.StatusCode = (int)HttpStatusCode.InternalServerError;
                return(Json(new
                {
                    exception.Message
                }));
            }
        }