GetStatus FailFollowUpLogic

Zusätzliche Exception Handling
Test Tenant
This commit is contained in:
2024-11-05 09:52:36 +01:00
parent ea08476354
commit 8b6f9e9630
12 changed files with 507 additions and 215 deletions

View File

@@ -18,6 +18,7 @@ namespace DakotaSender
class Program
{
static readonly string TEST_TENANT = "5000000000";
static readonly string TEST_TENANT_2 = "7375324044";
static bool time_in_line = false;
static bool is_dakota_running = false;
@@ -49,6 +50,7 @@ namespace DakotaSender
if (is_dakota_running)
{
PrintSeperator();
PrintLine($"Verarbeitung im Silent Modus fehlgeschlagen. dakota30.exe läuft (bereits).");
PrintLine("Ignoriere Verarbeitung aktuell. Versuche im nächsten Programm Aufruf erneut.");
}
@@ -118,6 +120,7 @@ namespace DakotaSender
PrintSeperator();
}
static Dictionary<string, Dictionary<string, List<DakotaSystemFile>>> ScanQueueFolder()
{
var queue = Config.QueueFolder;
@@ -128,46 +131,13 @@ namespace DakotaSender
var ten2dat2files = new Dictionary<string, Dictionary<string, List<DakotaSystemFile>>>();
foreach (var auft in files)
{
var nutz_fullname = auft.FullName.Substring(0, auft.FullName.Length - 4);
var nutz = new FileInfo(nutz_fullname);
var file = ScanQueueFile(auft);
if (!nutz.Exists)
{
PrintLine($"{auft.FullName} wird ignoriert. {nutz.FullName} nicht vorhanden");
if (file is null)
continue;
}
PrintLine($"- {auft.FullName}");
var split = nutz.Name.Split('_');
var tenant = split[0];
var app_oid = long.Parse(split[1]);
var p_oid = long.Parse(split[2]);
var datenannahmestelle = split[3];
var transfername = split[4];
// Muss nachher nur entfernt werden, um andere zu testen
// Ggf Tool einbauen?
if (tenant != TEST_TENANT && tenant != "demo")
{
PrintLine($"{auft.FullName} wird ignoriert. Tenant {tenant} nicht gültig.");
continue;
}
else
{
tenant = TEST_TENANT;
}
var file = new DakotaSystemFile()
{
SourceAuftragsdatei = auft,
SourceNutzdatendatei = nutz,
Tenant = tenant,
ProtokollOid = p_oid,
ApplicationUserOid = app_oid,
Datenannahmestelle = datenannahmestelle,
Transfername = transfername,
};
var tenant = file.Tenant;
var datenannahmestelle = file.Datenannahmestelle;
if (!ten2dat2files.ContainsKey(tenant))
ten2dat2files.Add(tenant, new Dictionary<string, List<DakotaSystemFile>>());
@@ -183,7 +153,57 @@ namespace DakotaSender
if (ten2dat2files.Any())
return ten2dat2files;
PrintLine("Keine Dakota Dateien in Queue gefunden.");
PrintLine("Keine gültigen Dakota Dateien in Queue gefunden.");
return null;
}
static DakotaSystemFile ScanQueueFile(FileInfo auft)
{
try
{
var nutz_fullname = auft.FullName.Substring(0, auft.FullName.Length - 4);
var nutz = new FileInfo(nutz_fullname);
if (!nutz.Exists)
{
PrintLine($"{auft.FullName} wird ignoriert. {nutz.FullName} nicht vorhanden");
return null;
}
PrintLine($"- {auft.FullName}");
var split = nutz.Name.Split('_');
var tenant = split[0];
var app_oid = long.Parse(split[1]);
var p_oid = long.Parse(split[2]);
var datenannahmestelle = split[3];
var transfername = split[4];
// Muss nachher nur entfernt werden, um andere zu testen
// Ggf Tool einbauen?
if (tenant != TEST_TENANT && tenant != TEST_TENANT_2)
{
PrintLine($"{auft.FullName} wird ignoriert. Tenant {tenant} nicht gültig.");
return null;
}
var file = new DakotaSystemFile()
{
SourceAuftragsdatei = auft,
SourceNutzdatendatei = nutz,
Tenant = tenant,
ProtokollOid = p_oid,
ApplicationUserOid = app_oid,
Datenannahmestelle = datenannahmestelle,
Transfername = transfername,
};
return file;
}
catch(Exception e)
{
PrintException(e);
}
return null;
}
@@ -381,11 +401,11 @@ namespace DakotaSender
else
PrintLine("Fehler: " + res.Message);
}
catch(GkvException e)
catch (GkvException e)
{
PrintException(e);
}
catch(Exception e)
catch (Exception e)
{
PrintException(e);
}

View File

@@ -10,8 +10,8 @@ namespace DakotaSender
{
const int RC_DAKOTA_ALREADY_LOADED = 18;
static readonly int[] AcceptStatusCodes = new int[] { 0 };
static readonly int[] AcceptSendCodes = new int[] { 0 };
static readonly int[] AcceptStatusCodes = new int[] { 0, 1, 100, 101 };
static readonly int[] AcceptSendCodes = new int[] { 0, 1 };
static readonly Dictionary<int, string> StatusReturncodeToMeaning = new Dictionary<int, string>()
{