From 9c771ae0c9d061a4a07924d9556ac973bf5ad808 Mon Sep 17 00:00:00 2001 From: Gianluca Sartori Date: Thu, 23 Feb 2023 12:01:25 +0100 Subject: [PATCH] Optimizations and corrections for Json output --- .../Responses/OutputStreamAppenderResponse.cs | 4 ++++ XESmartTarget.Core/Utils/DataTableJsonAdapter.cs | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/XESmartTarget.Core/Responses/OutputStreamAppenderResponse.cs b/XESmartTarget.Core/Responses/OutputStreamAppenderResponse.cs index c878388..818c8cd 100644 --- a/XESmartTarget.Core/Responses/OutputStreamAppenderResponse.cs +++ b/XESmartTarget.Core/Responses/OutputStreamAppenderResponse.cs @@ -153,6 +153,10 @@ protected void Write() { lock (EventsTable) { + if (EventsTable.Rows.Count == 0) + { + return; + } lock (Lock) { if (_outputFormat == OutputFormatEnum.Json) diff --git a/XESmartTarget.Core/Utils/DataTableJsonAdapter.cs b/XESmartTarget.Core/Utils/DataTableJsonAdapter.cs index 08e68c9..4083ef9 100644 --- a/XESmartTarget.Core/Utils/DataTableJsonAdapter.cs +++ b/XESmartTarget.Core/Utils/DataTableJsonAdapter.cs @@ -37,12 +37,17 @@ public DataTableJsonAdapter(DataTable eventsTable) public void WriteToStream(TextWriter writer) { + if(Table.Rows.Count == 0) + { + return; + } + var converter = new ExpandoObjectConverter(); var minifier = new JsMinifier(); if (OutputColumns != null) { - Table = Table.DefaultView.ToTable(false, OutputColumns); + Table = Table.DefaultView.ToTable(false, OutputColumns.Where(c => Table.Columns.Contains(c)).ToArray()); } List outputList = null;