ZUGFeRD REST Service - ErrorCodes aus Exception abfangen, und mit dem Code den Text aus der Datenbank holen und anzeigen.

This commit is contained in:
2025-08-08 11:51:49 +02:00
parent aa3a798b24
commit 11d6157726
5 changed files with 205 additions and 59 deletions

View File

@@ -14,6 +14,7 @@ namespace ZUGFeRDRESTService
private DigitalData.Modules.Logging.Logger _Logger = null;
private string _gdPictureKey = null;
private List<XmlItemProperty> _propertyMapList = null;
private List<RejectionStringRow> _RejectionStringList = null;
private LogConfig _logConfig = null;
private string _connString;
@@ -22,6 +23,7 @@ namespace ZUGFeRDRESTService
private const string QUERY_GET_GDPICTURE_KEY = "SELECT LICENSE FROM TBDD_3RD_PARTY_MODULES WHERE NAME = 'GDPICTURE'";
private const string QUERY_GET_PROPERTY_MAP = "SELECT * FROM TBDD_ZUGFERD_XML_ITEMS WHERE ACTIVE = 1 ORDER BY XML_PATH";
private const string QUERY_GET_REJECTION_MESSAGES = "SELECT * FROM TBDD_GUI_LANGUAGE_PHRASE WHERE CAPT_TYPE = 'RejectionCodeWeb'";
public MSSQLServer MSSQL { get; set; }
@@ -85,5 +87,52 @@ namespace ZUGFeRDRESTService
return _propertyMapList;
}
public List<RejectionStringRow> GetRejectionMessageList()
{
try
{
if (_RejectionStringList == null)
{
var oDatatable = MSSQL.GetDatatable(QUERY_GET_REJECTION_MESSAGES);
_Logger.Debug("Datatable Rows: [{0}]", oDatatable.Rows.Count);
if (oDatatable != null && oDatatable.Rows.Count > 0)
{
_RejectionStringList = new List<RejectionStringRow>();
foreach (DataRow oRow in oDatatable.Rows)
{
var newRejectionItem = new RejectionStringRow
{
Title = oRow["Title"].ToString(),
ModuleName = oRow["Module"].ToString(),
Caption = oRow["CAPT_TYPE"].ToString(),
Language = oRow["Language"].ToString(),
String1 = oRow["String1"].ToString()
};
_RejectionStringList.Add(newRejectionItem);
}
_Logger.Debug("Returning Rejections messages list with [{0}] entries.", _RejectionStringList.Count);
}
else
{
_RejectionStringList = null;
_Logger.Warn("No Rejections messages found in Table TBDD_GUI_LANGUAGE_PHRASE with CAPT_TYPE = 'RejectionCodeWeb'!!!");
}
}
else
{
_Logger.Debug("Rejections messages list already exists, returning list with [{0}] entries.", _RejectionStringList.Count);
}
}
catch (Exception ex)
{
_RejectionStringList = null;
_Logger.Error("Database Error: [{0}]", ex);
}
return _RejectionStringList;
}
}
}