diff --git a/src/ApplicationCore/ActionResults/CSVResult.cs b/src/ApplicationCore/ActionResults/CSVResult.cs index 7ce7d7d..7c53fd8 100644 --- a/src/ApplicationCore/ActionResults/CSVResult.cs +++ b/src/ApplicationCore/ActionResults/CSVResult.cs @@ -11,19 +11,21 @@ public class CSVResult : IActionResult where T : class { private readonly IEnumerable _data; - public CSVResult(IEnumerable data, string fileName) + public CSVResult(IEnumerable data, string fileName, bool spaceAfterComma) { _data = data; FileName = fileName; + SpaceAfterComma = spaceAfterComma; } public string FileName { get; } + public bool SpaceAfterComma { get; } public async Task ExecuteResultAsync(ActionContext context) { try { - var csvBytes = await _data.GenerateCSVForDataAsync(); + var csvBytes = await _data.GenerateCSVForDataAsync(SpaceAfterComma); WriteExcelFileAsync(context.HttpContext, csvBytes); } @@ -31,7 +33,7 @@ public async Task ExecuteResultAsync(ActionContext context) { Console.WriteLine(e); - var errorBytes = await new List().GenerateCSVForDataAsync(); + var errorBytes = await new List().GenerateCSVForDataAsync(SpaceAfterComma); WriteExcelFileAsync(context.HttpContext, errorBytes); } } diff --git a/src/ApplicationCore/Extensions/ReportExtensions.cs b/src/ApplicationCore/Extensions/ReportExtensions.cs index df9dc0a..8ac14a4 100644 --- a/src/ApplicationCore/Extensions/ReportExtensions.cs +++ b/src/ApplicationCore/Extensions/ReportExtensions.cs @@ -112,11 +112,13 @@ public static async Task GenerateExcelForDataTableAsync(this IEnumera } } - public static async Task GenerateCSVForDataAsync(this IEnumerable data) + public static async Task GenerateCSVForDataAsync(this IEnumerable data, bool spaceAfterComma) { var builder = new StringBuilder(); var stringWriter = new StringWriter(builder); + string comma = spaceAfterComma ? " " : string.Empty; + await Task.Run(() => { var columns = GetColumnsFromModel(typeof(T)).ToDictionary(x => x.Name, x => x.Value).OrderBy(x => x.Value.Order); @@ -124,7 +126,7 @@ await Task.Run(() => foreach (var column in columns) { stringWriter.Write(column.Key); - stringWriter.Write(", "); + stringWriter.Write(","+ comma); } stringWriter.WriteLine(); @@ -134,7 +136,7 @@ await Task.Run(() => foreach (var prop in columns) { stringWriter.Write(PropertyExtensions.GetPropertyValue(item, prop.Value.Path)); - stringWriter.Write(", "); + stringWriter.Write("," + comma); } stringWriter.WriteLine(); }