diff --git a/Stundensheet.xlsx b/Stundensheet.xlsx index 866ac18a..be8b0f51 100644 Binary files a/Stundensheet.xlsx and b/Stundensheet.xlsx differ diff --git a/nsw/Source/bsmd.ExcelReadService/ExcelReadService.cs b/nsw/Source/bsmd.ExcelReadService/ExcelReadService.cs index 608cf041..d68dd01c 100644 --- a/nsw/Source/bsmd.ExcelReadService/ExcelReadService.cs +++ b/nsw/Source/bsmd.ExcelReadService/ExcelReadService.cs @@ -140,8 +140,15 @@ namespace bsmd.ExcelReadService { List sendItems = new List(); sendItems.Add(confirmationFileName); + + // get the ship's name + string shipname = DBManager.Instance.GetShipNameFromCore(messageCore); + if (shipname.IsNullOrEmpty()) shipname = messageCore.IMO; + + string subject = string.Format("{0}: {1}", Properties.Settings.Default.SendEMailSubject, shipname); + // send reply sheet back to sender - BSMDMail.SendNSWReportWithAttachments(Properties.Settings.Default.SendEMailSubject, sendItems); + BSMDMail.SendNSWReportWithAttachments(subject, sendItems, mailSender); } } } @@ -183,6 +190,24 @@ namespace bsmd.ExcelReadService _log.Error("DB Connection failure"); } + // close any excel processes still running + Process[] process = Process.GetProcessesByName("Excel"); + foreach (Process p in process) + { + if (!string.IsNullOrEmpty(p.ProcessName)) + { + try + { + _log.DebugFormat("Killing process {0} {1}", p.ProcessName, p.Id); + p.Kill(); + } + catch (Exception ex) + { + _log.WarnFormat("Error killing process {0} {1}: {2}", p.ProcessName, p.Id, ex.Message); + } + } + } + lock (this._timerlock) { this.processRunning = false; diff --git a/nsw/Source/bsmd.ExcelReadService/Util.cs b/nsw/Source/bsmd.ExcelReadService/Util.cs index 1d9889a3..efb0bc2d 100644 --- a/nsw/Source/bsmd.ExcelReadService/Util.cs +++ b/nsw/Source/bsmd.ExcelReadService/Util.cs @@ -829,7 +829,7 @@ namespace bsmd.ExcelReadService // TOWA ist eigentlich 1:n, es ist aber keine Liste im Sheet! Message towaMessage = Util.GetMessageWithType(messages, messageCore, Message.NotificationClass.TOWA); - string towageName = reader.ReadText("TOWA.TowageOnArrivalName"); + string towageName = reader.ReadText("TOWA.TowageOnArrivalName_1"); if (!towageName.IsNullOrEmpty()) { if (towaMessage.Elements.Count == 0) @@ -852,7 +852,7 @@ namespace bsmd.ExcelReadService { // TOWD ist 1:n, es ist aber keine Liste im Sheet! Message towdMessage = Util.GetMessageWithType(messages, messageCore, Message.NotificationClass.TOWD); - string towageName = reader.ReadText("TOWD.TowageOnDepartureName"); + string towageName = reader.ReadText("TOWD.TowageOnDepartureName_1"); if(!towageName.IsNullOrEmpty()) { if(towdMessage.Elements.Count == 0) diff --git a/nsw/Source/bsmd.ReportGenerator/ReportService.cs b/nsw/Source/bsmd.ReportGenerator/ReportService.cs index ec2ff121..072453f3 100644 --- a/nsw/Source/bsmd.ReportGenerator/ReportService.cs +++ b/nsw/Source/bsmd.ReportGenerator/ReportService.cs @@ -188,7 +188,7 @@ namespace bsmd.ReportGenerator attachments.Add(crewCSV); } - BSMDMail.SendNSWReportWithAttachments(subject, attachments); + BSMDMail.SendNSWReportWithAttachments(subject, attachments, null); // reset report status reportCore.ReportStatus = MessageCore.ReportStatusEnum.NONE; DBManager.Instance.Save(reportCore); diff --git a/nsw/Source/bsmd.database/DBManager.cs b/nsw/Source/bsmd.database/DBManager.cs index 7d807a1f..7d8437bc 100644 --- a/nsw/Source/bsmd.database/DBManager.cs +++ b/nsw/Source/bsmd.database/DBManager.cs @@ -182,6 +182,24 @@ namespace bsmd.database return messageList; } + public string GetShipNameFromCore(MessageCore core) + { + foreach(Message message in this.GetMessagesForCore(core, MessageLoad.ALL)) + { + if (message.MessageNotificationClass == Message.NotificationClass.STAT) + { + if (message.Elements.Count > 0) + { + STAT stat = message.Elements[0] as STAT; + if (stat != null) + return stat.ShipName; + } + break; + } + } + return null; + } + public Dictionary GetReportingPartyDict() { if (DBManager.allReportingParties == null) diff --git a/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs b/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs index d1531677..4de22237 100644 --- a/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs +++ b/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs @@ -2,6 +2,6 @@ [assembly: AssemblyCompany("Informatikbüro Daniel Schick")] [assembly: AssemblyProduct("BSMD NSW interface")] -[assembly: AssemblyInformationalVersion("3.2.18")] +[assembly: AssemblyInformationalVersion("3.2.20")] [assembly: AssemblyCopyright("Copyright © 2014-2016 Informatikbüro Daniel Schick. All rights reserved.")] [assembly: AssemblyTrademark("")] \ No newline at end of file diff --git a/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs b/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs index 6a772af1..253c647f 100644 --- a/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs +++ b/nsw/Source/bsmd.database/Properties/AssemblyProjectInfo.cs @@ -1,4 +1,4 @@ using System.Reflection; -[assembly: AssemblyVersion("3.2.18.*")] +[assembly: AssemblyVersion("3.2.20.*")] diff --git a/nsw/Source/bsmd.email/BSMDMail.cs b/nsw/Source/bsmd.email/BSMDMail.cs index 58718355..811fdd4e 100644 --- a/nsw/Source/bsmd.email/BSMDMail.cs +++ b/nsw/Source/bsmd.email/BSMDMail.cs @@ -69,7 +69,7 @@ namespace bsmd.email /// /// Betreffzeile /// Liste von Dateien die angehängt werden sollen - public static void SendNSWReportWithAttachments(string subject, List filenameList) + public static void SendNSWReportWithAttachments(string subject, List filenameList, string recipient) { BSMDMail mailer = new BSMDMail(); @@ -81,11 +81,23 @@ namespace bsmd.email message.IsBodyHtml = false; message.Body = "see attachment"; - foreach (string recipient in Properties.Settings.Default.Recipient) + // wenn recipient leer ist, geht es an die Recipientliste + // wenn nicht, an den Recipient + die Admin-Email + + if ((recipient == null) || (recipient.Length == 0)) + { + foreach (string defaultRecipient in Properties.Settings.Default.Recipient) + { + message.To.Add(defaultRecipient); + } + } + else { message.To.Add(recipient); + message.CC.Add(Properties.Settings.Default.AdminEmail); } + foreach (string filename in filenameList) { Attachment attachment = new Attachment(filename, MediaTypeNames.Application.Octet); diff --git a/nsw/Source/misc/db.sqlite b/nsw/Source/misc/db.sqlite index 455469e5..a100d95b 100644 Binary files a/nsw/Source/misc/db.sqlite and b/nsw/Source/misc/db.sqlite differ