private static DataGridResultViewer InitializeResultViewer() { var columnHeaders = new[] { new ColumnHeader { ColumnIndex = 0, DatabaseDataType = "Varchar2", DataType = typeof(string), Name = "DUMMY1" }, new ColumnHeader { ColumnIndex = 1, DatabaseDataType = "Date", DataType = typeof(DateTime), Name = "DUMMY_WITH_UNDERSCORES" }, //new ColumnHeader { ColumnIndex = 2, DatabaseDataType = "Varchar2", DataType = typeof (string), Name = "\"'\\\"><?,.;:{}[]%$#@!~^&*()_+-§'''||(1/2*3+4-CASEWHEN1<=2OR2>=1THEN5ELSE6END)" } }; var documentPage = new DocumentPage { CurrentConnection = ConfigurationProvider.ConnectionStrings[0] }; documentPage.DatabaseModel.Dispose(); var outputViewer = new OutputViewer(documentPage); var dataRows = new[] { new object[] { "Value \"1\" '2' <3>", new DateTime(2014, 8, 16, 22, 25, 34) }, new object[] { "\"2.\"Value", new DateTime(2014, 8, 16) }, //new object[] {"\"><?,.;:{}[]%$#@!~^&*()_+-§' ,5", new DateTime(2015, 5, 30) } }; var resultInfo = new ResultInfo(null, "Test result", ResultIdentifierType.UserDefined); var executionResult = new StatementExecutionResult { StatementModel = new StatementExecutionModel { StatementText = "SELECT * FROM DUAL" }, ResultInfoColumnHeaders = new Dictionary <ResultInfo, IReadOnlyList <ColumnHeader> > { { resultInfo, columnHeaders } } }; var resultViewer = new DataGridResultViewer(outputViewer, executionResult, resultInfo) { ResultGrid = { ItemsSource = dataRows } }; DataGridHelper.InitializeDataGridColumns(resultViewer.ResultGrid, columnHeaders, outputViewer.StatementValidator, outputViewer.ConnectionAdapter); return(resultViewer); }
private static async Task <string> GetExportContent(DataGridResultViewer resultViewer, IDataExporter dataExporter) { var tempFileName = await GenerateExportFile(resultViewer, dataExporter); var result = File.ReadAllText(tempFileName); File.Delete(tempFileName); return(result); }
private static async Task <string> GenerateExportFile(DataGridResultViewer resultViewer, IDataExporter dataExporter) { var tempFileName = Path.GetTempFileName(); var connectionConfiguration = ConfigurationProvider.GetConnectionConfiguration(ConfigurationProvider.ConnectionStrings[0].Name); Thread.CurrentThread.CurrentCulture = CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture; using (var exportContext = await dataExporter.StartExportAsync(ExportOptions.ToFile(tempFileName, resultViewer.Title), DataExportHelper.GetOrderedExportableColumns(resultViewer.ResultGrid), connectionConfiguration.InfrastructureFactory.DataExportConverter, CancellationToken.None)) { await exportContext.AppendRowsAsync(resultViewer.ResultGrid.Items.Cast <object[]>()); await exportContext.FinalizeAsync(); } return(tempFileName); }
private static DataGridResultViewer InitializeResultViewer() { var columnHeaders = new[] { new ColumnHeader { ColumnIndex = 0, DatabaseDataType = "Varchar2", DataType = typeof (string), Name = "DUMMY1" }, new ColumnHeader { ColumnIndex = 1, DatabaseDataType = "Date", DataType = typeof (DateTime), Name = "DUMMY_WITH_UNDERSCORES" }, //new ColumnHeader { ColumnIndex = 2, DatabaseDataType = "Varchar2", DataType = typeof (string), Name = "\"'\\\"><?,.;:{}[]%$#@!~^&*()_+-§'''||(1/2*3+4-CASEWHEN1<=2OR2>=1THEN5ELSE6END)" } }; var documentPage = new DocumentPage { CurrentConnection = ConfigurationProvider.ConnectionStrings[0] }; documentPage.DatabaseModel.Dispose(); var outputViewer = new OutputViewer(documentPage); var dataRows = new[] { new object[] {"Value \"1\" '2' <3>", new DateTime(2014, 8, 16, 22, 25, 34)}, new object[] {"\"2.\"Value", new DateTime(2014, 8, 16)}, //new object[] {"\"><?,.;:{}[]%$#@!~^&*()_+-§' ,5", new DateTime(2015, 5, 30) } }; var resultInfo = new ResultInfo(null, "Test result", ResultIdentifierType.UserDefined); var executionResult = new StatementExecutionResult { StatementModel = new StatementExecutionModel { StatementText = "SELECT * FROM DUAL" }, ResultInfoColumnHeaders = new Dictionary<ResultInfo, IReadOnlyList<ColumnHeader>> { { resultInfo, columnHeaders } } }; var resultViewer = new DataGridResultViewer(outputViewer, executionResult, resultInfo) { ResultGrid = { ItemsSource = dataRows } }; DataGridHelper.InitializeDataGridColumns(resultViewer.ResultGrid, columnHeaders, outputViewer.StatementValidator, outputViewer.ConnectionAdapter); return resultViewer; }
private static async Task<string> GenerateExportFile(DataGridResultViewer resultViewer, IDataExporter dataExporter) { var tempFileName = Path.GetTempFileName(); var connectionConfiguration = ConfigurationProvider.GetConnectionConfiguration(ConfigurationProvider.ConnectionStrings[0].Name); Thread.CurrentThread.CurrentCulture = CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture; using (var exportContext = await dataExporter.StartExportAsync(ExportOptions.ToFile(tempFileName, resultViewer.Title), DataExportHelper.GetOrderedExportableColumns(resultViewer.ResultGrid), connectionConfiguration.InfrastructureFactory.DataExportConverter, CancellationToken.None)) { await exportContext.AppendRowsAsync(resultViewer.ResultGrid.Items.Cast<object[]>()); await exportContext.FinalizeAsync(); } return tempFileName; }
private static async Task<string> GetExportContent(DataGridResultViewer resultViewer, IDataExporter dataExporter) { var tempFileName = await GenerateExportFile(resultViewer, dataExporter); var result = File.ReadAllText(tempFileName); File.Delete(tempFileName); return result; }