ZUGFERD 20007 - BT-Felder-Liste anzeigen, mehrsprachig

This commit is contained in:
2026-04-02 11:46:20 +02:00
parent 3f58acea7a
commit b4eecbdb86

View File

@@ -248,7 +248,7 @@ namespace ZUGFeRDRESTService.Controllers
// DEFAULT-Sprache = Deutsch de-DE // DEFAULT-Sprache = Deutsch de-DE
_UserLanguageCode = GERMAN; _UserLanguageCode = GERMAN;
} }
else if (_AllowedLanguageCodes.Contains(oLanguageId)) else if (_AllowedLanguageCodes.Where(i => i.Equals(oLanguageId, StringComparison.OrdinalIgnoreCase)).FirstOrDefault() != null)
{ {
_logger.Info("Language code is allowed. Set to [{0}].", oLanguageId); _logger.Info("Language code is allowed. Set to [{0}].", oLanguageId);
_UserLanguageCode = oLanguageId; _UserLanguageCode = oLanguageId;
@@ -389,8 +389,12 @@ namespace ZUGFeRDRESTService.Controllers
switch (ex.ErrorCode) switch (ex.ErrorCode)
{ {
case ErrorCodes.MissingValueException: case ErrorCodes.MissingValueException:
oErrors.AddRange(from item in oPropertyResult.MissingProperties
select (item.EN16931_ID + " (" + item.Description + ")")); var oErrorsText = GetMissingValuesListString(oPropertyResult.MissingProperties);
if (!string.IsNullOrEmpty(oErrorsText) && oMessage.Contains("@REPLACE_PARAM3", StringComparison.OrdinalIgnoreCase))
{
oMessage = Regex.Replace(oMessage, "@REPLACE_PARAM3", oErrorsText, RegexOptions.IgnoreCase);
}
break; break;
default: default:
break; break;
@@ -485,6 +489,26 @@ namespace ZUGFeRDRESTService.Controllers
} }
} }
private string GetMissingValuesListString(List<MissingProperty> missingProperties)
{
if (missingProperties == null || missingProperties.Count == 0)
{
return string.Empty;
}
string retValue = "<ul>";
foreach (var missingProperty in missingProperties)
{
var searchToken = missingProperty.EN16931_ID + "_Description";
var descriptionTranslated = GetTextByToken(searchToken);
var rowString = "<li>" + missingProperty.EN16931_ID + " (" + descriptionTranslated + ")</li>";
retValue += rowString;
}
retValue += "</ul>";
return retValue;
}
/// <summary> /// <summary>
/// Holt sprachgenauen Text anhand eines Titel-Tokens /// Holt sprachgenauen Text anhand eines Titel-Tokens
/// </summary> /// </summary>