ZUGFeRD REST Service: LanguageID in HTTPPost-Methode
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
using DigitalData.Modules.Interfaces;
|
using DigitalData.Modules.Interfaces;
|
||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Microsoft.CodeAnalysis.CSharp.Syntax;
|
||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@@ -47,7 +48,14 @@ namespace ZUGFeRDRESTService.Controllers
|
|||||||
public const string REFERENCES_Rejection_30012 = "REFERENCES_Rejection_30012";
|
public const string REFERENCES_Rejection_30012 = "REFERENCES_Rejection_30012";
|
||||||
public const string AMOUNT_CALC_REJECTION = "AMOUNT_CALC_REJECTION";
|
public const string AMOUNT_CALC_REJECTION = "AMOUNT_CALC_REJECTION";
|
||||||
|
|
||||||
|
public const string GERMAN = "de-DE";
|
||||||
|
public const string ENGLISH = "en-US";
|
||||||
|
public const string FRENCH = "fr-FR";
|
||||||
|
public const string SPAIN = "es-ES";
|
||||||
|
|
||||||
private List<string> _ValidationErrors;
|
private List<string> _ValidationErrors;
|
||||||
|
private List<string> _AllowedLanguageCodes;
|
||||||
|
private string _UserLanguageCode = "de-DE";
|
||||||
|
|
||||||
private const int MAX_FILE_SIZE_DEFAULT = 25;
|
private const int MAX_FILE_SIZE_DEFAULT = 25;
|
||||||
|
|
||||||
@@ -128,6 +136,14 @@ namespace ZUGFeRDRESTService.Controllers
|
|||||||
AMOUNT_CALC_REJECTION
|
AMOUNT_CALC_REJECTION
|
||||||
};
|
};
|
||||||
|
|
||||||
|
_AllowedLanguageCodes = new List<string>()
|
||||||
|
{
|
||||||
|
GERMAN,
|
||||||
|
ENGLISH,
|
||||||
|
FRENCH,
|
||||||
|
SPAIN,
|
||||||
|
};
|
||||||
|
|
||||||
_logger.Debug("Validation Controller initialized!");
|
_logger.Debug("Validation Controller initialized!");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -191,14 +207,41 @@ namespace ZUGFeRDRESTService.Controllers
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="file">This parameter's name needs to correspond to the html form's file-input name</param>
|
/// <param name="file">This parameter's name needs to correspond to the html form's file-input name</param>
|
||||||
/// <param name="user_id">This is the email address which the user supplied</param>
|
/// <param name="user_id">This is the email address which the user supplied</param>
|
||||||
|
/// <param name="language_id">This is language code which the user supplied (en-US, de-DE)</param>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public ValidationResponse Post(IFormFile file, string user_id)
|
public ValidationResponse Post(IFormFile file, string user_id, string language_id = null)
|
||||||
{
|
{
|
||||||
_logger.Info("Start processing request to ValidationController");
|
_logger.Info("Start processing request to ValidationController");
|
||||||
|
|
||||||
ZugferdResult oZugferdResult = null;
|
ZugferdResult oZugferdResult = null;
|
||||||
CheckPropertyValuesResult oPropertyResult = new CheckPropertyValuesResult();
|
CheckPropertyValuesResult oPropertyResult = new CheckPropertyValuesResult();
|
||||||
|
|
||||||
|
if (!string.IsNullOrEmpty(user_id))
|
||||||
|
{
|
||||||
|
_logger.Info("UserID set to [{0}].", user_id);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_logger.Info("UserID is empty!");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(language_id))
|
||||||
|
{
|
||||||
|
_logger.Info("Language code was empty. Set to default 'de-DE'");
|
||||||
|
// DEFAULT-Sprache = Deutsch de-DE
|
||||||
|
_UserLanguageCode = GERMAN;
|
||||||
|
}
|
||||||
|
else if (_AllowedLanguageCodes.Contains(language_id))
|
||||||
|
{
|
||||||
|
_logger.Info("Language code is allowed. Set to [{0}].", language_id);
|
||||||
|
_UserLanguageCode = language_id;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_logger.Info("Language code was unknown: [{0}]. Set to default 'de-DE'", language_id);
|
||||||
|
_UserLanguageCode = GERMAN;
|
||||||
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
using Stream oStream = file.OpenReadStream();
|
using Stream oStream = file.OpenReadStream();
|
||||||
@@ -611,7 +654,7 @@ namespace ZUGFeRDRESTService.Controllers
|
|||||||
return oReplaceParam1;
|
return oReplaceParam1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public string GetMessageId()
|
private string GetMessageId()
|
||||||
{
|
{
|
||||||
return $"{Guid.NewGuid()}@{MESSAGEID_DOMAIN}";
|
return $"{Guid.NewGuid()}@{MESSAGEID_DOMAIN}";
|
||||||
}
|
}
|
||||||
@@ -772,7 +815,7 @@ namespace ZUGFeRDRESTService.Controllers
|
|||||||
return oDataTable;
|
return oDataTable;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool DeleteExistingPropertyValues(string pMessageId)
|
private bool DeleteExistingPropertyValues(string pMessageId)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -816,18 +859,15 @@ namespace ZUGFeRDRESTService.Controllers
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Ermittelt die Ausgabe-nachricht für einen Fehlercode
|
/// Ermittelt die Ausgabe-nachricht für einen Fehlercode
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string GetRejectionMessage(string pErrorCode)
|
private string GetRejectionMessage(string pErrorCode)
|
||||||
{
|
{
|
||||||
_logger.Info("GetRejectionMessage() - errorCode.ToString(): '" + pErrorCode.ToString() + "'");
|
_logger.Info("GetRejectionMessage() - errorCode.ToString(): '" + pErrorCode.ToString() + "'");
|
||||||
|
|
||||||
if (_RecjectionMessageList == null) return string.Empty;
|
if (_RecjectionMessageList == null) return string.Empty;
|
||||||
|
|
||||||
// Sprache wird man vielleicht mal auswählen können
|
|
||||||
var language = "de-DE";
|
|
||||||
var searchTitle = string.Empty;
|
var searchTitle = string.Empty;
|
||||||
|
|
||||||
if (pErrorCode.Contains("2000"))
|
if (pErrorCode.Contains("2000"))
|
||||||
@@ -844,11 +884,23 @@ namespace ZUGFeRDRESTService.Controllers
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// else-Fall muss noch geklärt werden.
|
searchTitle = "ZUGFERD_Rejection_20006_Web";
|
||||||
searchTitle = "AMOUNT_CALC_REJECTION_Web";
|
}
|
||||||
|
|
||||||
|
// Sprachgenauen Text suchen.
|
||||||
|
var messageItem = _RecjectionMessageList.Where(i => i.Title.Equals(searchTitle, StringComparison.OrdinalIgnoreCase) &&
|
||||||
|
i.Language.Equals(_UserLanguageCode, StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
|
||||||
|
|
||||||
|
if (messageItem == null &&
|
||||||
|
!_UserLanguageCode.Equals(GERMAN, StringComparison.OrdinalIgnoreCase)) {
|
||||||
|
|
||||||
|
_logger.Info("GetRejectionMessage() - Es wurde kein passender Text für die Sprache [{0}] gefunden.", _UserLanguageCode);
|
||||||
|
|
||||||
|
// Wenn kein sprachgenauer Text vorliegt, hole den deutschen Text.
|
||||||
|
messageItem = _RecjectionMessageList.Where(i => i.Title.Equals(searchTitle, StringComparison.OrdinalIgnoreCase) &&
|
||||||
|
i.Language.Equals(GERMAN, StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
|
||||||
}
|
}
|
||||||
|
|
||||||
var messageItem = _RecjectionMessageList.Where(i => i.Title.Equals(searchTitle, StringComparison.OrdinalIgnoreCase) && i.Language.Equals(language, StringComparison.OrdinalIgnoreCase)).FirstOrDefault();
|
|
||||||
if (messageItem != null)
|
if (messageItem != null)
|
||||||
{
|
{
|
||||||
_logger.Info("GetRejectionMessage() - messageItem: '" + messageItem.String1 + "'");
|
_logger.Info("GetRejectionMessage() - messageItem: '" + messageItem.String1 + "'");
|
||||||
|
|||||||
@@ -16,6 +16,11 @@
|
|||||||
<input type="email" name="user_id" required />
|
<input type="email" name="user_id" required />
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<label>Sprachcode (de-DE etc.):</label>
|
||||||
|
<input type="text" name="language_id" value="de-DE" required />
|
||||||
|
</p>
|
||||||
|
|
||||||
<button type="submit">Submit</button>
|
<button type="submit">Submit</button>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user