@@ -26,13 +26,13 @@ internal CsvPlugin(IGuidProvider guidProvider, IReflectionGuard reflectionGuard)
2626 _reflectionGuard = reflectionGuard ?? throw new ArgumentNullException ( nameof ( reflectionGuard ) ) ;
2727 }
2828
29- public PluginMetadata Metadata => new PluginMetadata
29+ public PluginMetadata Metadata => new ( )
3030 {
3131 Id = Guid . Parse ( "81c99765-9581-4f13-ba77-86c32ae21d97" ) ,
3232 Name = "Csv" ,
3333 CompanyName = "FlowSynx" ,
3434 Description = Resources . PluginDescription ,
35- Version = new Version ( 1 , 2 , 2 ) ,
35+ Version = new Version ( 1 , 2 , 3 ) ,
3636 Category = PluginCategory . Data ,
3737 Authors = new List < string > { "FlowSynx" } ,
3838 Copyright = "© FlowSynx. All rights reserved." ,
@@ -93,7 +93,7 @@ public Task Initialize(IPluginLogger logger)
9393 {
9494 Delimiter = inputParameter . Delimiter ?? "," ,
9595 IgnoreBlankLines = inputParameter . IgnoreBlankLines ?? true ,
96- HasHeaderRecord = true ,
96+ HasHeaderRecord = inputParameter . HasHeader ?? true ,
9797 TrimOptions = TrimOptions . Trim ,
9898 DetectColumnCountChanges = true ,
9999 BadDataFound = null
@@ -145,12 +145,12 @@ private string ReadDataFromPluginContext(PluginContext pluginContext, InputParam
145145 if ( pluginContext . Content is not null )
146146 return pluginContext . Content ;
147147 else if ( pluginContext . StructuredData is not null )
148- return StructuredDataToCsv ( pluginContext . StructuredData , inputParameter . Delimiter ) ;
148+ return StructuredDataToCsv ( pluginContext . StructuredData , inputParameter . Delimiter , inputParameter . HasHeader ) ;
149149 else
150150 throw new InvalidDataException ( string . Format ( Resources . TheEnteredDataIsInvalid , pluginContext . Id ) ) ;
151151 }
152152
153- private string StructuredDataToCsv ( List < Dictionary < string , object > > ? data , string ? delimiter = "," )
153+ private string StructuredDataToCsv ( List < Dictionary < string , object > > ? data , string ? delimiter = "," , bool ? hasHeader = true )
154154 {
155155 if ( data == null || data . Count == 0 )
156156 return string . Empty ;
@@ -159,7 +159,7 @@ private string StructuredDataToCsv(List<Dictionary<string, object>>? data, strin
159159 var config = new CsvConfiguration ( CultureInfo . InvariantCulture )
160160 {
161161 Delimiter = delimiter ?? "," ,
162- HasHeaderRecord = true ,
162+ HasHeaderRecord = hasHeader ?? true ,
163163 TrimOptions = TrimOptions . Trim ,
164164 DetectColumnCountChanges = true ,
165165 BadDataFound = null
@@ -198,7 +198,7 @@ private async Task<string> ToCsvStringAsync(IEnumerable<ExpandoObject> records,
198198 {
199199 Delimiter = inputParameter . Delimiter ?? "," ,
200200 IgnoreBlankLines = inputParameter . IgnoreBlankLines ?? true ,
201- HasHeaderRecord = true ,
201+ HasHeaderRecord = inputParameter . HasHeader ?? true ,
202202 TrimOptions = TrimOptions . Trim ,
203203 DetectColumnCountChanges = true ,
204204 BadDataFound = null
0 commit comments