ZUGFeRDRESTService: add validation for valid properties
This commit is contained in:
parent
ac336ce94d
commit
36326ba644
@ -10,6 +10,7 @@ using static DigitalData.Modules.Interfaces.ZUGFeRDInterface;
|
||||
using static DigitalData.Modules.Interfaces.PropertyValues;
|
||||
using System.Data.SqlClient;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using FirebirdSql.Data.FirebirdClient;
|
||||
|
||||
namespace ZUGFeRDRESTService.Controllers
|
||||
{
|
||||
@ -132,7 +133,7 @@ namespace ZUGFeRDRESTService.Controllers
|
||||
{
|
||||
_logger.Info("Start processing request to ValidationController");
|
||||
|
||||
ZugferdResult oZugferdResult;
|
||||
ZugferdResult oZugferdResult = null;
|
||||
CheckPropertyValuesResult oPropertyResult = new CheckPropertyValuesResult();
|
||||
|
||||
try
|
||||
@ -153,6 +154,8 @@ namespace ZUGFeRDRESTService.Controllers
|
||||
|
||||
oZugferdResult = _zugferd.ExtractZUGFeRDFileWithGDPicture(oStream);
|
||||
|
||||
|
||||
|
||||
_logger.Info("Detected Specification was: [{0}]", oZugferdResult.Specification);
|
||||
|
||||
var oFilteredPropertyMap = _zugferd.FilterPropertyMap(_propertyMap, oZugferdResult.Specification);
|
||||
@ -187,6 +190,13 @@ namespace ZUGFeRDRESTService.Controllers
|
||||
throw new ZUGFeRDExecption(ErrorType.MissingProperties, "Missing Properties");
|
||||
}
|
||||
|
||||
oZugferdResult = _zugferd.ValidateZUGFeRDDocument(oZugferdResult);
|
||||
|
||||
if (oZugferdResult.ValidationErrors.Any())
|
||||
{
|
||||
throw new ZUGFeRDExecption(ErrorType.ValidationFailed, "Validation Failed");
|
||||
}
|
||||
|
||||
Tuple<bool, string> oValidateResult = ValidateBuyerOrderReference(oPropertyResult.ValidProperties);
|
||||
|
||||
if (oValidateResult.Item1 == false)
|
||||
@ -234,6 +244,7 @@ namespace ZUGFeRDRESTService.Controllers
|
||||
ErrorType.MissingProperties => "Die hochgeladene Datei ist keine gültige ZUGFeRD-Rechnung, es fehlen einige Metadaten.",
|
||||
ErrorType.FileTooBig => string.Format("Die hochgeladene Datei überschreitet die zulässige Dateigröße [{0}].", _MaxFileSizeInMegabytes),
|
||||
ErrorType.UnsupportedFormat => "Die hochgeladene Datei enthält ein falsches oder nicht unterstütztes ZUGFeRD Format.",
|
||||
ErrorType.ValidationFailed => "Die hochgeladene Datei enthält ungültige Werte.",
|
||||
_ => "Die hochgeladene Datei kann nicht validiert werden.",
|
||||
};
|
||||
|
||||
@ -242,9 +253,12 @@ namespace ZUGFeRDRESTService.Controllers
|
||||
{
|
||||
// Errors contains the list of missing fields
|
||||
ErrorType.MissingProperties => oPropertyResult.MissingProperties,
|
||||
ErrorType.ValidationFailed => oZugferdResult.ValidationErrors.Select(e =>
|
||||
{
|
||||
return $"Element '{e.ElementName}' mit Wert '{e.ElementValue}': {e.ErrorMessage}";
|
||||
}).ToList(),
|
||||
_ => new List<string>()
|
||||
};
|
||||
|
||||
_logger.Info($"Responding with message: [{oMessage}]");
|
||||
|
||||
return new ValidationResponse()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user