refactor: extract ResolveIsinAsync helper in FundReportController
This commit is contained in:
@@ -43,24 +43,10 @@ public class FundReportController : ControllerBase
|
||||
[FromQuery] string? alias = null,
|
||||
[FromQuery] bool branding = false)
|
||||
{
|
||||
string? isin = null;
|
||||
if (!string.IsNullOrEmpty(p))
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
||||
var (isin, error) = await ResolveIsinAsync(p, alias, "fund");
|
||||
if (error != null) return error;
|
||||
if (string.IsNullOrEmpty(isin))
|
||||
return BadRequest("Specificare 'p' (ISIN cifrato) o 'alias'.");
|
||||
|
||||
return await GenerateAndReturnPdf(isin, branding, inline: true);
|
||||
}
|
||||
|
||||
@@ -70,27 +56,36 @@ public class FundReportController : ControllerBase
|
||||
[FromQuery] string? alias = null,
|
||||
[FromQuery] bool branding = false)
|
||||
{
|
||||
string? isin = null;
|
||||
if (!string.IsNullOrEmpty(p))
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
||||
var (isin, error) = await ResolveIsinAsync(p, alias, "fund download");
|
||||
if (error != null) return error;
|
||||
if (string.IsNullOrEmpty(isin))
|
||||
return BadRequest("Specificare 'p' (ISIN cifrato) o 'alias'.");
|
||||
|
||||
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)
|
||||
{
|
||||
try
|
||||
|
||||
Reference in New Issue
Block a user