diff --git a/Stundensheet.xlsx b/Stundensheet.xlsx index bfab2cfb..29c1f5c6 100644 Binary files a/Stundensheet.xlsx and b/Stundensheet.xlsx differ diff --git a/nsw/Source/SQL/Update_3.0.1_To_3.1.sql b/nsw/Source/SQL/Update_3.0.1_To_3.1.sql new file mode 100644 index 00000000..dd23d4ee --- /dev/null +++ b/nsw/Source/SQL/Update_3.0.1_To_3.1.sql @@ -0,0 +1,8 @@ +PRINT N'Altering [dbo].[MessageHeader]...'; +GO +ALTER TABLE [dbo].[MessageHeader] ADD [CreatedBy] NVARCHAR(64) NULL; + +GO + +ALTER TABLE [dbo].[MessageHeader] ADD [ChangedBy] NVARCHAR(64) NULL; +GO diff --git a/nsw/Source/SendNSWMessageService/NSWSendService.cs b/nsw/Source/SendNSWMessageService/NSWSendService.cs index ee98edf3..c8261298 100644 --- a/nsw/Source/SendNSWMessageService/NSWSendService.cs +++ b/nsw/Source/SendNSWMessageService/NSWSendService.cs @@ -80,9 +80,10 @@ namespace SendNSWMessageService foreach (MessageCore core in coresMarkedForSending) { - List messages = DBManager.Instance.GetMessagesForCore(core); + // TODO: Hier sollten jeweils die "neuesten" Nachrichten geladen werden, wenn es mehrere geben sollte!! + List messages = DBManager.Instance.GetMessagesForCore(core, DBManager.MessageLoad.ALL); - // TODO: Das muss wieder entfernt werden wenn 3.0 funktional ist + // // if (core.InitialHIS != Message.NSWProvider.DBH_TEST) continue; // ignore everything else if (core.InitialHIS == Message.NSWProvider.DUDR) diff --git a/nsw/Source/bsmd.ExcelReadService/App.config b/nsw/Source/bsmd.ExcelReadService/App.config index 695aa4fa..631df383 100644 --- a/nsw/Source/bsmd.ExcelReadService/App.config +++ b/nsw/Source/bsmd.ExcelReadService/App.config @@ -34,6 +34,18 @@ True + + + + report@bsmd.de + hsok@gmx.de + bald@puls200.de + d.schick@gmx.de + hollmann@bsmd.de + + + \ No newline at end of file diff --git a/nsw/Source/bsmd.ExcelReadService/ExcelReadService.cs b/nsw/Source/bsmd.ExcelReadService/ExcelReadService.cs index 7eb65f00..549a9163 100644 --- a/nsw/Source/bsmd.ExcelReadService/ExcelReadService.cs +++ b/nsw/Source/bsmd.ExcelReadService/ExcelReadService.cs @@ -40,7 +40,7 @@ namespace bsmd.ExcelReadService System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly(); FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(assembly.Location); string version = fvi.FileVersion; - this._log.InfoFormat("Starting NSW Excel Read Service. v.{0}", version); + this._log.InfoFormat("Starting NSW Excel Read Service. v.{0} -------------- ", version); this.DoOnce(); } @@ -106,23 +106,42 @@ namespace bsmd.ExcelReadService else { - // try to read/import attachment - using (ExcelReader reader = new ExcelReader(attachmentLocalPath)) + // only a valid sender gets a reply + bool isValidSender = false; + foreach (string aValidSender in Properties.Settings.Default.ValidSender) { - readResult = Util.ProcessSheet(reader, out readMessage, out messageCore); - if (!readResult) - _log.Error("Excel sheet could not be interpreted"); + if (mailSender.Equals(aValidSender, StringComparison.OrdinalIgnoreCase)) + { + isValidSender = true; + break; + } } - // TODO: Quittung / set messagecore to createreport and let reportGenerator create a reply? + if (!isValidSender) + { + _log.WarnFormat("ignored e-mail from illegal sender: {0}", mailSender); + } + else + { + // try to read/import attachment + using (ExcelReader reader = new ExcelReader(attachmentLocalPath)) + { + readResult = Util.ProcessSheet(reader, out readMessage, out messageCore); + if (!readResult) + _log.Error("Excel sheet could not be interpreted"); + } - // create a reply sheet (template + scanned highlighted content for verification + // TODO: Quittung / set messagecore to createreport and let reportGenerator create a reply? - string confirmationExcelFilePath = Util.CreateConfirmationSheet(messageCore); - List sendItems = new List(); - sendItems.Add(confirmationExcelFilePath); - // send reply sheet back to sender - BSMDMail.SendNSWReportWithAttachments(Properties.Settings.Default.SendEMailSubject, sendItems); + // create a reply sheet (template + scanned highlighted content for verification + + string confirmationExcelFilePath = Util.CreateConfirmationSheet(messageCore); + List sendItems = new List(); + sendItems.Add(confirmationExcelFilePath); + // send reply sheet back to sender + BSMDMail.SendNSWReportWithAttachments(Properties.Settings.Default.SendEMailSubject, sendItems); + + } // remove e-Mail _log.InfoFormat("deleting mail with messageId {0}", messageId); diff --git a/nsw/Source/bsmd.ExcelReadService/Properties/Settings.Designer.cs b/nsw/Source/bsmd.ExcelReadService/Properties/Settings.Designer.cs index 21c75b48..9058be63 100644 --- a/nsw/Source/bsmd.ExcelReadService/Properties/Settings.Designer.cs +++ b/nsw/Source/bsmd.ExcelReadService/Properties/Settings.Designer.cs @@ -94,5 +94,21 @@ namespace bsmd.ExcelReadService.Properties { return ((bool)(this["TestMode"])); } } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute(@" + + report@bsmd.de + hsok@gmx.de + bald@puls200.de + d.schick@gmx.de + hollmann@bsmd.de +")] + public global::System.Collections.Specialized.StringCollection ValidSender { + get { + return ((global::System.Collections.Specialized.StringCollection)(this["ValidSender"])); + } + } } } diff --git a/nsw/Source/bsmd.ExcelReadService/Properties/Settings.settings b/nsw/Source/bsmd.ExcelReadService/Properties/Settings.settings index b387ba0c..fddb6043 100644 --- a/nsw/Source/bsmd.ExcelReadService/Properties/Settings.settings +++ b/nsw/Source/bsmd.ExcelReadService/Properties/Settings.settings @@ -26,5 +26,15 @@ True + + <?xml version="1.0" encoding="utf-16"?> +<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <string>report@bsmd.de</string> + <string>hsok@gmx.de</string> + <string>bald@puls200.de</string> + <string>d.schick@gmx.de</string> + <string>hollmann@bsmd.de</string> +</ArrayOfString> + \ No newline at end of file diff --git a/nsw/Source/bsmd.ExcelReadService/Util.cs b/nsw/Source/bsmd.ExcelReadService/Util.cs index df42838e..3c3b77c9 100644 --- a/nsw/Source/bsmd.ExcelReadService/Util.cs +++ b/nsw/Source/bsmd.ExcelReadService/Util.cs @@ -29,7 +29,7 @@ namespace bsmd.ExcelReadService if (messageCore == null) return false; // cannot work with this sheet or create one // load messages if already present - List messages = DBManager.Instance.GetMessagesForCore(messageCore); + List messages = DBManager.Instance.GetMessagesForCore(messageCore, DBManager.MessageLoad.EXCEL); // start parsing fields if (messageCore.IsTransit) @@ -134,10 +134,9 @@ namespace bsmd.ExcelReadService foreach(Message message in messages) { + message.CreatedBy = "EXCEL"; DBManager.Instance.Save(message); - message.SaveElements(); - } return true; diff --git a/nsw/Source/bsmd.ExcelReadService/bsmd.ExcelReadService.csproj b/nsw/Source/bsmd.ExcelReadService/bsmd.ExcelReadService.csproj index 24cf7ba9..a8d72038 100644 --- a/nsw/Source/bsmd.ExcelReadService/bsmd.ExcelReadService.csproj +++ b/nsw/Source/bsmd.ExcelReadService/bsmd.ExcelReadService.csproj @@ -11,6 +11,8 @@ bsmd.ExcelReadService v4.5 512 + + AnyCPU @@ -46,8 +48,9 @@ - - ..\packages\System.Data.SQLite.Core.1.0.99.0\lib\net45\System.Data.SQLite.dll + + ..\packages\System.Data.SQLite.Core.1.0.101.0\lib\net45\System.Data.SQLite.dll + True @@ -125,7 +128,13 @@ - + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + +