From 03dad27414e55e8e863c6a46818c8aef077d6827 Mon Sep 17 00:00:00 2001 From: SmartRootsSrl Date: Thu, 28 May 2026 12:37:41 +0200 Subject: [PATCH] feat: dual-path save for format=jpg/jpeg with ?save=true When format=jpg/jpeg and save=true, the chart is now saved to both: - SavePath/{isin}.jpg (visible filename) - SavePathEnc/{alias}.jpg (encoded filename, if alias exists) This allows the external script to call the API once instead of twice (no more separate jpg + jpgEnc calls). format=jpgEnc remains unchanged for backward compatibility. Co-Authored-By: Claude Sonnet 4.6 (1M context) --- .../Controllers/ChartController.cs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/CertReports.Syncfusion/Controllers/ChartController.cs b/CertReports.Syncfusion/Controllers/ChartController.cs index 26faa88..b141d56 100644 --- a/CertReports.Syncfusion/Controllers/ChartController.cs +++ b/CertReports.Syncfusion/Controllers/ChartController.cs @@ -121,15 +121,28 @@ public class ChartController : ControllerBase || format.Equals("jpg", StringComparison.OrdinalIgnoreCase) || format.Equals("jpeg", StringComparison.OrdinalIgnoreCase); - // Alias codificato (necessario sia per jpgEnc che per il salvataggio su disco) - string? alias = isJpegEnc ? await _chartDataServiceV2.GetChartAliasAsync(isin) : null; + // Alias: serve per jpgEnc (nome file risposta) e per il doppio salvataggio in jpg/jpeg + string? alias = (isJpegEnc || (isJpeg && save)) + ? await _chartDataServiceV2.GetChartAliasAsync(isin) + : null; byte[] imgBytes = SkiaChartRendererV2.RenderToPng(chartData, width, height, jpeg: isJpeg); // ── Salvataggio su disco (solo se ?save=true) ───────────────── if (save && isJpeg) { - await SaveChartToDiskAsync(isin, alias, imgBytes, isJpegEnc); + if (isJpegEnc) + { + // jpgEnc: solo SavePathEnc/{alias}.jpg + await SaveChartToDiskAsync(isin, alias, imgBytes, isEnc: true); + } + else + { + // jpg/jpeg: SavePath/{isin}.jpg + SavePathEnc/{alias}.jpg + await SaveChartToDiskAsync(isin, alias: null, imgBytes, isEnc: false); + if (!string.IsNullOrEmpty(alias)) + await SaveChartToDiskAsync(isin, alias, imgBytes, isEnc: true); + } } if (format.Equals("pdf", StringComparison.OrdinalIgnoreCase))