public ActionResult Export(FilterResultsExportViewModel viewModel)
        {
            questStatus status = null;

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Log Operation
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = LogOperation();
            if (!questStatusDef.IsSuccess(status))
            {
                viewModel.questStatus = status;
                return(Json(viewModel, JsonRequestBehavior.AllowGet));
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Authorize
            *---------------------------------------------------------------------------------------------------------------------------------*/
            status = Authorize(viewModel._ctx);
            if (!questStatusDef.IsSuccess(status))
            {
                viewModel.questStatus = status;
                return(Json(viewModel, JsonRequestBehavior.AllowGet));
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Perform operation.
            *---------------------------------------------------------------------------------------------------------------------------------*/
            ResultsSet         resultsSet         = null;
            FilterPanelModeler filterPanelModeler = new FilterPanelModeler(Request, this.UserSession, viewModel);

            status = filterPanelModeler.Export(viewModel, out resultsSet);
            if (!questStatusDef.IsSuccess(status))
            {
                viewModel.questStatus = status;
                return(Json(viewModel, JsonRequestBehavior.AllowGet));
            }

            /*----------------------------------------------------------------------------------------------------------------------------------
            * Return result.
            *---------------------------------------------------------------------------------------------------------------------------------*/
            Response.ClearContent();
            Response.AddHeader("content-disposition", "atachment;filename=" + viewModel.Name.Replace(" ", "_") + ".xls");
            Response.AddHeader("Content-Type", "application/vnd.ms-excel");
            WriteTsv(resultsSet, Response.Output);
            Response.Flush();
            Response.End();
            return(new EmptyResult());
        }
Example #2
0
        public questStatus Export(FilterResultsExportViewModel filterResultsExportViewModel, out ResultsSet resultsSet)
        {
            // Initialize
            questStatus status = null;

            resultsSet = null;
            if (filterResultsExportViewModel._ResultsOptions == null)
            {
                filterResultsExportViewModel._ResultsOptions          = new ResultsOptionsViewModel();
                filterResultsExportViewModel._ResultsOptions.RowLimit = "";
                filterResultsExportViewModel._ResultsOptions.ColLimit = "";
            }

            // Fill out a run rqeuest
            RunFilterRequest runFilterRequest = new RunFilterRequest();

            runFilterRequest.FilterId.Id = filterResultsExportViewModel.Id;
            if ((filterResultsExportViewModel.RowLimit != null) && (filterResultsExportViewModel.RowLimit.Trim().Length > 0))
            {
                runFilterRequest.RowLimit = filterResultsExportViewModel.RowLimit.Trim();
            }
            else if ((filterResultsExportViewModel._ResultsOptions.RowLimit != null) && (filterResultsExportViewModel._ResultsOptions.RowLimit.Trim().Length > 0))
            {
                runFilterRequest.RowLimit = filterResultsExportViewModel._ResultsOptions.RowLimit.Trim();
            }
            if ((filterResultsExportViewModel.ColLimit != null) && (filterResultsExportViewModel.ColLimit.Trim().Length > 0))
            {
                runFilterRequest.ColLimit = filterResultsExportViewModel.ColLimit.Trim();
            }
            else if ((filterResultsExportViewModel._ResultsOptions.ColLimit != null) && (filterResultsExportViewModel._ResultsOptions.ColLimit.Trim().Length > 0))
            {
                runFilterRequest.ColLimit = filterResultsExportViewModel._ResultsOptions.ColLimit.Trim();
            }


            // Execute filter
            resultsSet = null;
            FilterMgr filterMgr = new FilterMgr(this.UserSession);

            status = filterMgr.ExecuteFilter(runFilterRequest, out resultsSet);
            if (!questStatusDef.IsSuccess(status))
            {
                return(new questStatus(status.Severity, String.Format("Error executing filter Id={0}: {1}",
                                                                      runFilterRequest.FilterId.Id, status.Message)));
            }
            return(new questStatus(Severity.Success));
        }