refactor: extract ResolveIsinAsync helper in FundReportController
This commit is contained in:
@@ -43,24 +43,10 @@ public class FundReportController : ControllerBase
|
|||||||
[FromQuery] string? alias = null,
|
[FromQuery] string? alias = null,
|
||||||
[FromQuery] bool branding = false)
|
[FromQuery] bool branding = false)
|
||||||
{
|
{
|
||||||
string? isin = null;
|
var (isin, error) = await ResolveIsinAsync(p, alias, "fund");
|
||||||
if (!string.IsNullOrEmpty(p))
|
if (error != null) return error;
|
||||||
{
|
|
||||||
try { isin = _crypto.DecryptIsin(p); }
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
_logger.LogWarning(ex, "Errore decodifica ISIN cifrato (fund)");
|
|
||||||
return BadRequest("Parametro 'p' non valido.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (!string.IsNullOrEmpty(alias))
|
|
||||||
{
|
|
||||||
isin = await _dataService.FindIsinByAliasIdAsync(alias);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(isin))
|
if (string.IsNullOrEmpty(isin))
|
||||||
return BadRequest("Specificare 'p' (ISIN cifrato) o 'alias'.");
|
return BadRequest("Specificare 'p' (ISIN cifrato) o 'alias'.");
|
||||||
|
|
||||||
return await GenerateAndReturnPdf(isin, branding, inline: true);
|
return await GenerateAndReturnPdf(isin, branding, inline: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,27 +56,36 @@ public class FundReportController : ControllerBase
|
|||||||
[FromQuery] string? alias = null,
|
[FromQuery] string? alias = null,
|
||||||
[FromQuery] bool branding = false)
|
[FromQuery] bool branding = false)
|
||||||
{
|
{
|
||||||
string? isin = null;
|
var (isin, error) = await ResolveIsinAsync(p, alias, "fund download");
|
||||||
if (!string.IsNullOrEmpty(p))
|
if (error != null) return error;
|
||||||
{
|
|
||||||
try { isin = _crypto.DecryptIsin(p); }
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
_logger.LogWarning(ex, "Errore decodifica ISIN cifrato (fund download)");
|
|
||||||
return BadRequest("Parametro 'p' non valido.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (!string.IsNullOrEmpty(alias))
|
|
||||||
{
|
|
||||||
isin = await _dataService.FindIsinByAliasIdAsync(alias);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(isin))
|
if (string.IsNullOrEmpty(isin))
|
||||||
return BadRequest("Specificare 'p' (ISIN cifrato) o 'alias'.");
|
return BadRequest("Specificare 'p' (ISIN cifrato) o 'alias'.");
|
||||||
|
|
||||||
return await GenerateAndReturnPdf(isin, branding, inline: false);
|
return await GenerateAndReturnPdf(isin, branding, inline: false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async Task<(string? Isin, IActionResult? Error)> ResolveIsinAsync(
|
||||||
|
string? p, string? alias, string context)
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(p))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return (_crypto.DecryptIsin(p), null);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.LogWarning(ex, "Errore decodifica ISIN cifrato ({Context})", context);
|
||||||
|
return (null, BadRequest("Parametro 'p' non valido."));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!string.IsNullOrEmpty(alias))
|
||||||
|
{
|
||||||
|
var isin = await _dataService.FindIsinByAliasIdAsync(alias);
|
||||||
|
return (isin, null);
|
||||||
|
}
|
||||||
|
return (null, null);
|
||||||
|
}
|
||||||
|
|
||||||
private async Task<IActionResult> GenerateAndReturnPdf(string isin, bool branding, bool inline)
|
private async Task<IActionResult> GenerateAndReturnPdf(string isin, bool branding, bool inline)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|||||||
Reference in New Issue
Block a user