diff --git a/ENI2/ENI2.csproj b/ENI2/ENI2.csproj
index f59e4e91..3492ba13 100644
--- a/ENI2/ENI2.csproj
+++ b/ENI2/ENI2.csproj
@@ -36,7 +36,7 @@
5.4.0.0
true
publish.html
- 3
+ 4
7.8.0.%2a
false
true
diff --git a/bsmd.dbh/MessageController.cs b/bsmd.dbh/MessageController.cs
index 617ee9e9..cdd0278b 100644
--- a/bsmd.dbh/MessageController.cs
+++ b/bsmd.dbh/MessageController.cs
@@ -1,15 +1,12 @@
// Copyright (c) 2020-present schick Informatik
// Description: Manager zum Senden/Empfangen von Daten mit dbh
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
using log4net;
-using bsmd.database;
+using System;
using System.IO;
+using bsmd.database;
+
namespace bsmd.dbh
{
public static class MessageController
@@ -70,6 +67,39 @@ namespace bsmd.dbh
{
bool result = true;
+ Message cancelMessage = null;
+ foreach(Message aMessage in DBManager.Instance.GetMessagesForCore(core, DBManager.MessageLoad.ALL))
+ {
+ if(core.IsTransit && (aMessage.MessageNotificationClass == Message.NotificationClass.TRANSIT))
+ {
+ cancelMessage = aMessage; break;
+ }
+ if(!core.IsTransit && (aMessage.MessageNotificationClass == Message.NotificationClass.VISIT))
+ {
+ cancelMessage = aMessage; break;
+ }
+ }
+
+ string messageFile = RequestUtil.CreateMessageFile(core, cancelMessage);
+
+ if (messageFile != null)
+ {
+
+ if (!_fileSequenceCounter.HasValue)
+ _fileSequenceCounter = DBManager.Instance.GetMessageFileMaxNum();
+ _fileSequenceCounter += 1;
+ cancelMessage.FileSequenceNumber = _fileSequenceCounter;
+
+ string onlyFileName = Path.GetFileName(messageFile);
+ string moveTarget = Path.Combine(Properties.Settings.Default.OutgoingFolder, onlyFileName);
+ // move file to output directory
+ File.Move(messageFile, moveTarget);
+ }
+ else
+ {
+ result = false;
+ }
+
return result;
}
diff --git a/bsmd.dbh/RequestUtil.cs b/bsmd.dbh/RequestUtil.cs
index cc5c6c5e..9c13788b 100644
--- a/bsmd.dbh/RequestUtil.cs
+++ b/bsmd.dbh/RequestUtil.cs
@@ -40,7 +40,9 @@ namespace bsmd.dbh
filenameComponent = "BSMD";
root.Sender = Properties.Settings.Default.Sender;
}
- root.SenderReference = message.Id.Value.ToString("N");
+
+ if(message != null)
+ root.SenderReference = message.Id.Value.ToString("N");
_log.InfoFormat("DBH: setting sender to {0}", root.Sender);
bsmd.database.ReportingParty reportingParty = DBManager.Instance.GetReportingPartyDict()[core.DefaultReportingPartyId.Value];
@@ -81,7 +83,7 @@ namespace bsmd.dbh
RootReportingClassesToReset rrctr = new RootReportingClassesToReset();
rrctr.ReportingClassToReset = new string[1];
rrctr.ReportingClassToReset[0] = message.MessageNotificationClassDisplay;
- root.Items = new object[0];
+ root.Items = new object[1];
root.Items[0] = rrctr;
root.Type = RootType.RESET;
}