diff --git a/WEBSERVICES/ZUGFeRDRESTService/Controllers/ValidationController.cs b/WEBSERVICES/ZUGFeRDRESTService/Controllers/ValidationController.cs index 4a343ecf..291b10e3 100644 --- a/WEBSERVICES/ZUGFeRDRESTService/Controllers/ValidationController.cs +++ b/WEBSERVICES/ZUGFeRDRESTService/Controllers/ValidationController.cs @@ -283,9 +283,9 @@ namespace ZUGFeRDRESTService.Controllers _UserLanguageCode = GERMAN; } - _ParserResult.WebFilename = file.FileName; - _ParserResult.WebMailAdress = oUserId; - _ParserResult.WebLanguage = _UserLanguageCode; + _ParserResult.WebFilename = file != null && !string.IsNullOrEmpty(file.FileName) ? file.FileName : string.Empty; + _ParserResult.WebMailAdress = !string.IsNullOrEmpty(oUserId) ? oUserId : string.Empty; + _ParserResult.WebLanguage = !string.IsNullOrEmpty(_UserLanguageCode) ? _UserLanguageCode : string.Empty; try { @@ -322,9 +322,9 @@ namespace ZUGFeRDRESTService.Controllers oZugferdResult.ReceiptFileType = "XML"; } - _ParserResult.XML_Specification = oZugferdResult.Specification; - _ParserResult.XML_Schema = oZugferdResult.UsedXMLSchema; - _ParserResult.XML_FileType = oZugferdResult.ReceiptFileType; + _ParserResult.XML_Specification = !string.IsNullOrEmpty(oZugferdResult.Specification) ? oZugferdResult.Specification : string.Empty; + _ParserResult.XML_Schema = !string.IsNullOrEmpty(oZugferdResult.UsedXMLSchema) ? oZugferdResult.UsedXMLSchema : string.Empty; + _ParserResult.XML_FileType = !string.IsNullOrEmpty(oZugferdResult.ReceiptFileType) ? oZugferdResult.ReceiptFileType : string.Empty; _logger.Info("Detected Specification was: [{0}]", oZugferdResult.Specification); @@ -372,7 +372,7 @@ namespace ZUGFeRDRESTService.Controllers if (oValidateResultString.Equals(VALIDATION_SUCCESS)) { _ParserResult.ResultString = "SUCCESS"; - InsertWebParserResult(_ParserResult); + InsertWebParserHistory(_ParserResult); string oMessage = "Die hochgeladene Datei ist eine gültige-ZUGFeRD Rechnung"; _logger.Info($"Responding with message: [{oMessage}]"); @@ -386,7 +386,7 @@ namespace ZUGFeRDRESTService.Controllers } else { - InsertWebParserResult(_ParserResult); + InsertWebParserHistory(_ParserResult); string oMessage = oValidateResultString; _logger.Info($"Responding with message: [{oMessage}]"); @@ -443,7 +443,7 @@ namespace ZUGFeRDRESTService.Controllers oMessage = "Alte Logik. Meldung nicht gefunden"; } - InsertWebParserResult(_ParserResult); + InsertWebParserHistory(_ParserResult); _logger.Info($"Responding with message: [{oMessage}]"); @@ -507,7 +507,7 @@ namespace ZUGFeRDRESTService.Controllers oMessage += " " + htmlResultString; } - InsertWebParserResult(_ParserResult); + InsertWebParserHistory(_ParserResult); return new ValidationResponse() { @@ -522,7 +522,7 @@ namespace ZUGFeRDRESTService.Controllers string oMessage = "Die hochgeladene Datei kann nicht validiert werden, weil ein unbekannter Fehler aufgetreten ist."; _ParserResult.ResultString = ZUGFERD_Rejection_20010; - InsertWebParserResult(_ParserResult); + InsertWebParserHistory(_ParserResult); _logger.Info($"Responding with message: [{oMessage}]"); @@ -534,11 +534,11 @@ namespace ZUGFeRDRESTService.Controllers } } - private void InsertWebParserResult(ParserResult oParserResult) + private void InsertWebParserHistory(ParserResult oParserResult) { try { - var insertResultSQL = "INSERT INTO TBEDMI_PARSER_RESULTS (" + + var insertResultSQL = "INSERT INTO TBEDMI_WEBPARSER_HISTORY (" + " REFERENCE_GUID, WEB_FILENAME, WEB_MAIL_ADRESS, WEB_LANGUAGE, PARSER_RESULT, XML_INVOICE_NUMBER, XML_SELLER_TRADE_PARTY_NAME, XML_SELLER_MAIL_ADRESS, " + " XML_SPECIFICATION, XML_SCHEMA, XML_FILE_TYPE, ADDED_WHO " + ") VALUES (" + @@ -564,10 +564,10 @@ namespace ZUGFeRDRESTService.Controllers if (!retValue) { - _logger.Warn("INSERT to TBEDMI_PARSER_RESULTS NOT successfull"); + _logger.Warn("INSERT to TBEDMI_WEBPARSER_HISTORY NOT successfull"); } - _logger.Debug("INSERT to TBEDMI_PARSER_RESULTS successfull"); + _logger.Debug("INSERT to TBEDMI_WEBPARSER_HISTORY successfull"); } catch (Exception ex) { @@ -645,9 +645,13 @@ namespace ZUGFeRDRESTService.Controllers return new Tuple(false, string.Empty); } - oParserResult.XML_InvoiceNumber = pProperties.Where(p => p.EN16931_ID == "BT-1").FirstOrDefault().Value; - oParserResult.XML_SellerTradePartyName = pProperties.Where(p => p.EN16931_ID == "BT-27").FirstOrDefault().Value; - oParserResult.XML_SellerEmailAdress = pProperties.Where(p => p.EN16931_ID == "BT-34").FirstOrDefault().Value; + _logger.Debug("Collecting history data"); + var bt1Item = pProperties.Where(p => p.EN16931_ID == "BT-1").FirstOrDefault(); + oParserResult.XML_InvoiceNumber = bt1Item != null ? bt1Item.Value : string.Empty; + var bt27Item = pProperties.Where(p => p.EN16931_ID == "BT-27").FirstOrDefault(); + oParserResult.XML_SellerTradePartyName = bt27Item != null ? bt27Item.Value : string.Empty; + var bt34Item = pProperties.Where(p => p.EN16931_ID == "BT-34").FirstOrDefault(); + oParserResult.XML_SellerEmailAdress = bt34Item != null ? bt34Item.Value : string.Empty; _logger.Debug("Calling validation prodecure."); try