fix: negative perf color, parallel SP calls in chart controller, sort comment
This commit is contained in:
@@ -44,25 +44,31 @@ public class FundChartController : ControllerBase
|
||||
|
||||
try
|
||||
{
|
||||
var info = await _dataService.GetFundInfoAsync(isin);
|
||||
var points = await _dataService.GetChartPricesAsync(isin);
|
||||
var infoTask = _dataService.GetFundInfoAsync(isin);
|
||||
var pointsTask = _dataService.GetChartPricesAsync(isin);
|
||||
await Task.WhenAll(infoTask, pointsTask);
|
||||
|
||||
if (info == null || points.Count == 0)
|
||||
var info = infoTask.Result;
|
||||
var points = pointsTask.Result;
|
||||
|
||||
if (points.Count == 0)
|
||||
return NotFound($"Nessun dato per ISIN {isin}");
|
||||
|
||||
var chartTitle = info?.Strumento ?? isin;
|
||||
|
||||
bool isJpeg = format.Equals("jpg", StringComparison.OrdinalIgnoreCase)
|
||||
|| format.Equals("jpeg", StringComparison.OrdinalIgnoreCase);
|
||||
|
||||
if (format.Equals("pdf", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
var pngBytes = FundSkiaChartRenderer.Render(points, info.Strumento, width, height);
|
||||
var pngBytes = FundSkiaChartRenderer.Render(points, chartTitle, width, height);
|
||||
var pdfBytes = WrapPngInPdf(pngBytes);
|
||||
Response.Headers.Append("Content-Disposition",
|
||||
$"inline; filename=chart_fund_{isin}.pdf");
|
||||
return File(pdfBytes, "application/pdf");
|
||||
}
|
||||
|
||||
var imgBytes = FundSkiaChartRenderer.Render(points, info.Strumento, width, height, jpeg: isJpeg);
|
||||
var imgBytes = FundSkiaChartRenderer.Render(points, chartTitle, width, height, jpeg: isJpeg);
|
||||
|
||||
if (save && isJpeg)
|
||||
await SaveChartToDiskAsync(isin, imgBytes);
|
||||
|
||||
@@ -66,7 +66,7 @@ public class FundDataService : IFundDataService
|
||||
_logger.LogError(ex, "Errore GetChartPricesAsync per ISIN {Isin}", isin);
|
||||
throw;
|
||||
}
|
||||
points.Sort((a, b) => a.Date.CompareTo(b.Date));
|
||||
points.Sort((a, b) => a.Date.CompareTo(b.Date)); // defensive: SP returns ASC but enforce here
|
||||
return points;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user