From e0684043f7231c01914618db61336ab37db4413b Mon Sep 17 00:00:00 2001 From: Santiago Squarzon Date: Tue, 17 Dec 2024 17:33:33 -0300 Subject: [PATCH] all working! --- src/PowerShellKusto/Extensions.cs | 2 ++ src/PowerShellKusto/KustoReaderCommandBase.cs | 14 ++++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/PowerShellKusto/Extensions.cs b/src/PowerShellKusto/Extensions.cs index 1a60ecf..809ed6c 100644 --- a/src/PowerShellKusto/Extensions.cs +++ b/src/PowerShellKusto/Extensions.cs @@ -10,6 +10,8 @@ namespace PowerShellKusto; internal static class Extensions { + internal static DataTable ToDataTable(this IDataReader reader) => reader.ToDataSet().Tables[0]; + internal static string ToCsvString(this IDataReader reader, bool includeHeaders = true) { using MemoryStream mem = new(); diff --git a/src/PowerShellKusto/KustoReaderCommandBase.cs b/src/PowerShellKusto/KustoReaderCommandBase.cs index ef7c52c..c8cf609 100644 --- a/src/PowerShellKusto/KustoReaderCommandBase.cs +++ b/src/PowerShellKusto/KustoReaderCommandBase.cs @@ -13,9 +13,15 @@ public abstract class KustoReaderCommandBase : KustoCommandBase, IDynamicParamet private DynamicParamExcludeHeader? _excludeHeaderParam; - private string Title { get => _titleParam!.Title; } + private string Title + { + get => _titleParam?.Title ?? string.Empty; + } - private SwitchParameter ExcludeHeaders { get => _excludeHeaderParam!.ExcludeHeaders; } + private bool ExcludeHeaders + { + get => _excludeHeaderParam is { ExcludeHeaders.IsPresent: not true }; + } [Parameter(Position = 2)] public OutputType OutputType { get; set; } = OutputType.PSObject; @@ -46,11 +52,11 @@ protected void HandleReader(IDataReader reader) return; case OutputType.Csv: - WriteObject(reader.ToCsvString(!ExcludeHeaders.IsPresent)); + WriteObject(reader.ToCsvString(ExcludeHeaders)); return; case OutputType.DataTable: - WriteObject(reader.ToDataSet().Tables[0]); + WriteObject(reader.ToDataTable()); return; case OutputType.Html: