diff --git a/WEBSERVICES/ZUGFeRDRESTService/Controllers/ValidationController.cs b/WEBSERVICES/ZUGFeRDRESTService/Controllers/ValidationController.cs
index 1c7b516d..8d46e7ca 100644
--- a/WEBSERVICES/ZUGFeRDRESTService/Controllers/ValidationController.cs
+++ b/WEBSERVICES/ZUGFeRDRESTService/Controllers/ValidationController.cs
@@ -77,54 +77,47 @@ namespace ZUGFeRDRESTService.Controllers
}
///
- /// POST: /api/Validation
+ /// POST: /api/validation
///
/// This parameter's name needs to correspond to the html form's file-input name
[HttpPost]
public async Task Post(IFormFile file, string user_id)
{
- _logger.Debug("Start processing request to ValidationController");
-
- string oFilePath = Path.Combine(Path.GetTempPath(), file.FileName);
-
- _logger.Debug("Saving file to temp-path [{0}]", oFilePath);
-
- using FileStream oStream = new FileStream(oFilePath, FileMode.Create);
- await file.CopyToAsync(oStream);
-
- // TODO: Delete temp file / Do we even need the temp file?
-
- _logger.Debug("File successfully saved!");
+ _logger.Debug("Start processing request to ValidationController");
CrossIndustryDocumentType oDocument;
PropertyValues.CheckPropertyValuesResult oResult = new PropertyValues.CheckPropertyValuesResult();
try
- {
- _logger.Debug("Extracting ZUGFeRD Data from file [{0}]", oFilePath);
-
- oDocument = _zugferd.ExtractZUGFeRDFileWithGDPicture(oFilePath);
-
- _logger.Debug("Checking ZUGFeRD Data against the database");
-
- oResult = _props.CheckPropertyValues(oDocument, _propertyMap, "MESSAGEID");
-
- _logger.Debug("Result of checking against the database: {0} valid properties, {1} missing properties",
- oResult.ValidProperties.Count, oResult.MissingProperties.Count);
-
- if (oResult.MissingProperties.Count > 0) {
- throw new ZUGFeRDExecption(ZUGFeRDInterface.ErrorType.MissingProperties,
- "Die hochgeladene Datei ist eine gültige ZUGFeRD-Rechnung, allerdings fehlen benötigte Daten.");
- }
-
- string oMessage = "Die hochgeladene Datei ist eine gültige-ZUGFeRD Rechnung";
-
- _logger.Debug($"Replying with: [{oMessage}]");
-
- return new ValidationResponse()
+ {
+ using Stream oStream = file.OpenReadStream();
{
- status = RESPONSE_OK,
- message = oMessage
+ _logger.Debug("Extracting ZUGFeRD Data from file [{0}]", file.FileName);
+
+ oDocument = _zugferd.ExtractZUGFeRDFileWithGDPicture(oStream);
+
+ _logger.Debug("Checking ZUGFeRD Data against the database");
+
+ oResult = _props.CheckPropertyValues(oDocument, _propertyMap, "MESSAGEID");
+
+ _logger.Debug("Result of checking against the database: {0} valid properties, {1} missing properties",
+ oResult.ValidProperties.Count, oResult.MissingProperties.Count);
+
+ if (oResult.MissingProperties.Count > 0)
+ {
+ throw new ZUGFeRDExecption(ZUGFeRDInterface.ErrorType.MissingProperties,
+ "Die hochgeladene Datei ist eine gültige ZUGFeRD-Rechnung, allerdings fehlen benötigte Daten.");
+ }
+
+ string oMessage = "Die hochgeladene Datei ist eine gültige-ZUGFeRD Rechnung";
+
+ _logger.Debug($"Replying with: [{oMessage}]");
+
+ return new ValidationResponse()
+ {
+ status = RESPONSE_OK,
+ message = oMessage
+ };
};
}
catch (ZUGFeRDExecption ex)
@@ -154,14 +147,15 @@ namespace ZUGFeRDRESTService.Controllers
return new ValidationResponse()
{
status = RESPONSE_ERROR,
- message = oMessage
+ message = oMessage,
+ errors = oErrors
};
}
catch (Exception ex)
{
_logger.Error(ex);
- string oMessage = "Die hochgeladene Datei kann nicht validiert werden!";
+ string oMessage = "Die hochgeladene Datei kann nicht validiert werden, weil ein unbekannter Fehler aufgetreten ist.";
_logger.Debug($"Replying with: [{oMessage}]");