private static void Export(HttpContext context, string queryParameters, IDataSourceView4 dataSourceView, IExportJournal journal, ICollection <string> selectedValues)
        {
            if (!dataSourceView.CheckPermit() || !dataSourceView.CheckPermitExport())
            {
                context.Response.StatusCode = 404;
                context.Response.End();
                return;
            }

            var data = selectedValues != null && selectedValues.Count > 0
                           ? dataSourceView.GetSelectIRowByID(queryParameters, selectedValues.ToArray())
                           : dataSourceView.GetSelectIRow(queryParameters);
            var log = InitializerSection.GetSection().LogMonitor;

            log.Init();
            var exportData = data.ToList();

            journal.Url = new MainPageUrlBuilder("/MainPage.aspx/data/" + journal.TableName + "Journal" + queryParameters);
            journal.PrepareExportData(exportData);
            var args = new JournalExportEventArgs
            {
                CheckPermit  = true,
                Columns      = GridHtmlGenerator.GetColumnsForExport(journal.GetColumns()),
                FilterValues = journal.GetFilterValues(),
                Format       = "Excel",
                Header       = journal.TableHeader,
                LogMonitor   = log,
                Control      = new AccessControl(dataSourceView.CheckPermitExport),
                Data         = exportData,
            };
            var url = new MainPageUrlBuilder
            {
                UserControl   = journal.TableName + "Journal",
                IsDataControl = true,
                ShowHistory   = true,
            };

            args.ViewJournalUrl = new StringBuilder();
            url.CreateUrl(args.ViewJournalUrl);
            args.ViewJournalUrl.Append("?id.EqualsCollection=");

            var stream = WebSpecificInstances.GetExcelExporter().GetExcelStream(args);

            PageHelper.DownloadFile(stream, journal.TableHeader + "." + args.FileNameExtention, context.Response);
        }
 public static IEnumerable <IGridColumn> GetExtNetGridColumns(this BaseGridColumns gridColumns)
 {
     return(GridHtmlGenerator.GetColumnsHierarchy <GridColumn>(gridColumns.Columns).Cast <IGridColumn>());
 }