Stundenabrechnung Oktober 2018

This commit is contained in:
Daniel Schick 2018-10-31 11:31:13 +00:00
parent d0c42ca6d9
commit e3888e1105
5 changed files with 142 additions and 75 deletions

Binary file not shown.

View File

@ -1,17 +1,42 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="bsmd.ExcelReadService.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<section name="bsmd.email.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<log4net>
<root>
<level value="DEBUG" />
<appender-ref ref="LogFileAppender" />
<appender-ref ref="TraceAppender" />
</root>
<appender name="TraceAppender" type="log4net.Appender.TraceAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger - %message%newline%exception"/>
</layout>
</appender>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" >
<param name="File" value="log-ExcelReadService.txt" />
<param name="AppendToFile" value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%date [%thread] %-5level [%logger] - %message%newline" />
</layout>
</appender>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<applicationSettings>
<bsmd.ExcelReadService.Properties.Settings>
<setting name="ConnectionString" serializeAs="String">
<value>replace me!</value>
<value>Data Source=(localdb)\Projects;Initial Catalog=nsw;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False</value>
</setting>
<setting name="SleepSeconds" serializeAs="String">
<value>300</value>
@ -55,5 +80,49 @@
</value>
</setting>
</bsmd.ExcelReadService.Properties.Settings>
<bsmd.email.Properties.Settings>
<setting name="POP3User" serializeAs="String">
<value>excel@textbausteine.net</value>
</setting>
<setting name="POP3Password" serializeAs="String">
<value>3kjasWss.;.</value>
</setting>
<setting name="POP3Server" serializeAs="String">
<value>pop3.strato.de</value>
</setting>
<setting name="POP3Port" serializeAs="String">
<value>995</value>
</setting>
<setting name="SMTPServer" serializeAs="String">
<value>mail.strato.de</value>
</setting>
<setting name="SMTPUser" serializeAs="String">
<value>excel@textbausteine.net</value>
</setting>
<setting name="SMTPPassword" serializeAs="String">
<value>3kjasWss.;.</value>
</setting>
<setting name="Sender" serializeAs="String">
<value>excel@textbausteine.net</value>
</setting>
<setting name="AdminEmail" serializeAs="String">
<value>nsw@textbausteine.net</value>
</setting>
<setting name="ArchiveFolder" serializeAs="String">
<value>E:\temp\excel</value>
</setting>
<!-- Alle zusätzlichen Empfänger des Bestätigungs-Sheets (außer dem Sender) -->
<setting name="Recipient" serializeAs="Xml">
<value>
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!--string>report@bsmd.de</string-->
<!--string>nsw@textbausteine.net</string-->
<!--string>hollmann@bsmd.de</string-->
<!--string>haese@bsmd.de</string-->
</ArrayOfString>
</value>
</setting>
</bsmd.email.Properties.Settings>
</applicationSettings>
</configuration>

View File

@ -18,7 +18,7 @@ namespace bsmd.ExcelReadService
{
public static class Util
{
private static ILog _log = LogManager.GetLogger(typeof(Util));
private static readonly ILog _log = LogManager.GetLogger(typeof(Util));
internal static bool ProcessSheet(ExcelReader reader, out string readMessage, out MessageCore messageCore)
{
@ -1290,7 +1290,7 @@ namespace bsmd.ExcelReadService
was.DeleteElements();
Util.ScanMessage(was, reader);
was.WasteDisposalDelivery = reader.ReadDelivery("WAS.WasteDisposalDelivery");
if ((was.LastWasteDisposalPort != null) && (was.LastWasteDisposalPort.Length > 5))
if (was.LastWasteDisposalPort?.Length > 5)
{
string lastWasteDisposalPort = reader.ReadText("WAS.LastWasteDisposalPort");
List<string> deliveryLocodes = LocodeDB.AllLocodesForCityName(lastWasteDisposalPort);
@ -1435,7 +1435,7 @@ namespace bsmd.ExcelReadService
was.Waste.Remove(waste);
// 24.3.: - Für Waste-Type 15: Wenn in dieser Zeile andere Werte enthalten, als die nachfolgenden, ist die ganze Zeile rot zu markieren.
bool highlightRow15 = !(waste.WasteType == null);
bool highlightRow15 = waste.WasteType != null;
highlightRow15 &= (waste.WasteDisposalAmount_MTQ > 0);
highlightRow15 &= (waste.WasteCapacity_MTQ > 0);
highlightRow15 &= (waste.WasteAmountRetained_MTQ > 0);
@ -1829,7 +1829,7 @@ namespace bsmd.ExcelReadService
if (l10fc.PortFacilityGISISCode.IsNullOrEmpty() || l10fc.PortFacilityGISISCode == "0")
l10fc.PortFacilityGISISCode = "0000";
if((l10fc.PortFacilityGISISCode != null) && (l10fc.PortFacilityGISISCode.Length < 4))
if(l10fc.PortFacilityGISISCode?.Length < 4)
{
while (l10fc.PortFacilityGISISCode.Length < 4) l10fc.PortFacilityGISISCode = "0" + l10fc.PortFacilityGISISCode;
}
@ -2204,7 +2204,7 @@ namespace bsmd.ExcelReadService
}
if (reader.Mode == ExcelReader.CountryMode.DE)
{
if ((ladg.CargoCodeNST != null) && (ladg.CargoCodeNST.Length == 1))
if (ladg.CargoCodeNST?.Length == 1)
ladg.CargoCodeNST = "0" + ladg.CargoCodeNST;
if ((ladg.CargoCodeNST != null) && (ladg.CargoCodeNST.Length != 2))
@ -2707,7 +2707,7 @@ namespace bsmd.ExcelReadService
// okay, könnte DK Locode etc sein..
if(poc == null)
{
if((aGermanPortName != null) && (aGermanPortName.Length == 5)) // possible locode?
if(aGermanPortName?.Length == 5) // possible locode?
{
if (LocodeDB.PortNameFromLocode(aGermanPortName) != null)
poc = aGermanPortName;

View File

@ -39,7 +39,7 @@
<HintPath>..\packages\log4net.2.0.8\lib\net45-full\log4net.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Microsoft.Office.Interop.Excel, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL">
<Reference Include="Microsoft.Office.Interop.Excel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL">
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
<Reference Include="OpenPop, Version=2.0.6.1120, Culture=neutral, PublicKeyToken=6bdb97f144b7efc8, processorArchitecture=MSIL">

View File

@ -23,12 +23,12 @@ namespace bsmd.database
private SqlConnection _con;
private static DBManager _instance;
private static ILog _log = LogManager.GetLogger(typeof(DBManager));
private static readonly ILog _log = LogManager.GetLogger(typeof(DBManager));
private static Dictionary<Guid, ReportingParty> allReportingParties;
private static Dictionary<string, PortArea> allPortAreas;
private object _lock = new object();
private readonly object _lock = new object();
private bool _closeConnectionAfterUse = false;
private List<string> truncatedFieldCollection = new List<string>();
private readonly List<string> truncatedFieldCollection = new List<string>();
#endregion
@ -50,9 +50,7 @@ namespace bsmd.database
{
get
{
if (_instance == null)
_instance = new DBManager();
return _instance;
return _instance ?? (_instance = new DBManager());
}
}
@ -91,13 +89,13 @@ namespace bsmd.database
public void Disconnect()
{
if ((this._con != null) && (this._con.State == ConnectionState.Open))
if (this._con?.State == ConnectionState.Open)
this._con.Close();
}
public bool IsConnected
{
get { return (this._con != null) && (this._con.State == ConnectionState.Open); }
get { return (this._con?.State == ConnectionState.Open); }
}
@ -346,7 +344,7 @@ namespace bsmd.database
Message statMessage = this.GetMessage(core, Message.NotificationClass.STAT);
if ((statMessage != null) && (statMessage.Elements.Count > 0))
if (statMessage?.Elements.Count > 0)
{
STAT stat = statMessage.Elements[0] as STAT;
if (stat != null)
@ -406,7 +404,7 @@ namespace bsmd.database
{
Message aMessage = new Message();
SqlCommand cmd = new SqlCommand();
Message.LoadFilter filter = Message.LoadFilter.BY_ID;
const Message.LoadFilter filter = Message.LoadFilter.BY_ID;
aMessage.PrepareLoadCommand(cmd, filter, id);
SqlDataReader reader = this.PerformCommand(cmd);
@ -429,7 +427,7 @@ namespace bsmd.database
{
MessageCore aCore = new MessageCore();
SqlCommand cmd = new SqlCommand();
Message.LoadFilter filter = Message.LoadFilter.BY_ID;
const Message.LoadFilter filter = Message.LoadFilter.BY_ID;
aCore.PrepareLoadCommand(cmd, filter, id);
SqlDataReader reader = this.PerformCommand(cmd);
@ -460,7 +458,7 @@ namespace bsmd.database
{
MessageCore aCore = new MessageCore();
SqlCommand cmd = new SqlCommand();
Message.LoadFilter filter = Message.LoadFilter.BY_VISITID;
const Message.LoadFilter filter = Message.LoadFilter.BY_VISITID;
aCore.PrepareLoadCommand(cmd, filter, visitId);
SqlDataReader reader = this.PerformCommand(cmd);
@ -489,7 +487,7 @@ namespace bsmd.database
{
MessageCore aCore = new MessageCore();
SqlCommand cmd = new SqlCommand();
Message.LoadFilter filter = Message.LoadFilter.BY_TRANSITID;
const Message.LoadFilter filter = Message.LoadFilter.BY_TRANSITID;
aCore.PrepareLoadCommand(cmd, filter, transitId);
SqlDataReader reader = this.PerformCommand(cmd);
@ -520,7 +518,7 @@ namespace bsmd.database
{
MessageCore aCore = new MessageCore();
SqlCommand cmd = new SqlCommand();
Message.LoadFilter filter = Message.LoadFilter.IMO_ETA_POC;
const Message.LoadFilter filter = Message.LoadFilter.IMO_ETA_POC;
aCore.PrepareLoadCommand(cmd, filter, imo, eta, poc);
SqlDataReader reader = this.PerformCommand(cmd);
List<DatabaseEntity> cores = aCore.LoadList(reader);
@ -544,9 +542,9 @@ namespace bsmd.database
foreach (Message message in coreMessages)
{
if (message is ISublistContainer)
if (message is ISublistContainer sublistContainer)
{
((ISublistContainer)message).DeleteElements();
(sublistContainer).DeleteElements();
}
this.Delete(message);
}
@ -694,8 +692,8 @@ namespace bsmd.database
{
if(message.MessageNotificationClass == Message.NotificationClass.HAZD)
{
if(derivedMessage is HAZ)
((HAZ)derivedMessage).IsDeparture = true;
if(derivedMessage is HAZ hAZ)
(hAZ).IsDeparture = true;
}
message.Elements.Add(derivedMessage);
derivedMessage.MessageHeader = message;