diff --git a/Stundensheet.xlsx b/Stundensheet.xlsx index 155de5a6..554027a3 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 b6ce4dc6..8a1a15a3 100644 --- a/nsw/Source/bsmd.ExcelReadService/ExcelReadService.cs +++ b/nsw/Source/bsmd.ExcelReadService/ExcelReadService.cs @@ -124,79 +124,87 @@ namespace bsmd.ExcelReadService else { // try to read/import attachment - using (ExcelReader reader = new ExcelReader(attachmentLocalPath)) + try { - try + using (ExcelReader reader = new ExcelReader(attachmentLocalPath)) { - ImportHeader importHeader = new ImportHeader(); - importHeader.ImportDate = DateTime.Now; - readResult = Util.ProcessSheet(reader, out readMessage, out messageCore); - if(readResult) + try { - // Saving plaintext data (ImportHeader + ImportValues) for each reading - - importHeader.MessageCoreId = messageCore.Id.Value; - importHeader.Filename = Path.GetFileName(attachmentLocalPath); - importHeader.SenderEmail = mailSender; - - bool foundReportingParty = false; - foreach (Guid rpKey in reportingPartyDict.Keys) + ImportHeader importHeader = new ImportHeader(); + importHeader.ImportDate = DateTime.Now; + readResult = Util.ProcessSheet(reader, out readMessage, out messageCore); + if (readResult) { - if (reportingPartyDict[rpKey].UserEMail.IsNullOrEmpty()) continue; - if (reportingPartyDict[rpKey].UserEMail.Equals(mailSender, StringComparison.OrdinalIgnoreCase)) + // Saving plaintext data (ImportHeader + ImportValues) for each reading + + importHeader.MessageCoreId = messageCore.Id.Value; + importHeader.Filename = Path.GetFileName(attachmentLocalPath); + importHeader.SenderEmail = mailSender; + + bool foundReportingParty = false; + foreach (Guid rpKey in reportingPartyDict.Keys) { - importHeader.ReportingPartyId = rpKey; - foundReportingParty = true; - break; + if (reportingPartyDict[rpKey].UserEMail.IsNullOrEmpty()) continue; + if (reportingPartyDict[rpKey].UserEMail.Equals(mailSender, StringComparison.OrdinalIgnoreCase)) + { + importHeader.ReportingPartyId = rpKey; + foundReportingParty = true; + break; + } + } + if (!foundReportingParty) + { + _log.WarnFormat("Sender {0} is an unknown reporting party", mailSender); } - } - if(!foundReportingParty) - { - _log.WarnFormat("Sender {0} is an unknown reporting party", mailSender); - } - DBManager.Instance.Save(importHeader); + DBManager.Instance.Save(importHeader); - List valueList = importHeader.CreateUpdateList(reader.ImportValues); - // Bulk save recommended here.. - ImportValue.BulkSave(valueList); - + List valueList = importHeader.CreateUpdateList(reader.ImportValues); + // Bulk save recommended here.. + ImportValue.BulkSave(valueList); + + } } - } - catch (Exception ex) - { - _log.Error(ex.ToString()); - readMessage = string.Format("{0} Unerwartete Fehlersitutation:Bitte Info an Christin od. Daniel", ex.Message); - } - - if (!readResult) - { - receiptText = string.Format("Incoming sheet could not be read: {0}", readMessage); - _log.Error(receiptText); - } - - if (readResult) - { - // Quittung / set messagecore to createreport and let reportGenerator create a reply? - if (Properties.Settings.Default.SendConfirmationSheet) + catch (Exception ex) { + _log.Error(ex.ToString()); + readMessage = string.Format("{0} Unerwartete Fehlersitutation:Bitte Info an Christin od. Daniel", ex.Message); + } - List localConfirmationSheets = reader.SaveConfirmationSheets(attachmentLocalPath); + if (!readResult) + { + receiptText = string.Format("Incoming sheet could not be read: {0}", readMessage); + _log.Error(receiptText); + } - // get the ship's name - string shipname = DBManager.Instance.GetShipNameFromCore(messageCore); - if (shipname.IsNullOrEmpty()) shipname = messageCore.IMO; + if (readResult) + { + // Quittung / set messagecore to createreport and let reportGenerator create a reply? + if (Properties.Settings.Default.SendConfirmationSheet) + { - if (mailSubject.IsNullOrEmpty()) - mailSubject = string.Format("{0}: {1}", Properties.Settings.Default.SendEMailSubject, shipname); + List localConfirmationSheets = reader.SaveConfirmationSheets(attachmentLocalPath); - // send reply sheet back to sender - BSMDMail.SendNSWReportWithAttachments(mailSubject, localConfirmationSheets, mailSender); + // get the ship's name + string shipname = DBManager.Instance.GetShipNameFromCore(messageCore); + if (shipname.IsNullOrEmpty()) shipname = messageCore.IMO; + if (mailSubject.IsNullOrEmpty()) + mailSubject = string.Format("{0}: {1}", Properties.Settings.Default.SendEMailSubject, shipname); + + // send reply sheet back to sender + BSMDMail.SendNSWReportWithAttachments(mailSubject, localConfirmationSheets, mailSender); + + } } } } - } + catch(Exception excelReadException) + { + receiptText = string.Format("Error opening excel sheet: {0}", excelReadException.Message); + _log.Error(receiptText); + } + } // remove attachment _log.InfoFormat("removing local file {0}", attachmentLocalPath); diff --git a/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs b/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs index 893b7e74..a409729a 100644 --- a/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs +++ b/nsw/Source/bsmd.database/Properties/AssemblyProductInfo.cs @@ -2,6 +2,6 @@ [assembly: AssemblyCompany("schick Informatik")] [assembly: AssemblyProduct("BSMD NSW interface")] -[assembly: AssemblyInformationalVersion("5.0.11")] +[assembly: AssemblyInformationalVersion("5.0.12")] [assembly: AssemblyCopyright("Copyright © 2014-2018 schick Informatik")] [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 a2ac3476..24467e8a 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("5.0.11.*")] +[assembly: AssemblyVersion("5.0.12.*")]