From c536db0ef6cc3593df0dd45af56cd52c05a0b712 Mon Sep 17 00:00:00 2001 From: foefl Date: Thu, 10 Apr 2025 09:21:52 +0200 Subject: [PATCH] add enum for error codes, mirror of Python equivalents --- dopt.DeltaBarth.Tests/PluginTest.cs | 9 +++++++++ dopt.DeltaBarth/Plugin.cs | 18 ++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/dopt.DeltaBarth.Tests/PluginTest.cs b/dopt.DeltaBarth.Tests/PluginTest.cs index 3f0f1ee..3ef50fb 100644 --- a/dopt.DeltaBarth.Tests/PluginTest.cs +++ b/dopt.DeltaBarth.Tests/PluginTest.cs @@ -132,6 +132,7 @@ namespace dopt.DeltaBarth.Tests string apiUrlSet = "http://10.2.22.21:8080/api/", user = "user", password = "password", database = "DB1", mandant = "mandant1"; test.Startup(baseDataPath, apiUrlSet, user, password, database, mandant); var res = test.UmsatzprognoseDummy(null, null); + Assert.AreEqual((int)StatusCodes.Erfolg, res.status.code); PrettyPrint(res); test.Dispose(); } @@ -143,6 +144,7 @@ namespace dopt.DeltaBarth.Tests test.Startup(baseDataPath, apiUrlSet, user, password, database, mandant); var comp_id = 1000; var res = test.UmsatzprognoseDummy(comp_id, null); + Assert.AreEqual((int)StatusCodes.Erfolg, res.status.code); PrettyPrint(res); test.Dispose(); } @@ -154,6 +156,7 @@ namespace dopt.DeltaBarth.Tests test.Startup(baseDataPath, apiUrlSet, user, password, database, mandant); var date = new DateTime(2023, 1, 1, 12, 45, 30); var res = test.UmsatzprognoseDummy(null, date); + Assert.AreEqual((int)StatusCodes.Erfolg, res.status.code); PrettyPrint(res); test.Dispose(); } @@ -178,6 +181,7 @@ namespace dopt.DeltaBarth.Tests var comp_id = 1024; var res = test.Umsatzprognose(comp_id, null); Assert.AreEqual(4, res.status.code); + Assert.AreEqual((int)StatusCodes.DatensatzZuWenigeMonatsdatenpunkte, res.status.code); PrettyPrint(res); test.Dispose(); } @@ -190,6 +194,7 @@ namespace dopt.DeltaBarth.Tests var comp_id = 1024; var res = test.Umsatzprognose(comp_id, null); Assert.AreEqual(1, res.status.code); + Assert.AreEqual((int)StatusCodes.VerbindungTimeout, res.status.code); PrettyPrint(res); test.Dispose(); } @@ -203,6 +208,7 @@ namespace dopt.DeltaBarth.Tests var date = new DateTime(2030, 1, 1, 12, 45, 30); var res = test.Umsatzprognose(null, date); Assert.AreEqual(3, res.status.code); + Assert.AreEqual((int)StatusCodes.DatensatzZuWenigeDatenpunkte, res.status.code); PrettyPrint(res); test.Dispose(); } @@ -215,6 +221,7 @@ namespace dopt.DeltaBarth.Tests var date = new DateTime(2030, 1, 1, 12, 45, 30); var res = test.Umsatzprognose(null, date); Assert.AreEqual(1, res.status.code); + Assert.AreEqual((int)StatusCodes.VerbindungTimeout, res.status.code); PrettyPrint(res); test.Dispose(); } @@ -228,6 +235,7 @@ namespace dopt.DeltaBarth.Tests var date = new DateTime(2015, 1, 1, 12, 45, 30); var res = test.Umsatzprognose(null, date); Assert.AreEqual(4, res.status.code); + Assert.AreEqual((int)StatusCodes.DatensatzZuWenigeMonatsdatenpunkte, res.status.code); PrettyPrint(res); test.Dispose(); } @@ -240,6 +248,7 @@ namespace dopt.DeltaBarth.Tests var date = new DateTime(2015, 1, 1, 12, 45, 30); var res = test.Umsatzprognose(null, date); Assert.AreEqual(1, res.status.code); + Assert.AreEqual((int)StatusCodes.VerbindungTimeout, res.status.code); PrettyPrint(res); test.Dispose(); } diff --git a/dopt.DeltaBarth/Plugin.cs b/dopt.DeltaBarth/Plugin.cs index 5b68803..13a87cb 100644 --- a/dopt.DeltaBarth/Plugin.cs +++ b/dopt.DeltaBarth/Plugin.cs @@ -1,8 +1,26 @@ using Python.Runtime; +using System.ComponentModel; using System.Text.Json; namespace dopt.DeltaBarth { + public enum StatusCodes + { + [Description("Keine Fehler aufgetreten")] + Erfolg = 0, + [Description("Bei der Verbindung zum API-Server kam es zum Timeout")] + VerbindungTimeout = 1, + [Description("Bei der Verbindung zum API-Server ist ein Fehler aufgetreten")] + VerbindungFehler = 2, + [Description("Der bereitgestellte Datensatz enthält in Summe zu wenige Einzeleinträge")] + DatensatzZuWenigeDatenpunkte = 3, + [Description("Der bereitgestellte Datensatz enthält nach Aggregation zu Monaten zu wenig Einträge")] + DatensatzZuWenigeMonatsdatenpunkte = 4, + [Description("Die Prognosequalität des Modells erfüllt nicht ide Mindestanforderungen")] + KeineVerlaesslichePrognose = 5, + [Description("Vom API-Server wurde eine Fehlermeldung zurückgegeben")] + ApiServerFehler = 400, + } public class PythonParsingException : Exception { public PythonParsingException() { }