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))