5.0.12 : kleine Korrektur für verschlüsselte? (und demnach nicht lesbare) Excel-Sheets

This commit is contained in:
Daniel Schick 2018-07-06 12:09:23 +00:00
parent c26f49dc92
commit 54fad6def2
4 changed files with 65 additions and 57 deletions

Binary file not shown.

View File

@ -124,78 +124,86 @@ namespace bsmd.ExcelReadService
else else
{ {
// try to read/import attachment // try to read/import attachment
using (ExcelReader reader = new ExcelReader(attachmentLocalPath)) try
{ {
try using (ExcelReader reader = new ExcelReader(attachmentLocalPath))
{ {
ImportHeader importHeader = new ImportHeader(); try
importHeader.ImportDate = DateTime.Now;
readResult = Util.ProcessSheet(reader, out readMessage, out messageCore);
if(readResult)
{ {
// Saving plaintext data (ImportHeader + ImportValues) for each reading ImportHeader importHeader = new ImportHeader();
importHeader.ImportDate = DateTime.Now;
importHeader.MessageCoreId = messageCore.Id.Value; readResult = Util.ProcessSheet(reader, out readMessage, out messageCore);
importHeader.Filename = Path.GetFileName(attachmentLocalPath); if (readResult)
importHeader.SenderEmail = mailSender;
bool foundReportingParty = false;
foreach (Guid rpKey in reportingPartyDict.Keys)
{ {
if (reportingPartyDict[rpKey].UserEMail.IsNullOrEmpty()) continue; // Saving plaintext data (ImportHeader + ImportValues) for each reading
if (reportingPartyDict[rpKey].UserEMail.Equals(mailSender, StringComparison.OrdinalIgnoreCase))
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; if (reportingPartyDict[rpKey].UserEMail.IsNullOrEmpty()) continue;
foundReportingParty = true; if (reportingPartyDict[rpKey].UserEMail.Equals(mailSender, StringComparison.OrdinalIgnoreCase))
break; {
importHeader.ReportingPartyId = rpKey;
foundReportingParty = true;
break;
}
} }
if (!foundReportingParty)
{
_log.WarnFormat("Sender {0} is an unknown reporting party", mailSender);
}
DBManager.Instance.Save(importHeader);
List<ImportValue> valueList = importHeader.CreateUpdateList(reader.ImportValues);
// Bulk save recommended here..
ImportValue.BulkSave(valueList);
} }
if(!foundReportingParty)
{
_log.WarnFormat("Sender {0} is an unknown reporting party", mailSender);
}
DBManager.Instance.Save(importHeader);
List<ImportValue> valueList = importHeader.CreateUpdateList(reader.ImportValues);
// Bulk save recommended here..
ImportValue.BulkSave(valueList);
} }
} catch (Exception ex)
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)
{ {
_log.Error(ex.ToString());
readMessage = string.Format("{0} Unerwartete Fehlersitutation:Bitte Info an Christin od. Daniel", ex.Message);
}
List<string> 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 if (readResult)
string shipname = DBManager.Instance.GetShipNameFromCore(messageCore); {
if (shipname.IsNullOrEmpty()) shipname = messageCore.IMO; // Quittung / set messagecore to createreport and let reportGenerator create a reply?
if (Properties.Settings.Default.SendConfirmationSheet)
{
if (mailSubject.IsNullOrEmpty()) List<string> localConfirmationSheets = reader.SaveConfirmationSheets(attachmentLocalPath);
mailSubject = string.Format("{0}: {1}", Properties.Settings.Default.SendEMailSubject, shipname);
// send reply sheet back to sender // get the ship's name
BSMDMail.SendNSWReportWithAttachments(mailSubject, localConfirmationSheets, mailSender); 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 // remove attachment

View File

@ -2,6 +2,6 @@
[assembly: AssemblyCompany("schick Informatik")] [assembly: AssemblyCompany("schick Informatik")]
[assembly: AssemblyProduct("BSMD NSW interface")] [assembly: AssemblyProduct("BSMD NSW interface")]
[assembly: AssemblyInformationalVersion("5.0.11")] [assembly: AssemblyInformationalVersion("5.0.12")]
[assembly: AssemblyCopyright("Copyright © 2014-2018 schick Informatik")] [assembly: AssemblyCopyright("Copyright © 2014-2018 schick Informatik")]
[assembly: AssemblyTrademark("")] [assembly: AssemblyTrademark("")]

View File

@ -1,4 +1,4 @@
using System.Reflection; using System.Reflection;
[assembly: AssemblyVersion("5.0.11.*")] [assembly: AssemblyVersion("5.0.12.*")]