Compare commits
11 Commits
Update-Net
...
2e0ae13a77
| Author | SHA1 | Date | |
|---|---|---|---|
| 2e0ae13a77 | |||
| 267e038725 | |||
| 2673755b14 | |||
| 5052ce4f14 | |||
| 717909d7e8 | |||
| 04a408ab97 | |||
| face3c76fb | |||
| 2d3a1cd25c | |||
| 43e95a20b9 | |||
| 05d0bd60ab | |||
| 7e70c059b6 |
@@ -45,8 +45,8 @@
|
|||||||
<OptionInfer>On</OptionInfer>
|
<OptionInfer>On</OptionInfer>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="DigitalData.Modules.Logging">
|
<Reference Include="DigitalData.Modules.Logging, Version=2.6.5.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\Logging\bin\Debug\DigitalData.Modules.Logging.dll</HintPath>
|
<HintPath>..\packages\DigitalData.Modules.Logging.2.6.5\lib\net462\DigitalData.Modules.Logging.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.CSharp" />
|
<Reference Include="Microsoft.CSharp" />
|
||||||
<Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
<Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
|
<package id="DigitalData.Modules.Logging" version="2.6.5" targetFramework="net462" />
|
||||||
<package id="NLog" version="5.0.5" targetFramework="net461" />
|
<package id="NLog" version="5.0.5" targetFramework="net461" />
|
||||||
<package id="NuGet.CommandLine" version="6.13.2" targetFramework="net462" developmentDependency="true" />
|
<package id="NuGet.CommandLine" version="6.13.2" targetFramework="net462" developmentDependency="true" />
|
||||||
</packages>
|
</packages>
|
||||||
@@ -48,16 +48,16 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="DigitalData.Modules.Base, Version=1.3.8.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="DigitalData.Modules.Base, Version=1.3.8.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<SpecificVersion>False</SpecificVersion>
|
<HintPath>..\packages\DigitalData.Modules.Base.1.3.8\lib\net462\DigitalData.Modules.Base.dll</HintPath>
|
||||||
<HintPath>..\Base\bin\Debug\DigitalData.Modules.Base.dll</HintPath>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="DigitalData.Modules.Database, Version=2.3.5.4, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="DigitalData.Modules.Database, Version=2.3.5.4, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<SpecificVersion>False</SpecificVersion>
|
<HintPath>..\packages\DigitalData.Modules.Database.2.3.5.4\lib\net462\DigitalData.Modules.Database.dll</HintPath>
|
||||||
<HintPath>..\Database\bin\Debug\DigitalData.Modules.Database.dll</HintPath>
|
</Reference>
|
||||||
|
<Reference Include="DigitalData.Modules.Encryption, Version=1.3.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\DigitalData.Modules.Encryption.1.3.1\lib\net462\DigitalData.Modules.Encryption.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="DigitalData.Modules.Logging, Version=2.6.5.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="DigitalData.Modules.Logging, Version=2.6.5.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<SpecificVersion>False</SpecificVersion>
|
<HintPath>..\packages\DigitalData.Modules.Logging.2.6.5\lib\net462\DigitalData.Modules.Logging.dll</HintPath>
|
||||||
<HintPath>..\Logging\bin\Debug\DigitalData.Modules.Logging.dll</HintPath>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll</HintPath>
|
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll</HintPath>
|
||||||
@@ -148,6 +148,9 @@
|
|||||||
</None>
|
</None>
|
||||||
<None Include="packages.config" />
|
<None Include="packages.config" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Content Include="README.txt" />
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<PostBuildEvent>powershell.exe -command "& { &'$(SolutionDir)copy-binary.ps1' '$(TargetPath)' '$(TargetFileName)' '$(ConfigurationName)' '$(ProjectName)' }"</PostBuildEvent>
|
<PostBuildEvent>powershell.exe -command "& { &'$(SolutionDir)copy-binary.ps1' '$(TargetPath)' '$(TargetFileName)' '$(ConfigurationName)' '$(ProjectName)' }"</PostBuildEvent>
|
||||||
|
|||||||
5
Config/README.txt
Normal file
5
Config/README.txt
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
BASE MODULE
|
||||||
|
===========
|
||||||
|
|
||||||
|
This module is intended for often used constants and datastructures.
|
||||||
|
Therefor it is important that this module does not have any dependencies on other modules!!
|
||||||
@@ -1,5 +1,9 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
|
<package id="DigitalData.Modules.Base" version="1.3.8" targetFramework="net462" />
|
||||||
|
<package id="DigitalData.Modules.Database" version="2.3.5.4" targetFramework="net462" />
|
||||||
|
<package id="DigitalData.Modules.Encryption" version="1.3.1" targetFramework="net462" />
|
||||||
|
<package id="DigitalData.Modules.Logging" version="2.6.5" targetFramework="net462" />
|
||||||
<package id="EntityFramework" version="6.4.4" targetFramework="net462" />
|
<package id="EntityFramework" version="6.4.4" targetFramework="net462" />
|
||||||
<package id="EntityFramework.Firebird" version="6.4.0" targetFramework="net462" />
|
<package id="EntityFramework.Firebird" version="6.4.0" targetFramework="net462" />
|
||||||
<package id="FirebirdSql.Data.FirebirdClient" version="7.5.0" targetFramework="net462" />
|
<package id="FirebirdSql.Data.FirebirdClient" version="7.5.0" targetFramework="net462" />
|
||||||
|
|||||||
@@ -470,7 +470,6 @@ Public Class MSSQLServer
|
|||||||
Dim oTransaction As SqlTransaction = MaybeGetTransaction(pSqlConnection, pTransactionMode, pTransaction)
|
Dim oTransaction As SqlTransaction = MaybeGetTransaction(pSqlConnection, pTransactionMode, pTransaction)
|
||||||
|
|
||||||
Try
|
Try
|
||||||
|
|
||||||
Logger.Debug("ExecuteNonQueryWithConnectionObject: Running Command [{0}] and Parameters [{1}]", pSqlCommandObject.CommandText, GetParameterListAsString(pSqlCommandObject))
|
Logger.Debug("ExecuteNonQueryWithConnectionObject: Running Command [{0}] and Parameters [{1}]", pSqlCommandObject.CommandText, GetParameterListAsString(pSqlCommandObject))
|
||||||
|
|
||||||
pSqlCommandObject.Connection = pSqlConnection
|
pSqlCommandObject.Connection = pSqlConnection
|
||||||
@@ -652,10 +651,12 @@ Public Class MSSQLServer
|
|||||||
Cast(Of SqlParameter).
|
Cast(Of SqlParameter).
|
||||||
Select(Function(p) $"({p.ParameterName}={p.Value})").
|
Select(Function(p) $"({p.ParameterName}={p.Value})").
|
||||||
ToList()
|
ToList()
|
||||||
|
|
||||||
Dim oParamString = String.Join(",", oList)
|
Dim oParamString = String.Join(",", oList)
|
||||||
If oParamString.Length > 1000 Then
|
If oParamString.Length > 1000 Then
|
||||||
oParamString = oParamString.Substring(1, 1000)
|
oParamString = oParamString.Substring(1, 1000)
|
||||||
End If
|
End If
|
||||||
Return oParamString
|
Return oParamString
|
||||||
|
|
||||||
End Function
|
End Function
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@@ -47,11 +47,11 @@
|
|||||||
<OptionInfer>On</OptionInfer>
|
<OptionInfer>On</OptionInfer>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="DigitalData.Modules.Encryption">
|
<Reference Include="DigitalData.Modules.Encryption, Version=1.3.1.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\Encryption\bin\Debug\DigitalData.Modules.Encryption.dll</HintPath>
|
<HintPath>..\packages\DigitalData.Modules.Encryption.1.3.1\lib\net462\DigitalData.Modules.Encryption.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="DigitalData.Modules.Logging">
|
<Reference Include="DigitalData.Modules.Logging, Version=2.6.5.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\Logging\bin\Debug\DigitalData.Modules.Logging.dll</HintPath>
|
<HintPath>..\packages\DigitalData.Modules.Logging.2.6.5\lib\net462\DigitalData.Modules.Logging.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll</HintPath>
|
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll</HintPath>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ Imports System.Runtime.InteropServices
|
|||||||
<Assembly: AssemblyCompany("Digital Data")>
|
<Assembly: AssemblyCompany("Digital Data")>
|
||||||
<Assembly: AssemblyProduct("Modules.Database")>
|
<Assembly: AssemblyProduct("Modules.Database")>
|
||||||
<Assembly: AssemblyCopyright("Copyright © 2025")>
|
<Assembly: AssemblyCopyright("Copyright © 2025")>
|
||||||
<Assembly: AssemblyTrademark("")>
|
<Assembly: AssemblyTrademark("2.3.6.0")>
|
||||||
|
|
||||||
<Assembly: ComVisible(False)>
|
<Assembly: ComVisible(False)>
|
||||||
|
|
||||||
|
|||||||
@@ -44,15 +44,6 @@
|
|||||||
<OptionInfer>On</OptionInfer>
|
<OptionInfer>On</OptionInfer>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="DigitalData.Modules.Base">
|
|
||||||
<HintPath>..\Base\bin\Debug\DigitalData.Modules.Base.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="DigitalData.Modules.Database">
|
|
||||||
<HintPath>..\Database\bin\Debug\DigitalData.Modules.Database.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="DigitalData.Modules.Logging">
|
|
||||||
<HintPath>..\Logging\bin\Debug\DigitalData.Modules.Logging.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="Microsoft.CSharp" />
|
<Reference Include="Microsoft.CSharp" />
|
||||||
<Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
<Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NLog.5.0.5\lib\net46\NLog.dll</HintPath>
|
<HintPath>..\packages\NLog.5.0.5\lib\net46\NLog.dll</HintPath>
|
||||||
@@ -304,6 +295,24 @@
|
|||||||
<LastGenOutput>Reference.vb</LastGenOutput>
|
<LastGenOutput>Reference.vb</LastGenOutput>
|
||||||
</None>
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\Base\Base.vbproj">
|
||||||
|
<Project>{6ea0c51f-c2b1-4462-8198-3de0b32b74f8}</Project>
|
||||||
|
<Name>Base</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\Config\Config.vbproj">
|
||||||
|
<Project>{44982f9b-6116-44e2-85d0-f39650b1ef99}</Project>
|
||||||
|
<Name>Config</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\Database\Database.vbproj">
|
||||||
|
<Project>{eaf0ea75-5fa7-485d-89c7-b2d843b03a96}</Project>
|
||||||
|
<Name>Database</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\Logging\Logging.vbproj">
|
||||||
|
<Project>{903b2d7d-3b80-4be9-8713-7447b704e1b0}</Project>
|
||||||
|
<Name>Logging</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<PostBuildEvent>powershell.exe -command "& { &'$(SolutionDir)copy-binary.ps1' '$(TargetPath)' '$(TargetFileName)' '$(ConfigurationName)' '$(ProjectName)' }"</PostBuildEvent>
|
<PostBuildEvent>powershell.exe -command "& { &'$(SolutionDir)copy-binary.ps1' '$(TargetPath)' '$(TargetFileName)' '$(ConfigurationName)' '$(ProjectName)' }"</PostBuildEvent>
|
||||||
|
|||||||
@@ -46,8 +46,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="DigitalData.Modules.Logging, Version=2.6.5.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="DigitalData.Modules.Logging, Version=2.6.5.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<SpecificVersion>False</SpecificVersion>
|
<HintPath>..\packages\DigitalData.Modules.Logging.2.6.5\lib\net462\DigitalData.Modules.Logging.dll</HintPath>
|
||||||
<HintPath>..\Logging\bin\Debug\DigitalData.Modules.Logging.dll</HintPath>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Microsoft.CSharp" />
|
<Reference Include="Microsoft.CSharp" />
|
||||||
<Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
<Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
|
<package id="DigitalData.Modules.Logging" version="2.6.5" targetFramework="net462" />
|
||||||
<package id="NLog" version="5.0.5" targetFramework="net461" />
|
<package id="NLog" version="5.0.5" targetFramework="net461" />
|
||||||
</packages>
|
</packages>
|
||||||
@@ -49,18 +49,6 @@
|
|||||||
<Reference Include="BouncyCastle.Cryptography, Version=2.0.0.0, Culture=neutral, PublicKeyToken=072edcf4a5328938, processorArchitecture=MSIL">
|
<Reference Include="BouncyCastle.Cryptography, Version=2.0.0.0, Culture=neutral, PublicKeyToken=072edcf4a5328938, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\BouncyCastle.Cryptography.2.5.0\lib\net461\BouncyCastle.Cryptography.dll</HintPath>
|
<HintPath>..\packages\BouncyCastle.Cryptography.2.5.0\lib\net461\BouncyCastle.Cryptography.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="DigitalData.Modules.Base, Version=1.3.9.0, Culture=neutral, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\Base\bin\Debug\DigitalData.Modules.Base.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="DigitalData.Modules.Database, Version=2.3.5.4, Culture=neutral, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\Database\bin\Debug\DigitalData.Modules.Database.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="DigitalData.Modules.Logging, Version=2.6.5.0, Culture=neutral, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\Logging\bin\Debug\DigitalData.Modules.Logging.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="DocumentFormat.OpenXml, Version=3.2.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17, processorArchitecture=MSIL">
|
<Reference Include="DocumentFormat.OpenXml, Version=3.2.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\DocumentFormat.OpenXml.3.2.0\lib\net46\DocumentFormat.OpenXml.dll</HintPath>
|
<HintPath>..\packages\DocumentFormat.OpenXml.3.2.0\lib\net46\DocumentFormat.OpenXml.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
@@ -293,6 +281,20 @@
|
|||||||
</None>
|
</None>
|
||||||
<None Include="packages.config" />
|
<None Include="packages.config" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\Base\Base.vbproj">
|
||||||
|
<Project>{6ea0c51f-c2b1-4462-8198-3de0b32b74f8}</Project>
|
||||||
|
<Name>Base</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\Database\Database.vbproj">
|
||||||
|
<Project>{eaf0ea75-5fa7-485d-89c7-b2d843b03a96}</Project>
|
||||||
|
<Name>Database</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\Logging\Logging.vbproj">
|
||||||
|
<Project>{903b2d7d-3b80-4be9-8713-7447b704e1b0}</Project>
|
||||||
|
<Name>Logging</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
<ItemGroup />
|
<ItemGroup />
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ Imports System.Runtime.InteropServices
|
|||||||
<Assembly: AssemblyCompany("Digital Data")>
|
<Assembly: AssemblyCompany("Digital Data")>
|
||||||
<Assembly: AssemblyProduct("Modules.Interfaces")>
|
<Assembly: AssemblyProduct("Modules.Interfaces")>
|
||||||
<Assembly: AssemblyCopyright("Copyright © 2025")>
|
<Assembly: AssemblyCopyright("Copyright © 2025")>
|
||||||
<Assembly: AssemblyTrademark("")>
|
<Assembly: AssemblyTrademark("2.3.1.0")>
|
||||||
|
|
||||||
<Assembly: ComVisible(False)>
|
<Assembly: ComVisible(False)>
|
||||||
|
|
||||||
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
|
|||||||
' übernehmen, indem Sie "*" eingeben:
|
' übernehmen, indem Sie "*" eingeben:
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
' <Assembly: AssemblyVersion("1.0.*")>
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("2.3.0.0")>
|
<Assembly: AssemblyVersion("2.3.1.0")>
|
||||||
<Assembly: AssemblyFileVersion("2.3.0.0")>
|
<Assembly: AssemblyFileVersion("2.3.1.0")>
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ Public Class PropertyValues
|
|||||||
ToDictionary(Function(Item) Item.Key,
|
ToDictionary(Function(Item) Item.Key,
|
||||||
Function(Item) Item.Value)
|
Function(Item) Item.Value)
|
||||||
|
|
||||||
_logger.Debug("Found {0} default properties.", oDefaultProperties.Count)
|
_logger.Debug("Found {0} ungrouped properties.", oDefaultProperties.Count)
|
||||||
|
|
||||||
' PropertyMap items with `IsGrouped = True` are grouped by group scope
|
' PropertyMap items with `IsGrouped = True` are grouped by group scope
|
||||||
Dim oGroupedProperties = PropertyMap.
|
Dim oGroupedProperties = PropertyMap.
|
||||||
@@ -118,7 +118,7 @@ Public Class PropertyValues
|
|||||||
' Returns nothing if oColumn.Value contains an empty list
|
' Returns nothing if oColumn.Value contains an empty list
|
||||||
Dim oPropertyValue = oColumn.Value.ElementAtOrDefault(oRowIndex)
|
Dim oPropertyValue = oColumn.Value.ElementAtOrDefault(oRowIndex)
|
||||||
|
|
||||||
_logger.Debug("Processing itemSpecification *TableColumn* [{0}].", oTableColumn)
|
_logger.Debug("Processing itemColumn *TableColumn* [{0}].", oTableColumn)
|
||||||
If oTableColumn = "INVOICE_SELLER_EMAIL" Then
|
If oTableColumn = "INVOICE_SELLER_EMAIL" Then
|
||||||
Console.WriteLine("INVOICE_SELLER_EMAIL")
|
Console.WriteLine("INVOICE_SELLER_EMAIL")
|
||||||
ElseIf oTableColumn = "INVOICE_POSITION_ARTICLE" Then
|
ElseIf oTableColumn = "INVOICE_POSITION_ARTICLE" Then
|
||||||
@@ -126,20 +126,28 @@ Public Class PropertyValues
|
|||||||
End If
|
End If
|
||||||
If IsNothing(oPropertyValue) OrElse String.IsNullOrEmpty(oPropertyValue) Then
|
If IsNothing(oPropertyValue) OrElse String.IsNullOrEmpty(oPropertyValue) Then
|
||||||
If oColumn.Key.IsRequired Then
|
If oColumn.Key.IsRequired Then
|
||||||
_logger.Warn($"{MessageId} # oPropertyValue for specification [{oTableColumn}] is empty or not found but is required. Continuing with Empty String.")
|
_logger.Warn($"{MessageId} # oPropertyValue for column [{oTableColumn}] is empty or not found but is required. Continuing with Empty String.")
|
||||||
Dim oMissingProperty = New MissingProperty() With {
|
Dim oMissingProperty = New MissingProperty() With {
|
||||||
.Description = oPropertyDescription,
|
.Description = oPropertyDescription,
|
||||||
.XMLPath = oPropertyPath
|
.XMLPath = oPropertyPath
|
||||||
}
|
}
|
||||||
oResult.MissingProperties.Add(oMissingProperty)
|
oResult.MissingProperties.Add(oMissingProperty)
|
||||||
Else
|
Else
|
||||||
_logger.Debug($"{MessageId} # oPropertyValue for specification [{oTableColumn}] is empty or not found. Continuing with Empty String.")
|
_logger.Debug($"{MessageId} # oPropertyValue for column [{oTableColumn}] is empty or not found. Continuing with Empty String.")
|
||||||
End If
|
End If
|
||||||
|
|
||||||
oPropertyValue = String.Empty
|
oPropertyValue = String.Empty
|
||||||
End If
|
End If
|
||||||
|
|
||||||
_logger.Debug("ItemSpecification [{0}] has value '{1}'", oTableColumn, oPropertyValue)
|
If (oPropertyValue IsNot Nothing) Then
|
||||||
|
Dim logValue As String = oPropertyValue.ToString()
|
||||||
|
If logValue.Length > 50 Then
|
||||||
|
_logger.Debug("Item [{0}] has value '{1}...'", oTableColumn, logValue.Substring(1, 50))
|
||||||
|
Else
|
||||||
|
_logger.Debug("Item [{0}] has value '{1}'", oTableColumn, oPropertyValue)
|
||||||
|
End If
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
oResult.ValidProperties.Add(New ValidProperty() With {
|
oResult.ValidProperties.Add(New ValidProperty() With {
|
||||||
.MessageId = MessageId,
|
.MessageId = MessageId,
|
||||||
@@ -290,7 +298,7 @@ Public Class PropertyValues
|
|||||||
Obj = Obj(0)
|
Obj = Obj(0)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If IsArray(Obj) And Not oHasIndex Then
|
If IsArray(Obj) And Not oHasIndex And oPart <> "Value" Then
|
||||||
Dim oCurrentPart As String = oPart
|
Dim oCurrentPart As String = oPart
|
||||||
Dim oSplitString As String() = New String() {oCurrentPart & "."}
|
Dim oSplitString As String() = New String() {oCurrentPart & "."}
|
||||||
Dim oPathFragments = PropertyName.Split(oSplitString, StringSplitOptions.None)
|
Dim oPathFragments = PropertyName.Split(oSplitString, StringSplitOptions.None)
|
||||||
@@ -339,8 +347,20 @@ Public Class PropertyValues
|
|||||||
Select Case oCount
|
Select Case oCount
|
||||||
Case 0
|
Case 0
|
||||||
Return Nothing
|
Return Nothing
|
||||||
|
Case 1
|
||||||
|
Dim firstElement As Object
|
||||||
|
firstElement = oList.FirstOrDefault()
|
||||||
|
If firstElement IsNot Nothing AndAlso IsArray(firstElement) Then
|
||||||
|
|
||||||
|
' Attachments sind Byte-Arrays und müssen umgewandelt werden
|
||||||
|
Return Convert.ToBase64String(firstElement)
|
||||||
|
|
||||||
|
Else
|
||||||
|
Return DoGetFinalPropValue(oList.First())
|
||||||
|
End If
|
||||||
Case Else
|
Case Else
|
||||||
Return DoGetFinalPropValue(oList.First())
|
Return DoGetFinalPropValue(oList.First())
|
||||||
|
|
||||||
End Select
|
End Select
|
||||||
|
|
||||||
Return DoGetFinalPropValue(Value)
|
Return DoGetFinalPropValue(Value)
|
||||||
|
|||||||
@@ -67,6 +67,18 @@
|
|||||||
<None Include="packages.config" />
|
<None Include="packages.config" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\Base\Base.vbproj">
|
||||||
|
<Project>{6ea0c51f-c2b1-4462-8198-3de0b32b74f8}</Project>
|
||||||
|
<Name>Base</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\Config\Config.vbproj">
|
||||||
|
<Project>{44982f9b-6116-44e2-85d0-f39650b1ef99}</Project>
|
||||||
|
<Name>Config</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\Database\Database.vbproj">
|
||||||
|
<Project>{eaf0ea75-5fa7-485d-89c7-b2d843b03a96}</Project>
|
||||||
|
<Name>Database</Name>
|
||||||
|
</ProjectReference>
|
||||||
<ProjectReference Include="..\Interfaces\Interfaces.vbproj">
|
<ProjectReference Include="..\Interfaces\Interfaces.vbproj">
|
||||||
<Project>{ab6f09bf-e794-4f6a-94bb-c97c0ba84d64}</Project>
|
<Project>{ab6f09bf-e794-4f6a-94bb-c97c0ba84d64}</Project>
|
||||||
<Name>Interfaces</Name>
|
<Name>Interfaces</Name>
|
||||||
@@ -113,18 +125,6 @@
|
|||||||
<Reference Include="BouncyCastle.Cryptography, Version=2.0.0.0, Culture=neutral, PublicKeyToken=072edcf4a5328938, processorArchitecture=MSIL">
|
<Reference Include="BouncyCastle.Cryptography, Version=2.0.0.0, Culture=neutral, PublicKeyToken=072edcf4a5328938, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\BouncyCastle.Cryptography.2.5.0\lib\net461\BouncyCastle.Cryptography.dll</HintPath>
|
<HintPath>..\packages\BouncyCastle.Cryptography.2.5.0\lib\net461\BouncyCastle.Cryptography.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="DigitalData.Modules.Base, Version=1.3.9.0, Culture=neutral, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\Base\bin\Debug\DigitalData.Modules.Base.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="DigitalData.Modules.Config, Version=1.3.0.0, Culture=neutral, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\Config\bin\Debug\DigitalData.Modules.Config.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="DigitalData.Modules.Database, Version=2.3.5.4, Culture=neutral, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\Database\bin\Debug\DigitalData.Modules.Database.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="DocumentFormat.OpenXml, Version=3.2.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17, processorArchitecture=MSIL">
|
<Reference Include="DocumentFormat.OpenXml, Version=3.2.0.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\DocumentFormat.OpenXml.3.2.0\lib\net46\DocumentFormat.OpenXml.dll</HintPath>
|
<HintPath>..\packages\DocumentFormat.OpenXml.3.2.0\lib\net46\DocumentFormat.OpenXml.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ Imports System.Runtime.InteropServices
|
|||||||
<Assembly: AssemblyCompany("Digital Data")>
|
<Assembly: AssemblyCompany("Digital Data")>
|
||||||
<Assembly: AssemblyProduct("Modules.Jobs")>
|
<Assembly: AssemblyProduct("Modules.Jobs")>
|
||||||
<Assembly: AssemblyCopyright("Copyright © 2025")>
|
<Assembly: AssemblyCopyright("Copyright © 2025")>
|
||||||
<Assembly: AssemblyTrademark("2.9.3.0")>
|
<Assembly: AssemblyTrademark("2.9.6.0")>
|
||||||
|
|
||||||
<Assembly: ComVisible(False)>
|
<Assembly: ComVisible(False)>
|
||||||
|
|
||||||
@@ -30,5 +30,5 @@ Imports System.Runtime.InteropServices
|
|||||||
' Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
|
' Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
|
||||||
' übernehmen, indem Sie "*" eingeben:
|
' übernehmen, indem Sie "*" eingeben:
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("2.9.4.0")>
|
<Assembly: AssemblyVersion("2.9.6.0")>
|
||||||
<Assembly: AssemblyFileVersion("2.9.4.0")>
|
<Assembly: AssemblyFileVersion("2.9.6.0")>
|
||||||
|
|||||||
@@ -33,11 +33,6 @@ Public Class HashFunctions
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
' Check if Checksum exists in History Table
|
' Check if Checksum exists in History Table
|
||||||
'Dim oCheckCommand = $"SELECT * FROM TBEDM_ZUGFERD_HISTORY_IN WHERE GUID = (SELECT MAX(GUID) FROM TBEDM_ZUGFERD_HISTORY_IN WHERE UPPER(MD5HASH) = UPPER('{oMD5CheckSum}'))"
|
|
||||||
'Dim oTable As DataTable = _firebird.GetDatatable(oCheckCommand, Firebird.TransactionMode.NoTransaction)
|
|
||||||
|
|
||||||
' Check if Checksum exists in History Table
|
|
||||||
' TODO: WHAT THE FUCK IS THIS
|
|
||||||
Dim oCheckCommand = $"SELECT * FROM TBEMLP_HISTORY WHERE GUID = (SELECT MAX(GUID) FROM TBEMLP_HISTORY WHERE UPPER(MD5HASH) = UPPER('{oMD5CheckSum}'))"
|
Dim oCheckCommand = $"SELECT * FROM TBEMLP_HISTORY WHERE GUID = (SELECT MAX(GUID) FROM TBEMLP_HISTORY WHERE UPPER(MD5HASH) = UPPER('{oMD5CheckSum}'))"
|
||||||
Dim oTable As DataTable = Database.GetDatatable(oCheckCommand, MSSQLServer.TransactionMode.NoTransaction)
|
Dim oTable As DataTable = Database.GetDatatable(oCheckCommand, MSSQLServer.TransactionMode.NoTransaction)
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ Imports DigitalData.Modules.Interfaces.Exceptions
|
|||||||
Imports DigitalData.Modules.Interfaces.PropertyValues
|
Imports DigitalData.Modules.Interfaces.PropertyValues
|
||||||
Imports DigitalData.Modules.Jobs.Exceptions
|
Imports DigitalData.Modules.Jobs.Exceptions
|
||||||
Imports DigitalData.Modules.Logging
|
Imports DigitalData.Modules.Logging
|
||||||
|
Imports GdPicture14
|
||||||
|
|
||||||
Public Class ImportZUGFeRDFiles
|
Public Class ImportZUGFeRDFiles
|
||||||
Implements IJob
|
Implements IJob
|
||||||
@@ -27,10 +28,35 @@ Public Class ImportZUGFeRDFiles
|
|||||||
|
|
||||||
Private Const DIRECTORY_DONT_MOVE = "DIRECTORY_DONT_MOVE"
|
Private Const DIRECTORY_DONT_MOVE = "DIRECTORY_DONT_MOVE"
|
||||||
|
|
||||||
|
Private Const MIME_TYPE_PDF = "application/pdf"
|
||||||
|
Private Const MIME_TYPE_XLSX = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
|
||||||
|
Private Const MIME_TYPE_ODT = "application/vnd.oasis.opendocument.spreadsheet"
|
||||||
|
|
||||||
' List of allowed extensions for PDF/A Attachments
|
' List of allowed extensions for PDF/A Attachments
|
||||||
' This list should not contain xml so the zugferd xml file will be filtered out
|
' This list should not contain xml so the zugferd xml file will be filtered out
|
||||||
Private ReadOnly AllowedExtensions As New List(Of String) From {"docx", "doc", "pdf", "xls", "xlsx", "ppt", "pptx", "txt"}
|
Private ReadOnly AllowedExtensions As New List(Of String) From {"docx", "doc", "pdf", "xls", "xlsx", "ppt", "pptx", "txt"}
|
||||||
|
|
||||||
|
' List of the Columns we need to store embedded files on disk and database
|
||||||
|
Private ReadOnly EmbeddedFilesColumnNames As List(Of String) = New List(Of String) From {
|
||||||
|
"ATTACHMENT_FILE_FILENAME", "ATTACHMENT_FILE_VALUE", "ATTACHMENT_FILE_MIMECODE"
|
||||||
|
}
|
||||||
|
|
||||||
|
' List of the allowed MIME-Codes
|
||||||
|
' Allowed Values are:
|
||||||
|
'- application/pdf
|
||||||
|
'- application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (xlsx)
|
||||||
|
'- application/vnd.oasis.opendocument.spreadsheet (odt)
|
||||||
|
'- image/jpeg
|
||||||
|
'- image/png
|
||||||
|
'- image/tiff (UBL)
|
||||||
|
'- text/csv
|
||||||
|
'- text/xml (UBL)
|
||||||
|
Private ReadOnly AllowedMimeTypesInEmbeddedFiles As List(Of String) = New List(Of String) From {
|
||||||
|
MIME_TYPE_PDF,
|
||||||
|
MIME_TYPE_XLSX,
|
||||||
|
MIME_TYPE_ODT
|
||||||
|
}
|
||||||
|
|
||||||
Private ReadOnly _logger As Logger
|
Private ReadOnly _logger As Logger
|
||||||
Private ReadOnly _logConfig As LogConfig
|
Private ReadOnly _logConfig As LogConfig
|
||||||
Private ReadOnly _filesystem As FilesystemEx
|
Private ReadOnly _filesystem As FilesystemEx
|
||||||
@@ -563,7 +589,7 @@ Public Class ImportZUGFeRDFiles
|
|||||||
|
|
||||||
Try
|
Try
|
||||||
oDocument.ReceiptFileType = ZUGFeRDInterface.RECEIPT_TYPE_XML
|
oDocument.ReceiptFileType = ZUGFeRDInterface.RECEIPT_TYPE_XML
|
||||||
Dim sqlResult As Boolean = StoreXMLItemsInDatabase(pMessageId, oDocument, pFile, pConnections, pArgs)
|
Dim sqlResult As Boolean = StoreXMLItemsInDatabase(pMessageId, oDocument, pFile, pConnections, pArgs, oResult)
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
Throw ex
|
Throw ex
|
||||||
End Try
|
End Try
|
||||||
@@ -653,7 +679,7 @@ Public Class ImportZUGFeRDFiles
|
|||||||
|
|
||||||
Try
|
Try
|
||||||
oDocument.ReceiptFileType = ZUGFeRDInterface.RECEIPT_TYPE_PDF
|
oDocument.ReceiptFileType = ZUGFeRDInterface.RECEIPT_TYPE_PDF
|
||||||
Dim sqlResult As Boolean = StoreXMLItemsInDatabase(pMessageId, oDocument, pFile, pConnections, pArgs)
|
Dim sqlResult As Boolean = StoreXMLItemsInDatabase(pMessageId, oDocument, pFile, pConnections, pArgs, oResult)
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
Throw ex
|
Throw ex
|
||||||
End Try
|
End Try
|
||||||
@@ -670,7 +696,7 @@ Public Class ImportZUGFeRDFiles
|
|||||||
|
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Private Function StoreXMLItemsInDatabase(pMessageId As String, pDocument As ZUGFeRDInterface.ZugferdResult, pFile As FileInfo, pConnections As DatabaseConnections, pArgs As WorkerArgs) As Boolean
|
Private Function StoreXMLItemsInDatabase(pMessageId As String, pDocument As ZUGFeRDInterface.ZugferdResult, pFile As FileInfo, pConnections As DatabaseConnections, pArgs As WorkerArgs, pProcessFileResult As ProcessFileResult) As Boolean
|
||||||
' Check the document against the configured property map and return:
|
' Check the document against the configured property map and return:
|
||||||
' - a List of valid properties
|
' - a List of valid properties
|
||||||
' - a List of missing properties
|
' - a List of missing properties
|
||||||
@@ -693,39 +719,359 @@ Public Class ImportZUGFeRDFiles
|
|||||||
Throw New Exception("Bulk Insert failed! Exiting.")
|
Throw New Exception("Bulk Insert failed! Exiting.")
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' TODO hier BAUSTELLE
|
|
||||||
' Eingebettete Dateien speichern
|
' Eingebettete Dateien speichern
|
||||||
'If CreateEmbeddedFilesOnDisk(pMessageId, pDocument, pConnections, oCheckResult) = False Then
|
If HandleEmbeddedAttachments(pMessageId, pDocument, pConnections, oCheckResult, pArgs, pProcessFileResult) = False Then
|
||||||
' _logger.Debug("Files saving for MessageId [{0}] failed!", pMessageId)
|
_logger.Debug("Files saving for MessageId [{0}] failed!", pMessageId)
|
||||||
'End If
|
End If
|
||||||
|
|
||||||
Return True
|
Return True
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Private Function CreateEmbeddedFilesOnDisk(pMessageId As String, pDocument As ZUGFeRDInterface.ZugferdResult, pConnections As DatabaseConnections, pCheckResult As CheckPropertyValuesResult) As Boolean
|
''' <summary>
|
||||||
|
''' Hier werden die Dateianhänge behandelt, die im XML als base64 eingetragen wurden.
|
||||||
|
''' Die zusammengehörigen Knoten müssen über "FILES" gruppiert werden!
|
||||||
|
'''
|
||||||
|
''' Die erwarteten Knoten-Namen sind in der List EmbeddedFilesColumnNames enthalten!
|
||||||
|
''' </summary>
|
||||||
|
Private Function HandleEmbeddedAttachments(pMessageId As String, pDocument As ZUGFeRDInterface.ZugferdResult, pConnections As DatabaseConnections,
|
||||||
|
pCheckResult As CheckPropertyValuesResult, pArgs As WorkerArgs, pProcessFileResult As ProcessFileResult) As Boolean
|
||||||
|
|
||||||
' Finde alle Eintraege in pCheckResult mit Item_Type=3
|
If (pCheckResult Is Nothing) Then
|
||||||
' Finde Dateinamen (Index nach ~attm) und Dateityp. Wir speichern nur PDF.
|
_logger.Debug("pCheckResult is empty!")
|
||||||
' TODO Funktion aufrufen
|
Return True
|
||||||
'SaveBase64ToDisk("", "") = False Then
|
End If
|
||||||
|
|
||||||
|
If (CheckEmbeddedAttachmentEntries(pCheckResult) = False) Then
|
||||||
|
_logger.Debug("No embedded Files in XML found!")
|
||||||
|
Return True
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim embAttachmentList As List(Of ValidProperty) = pCheckResult.ValidProperties.Where(
|
||||||
|
Function(z)
|
||||||
|
Return EmbeddedFilesColumnNames.Contains(z.TableColumn)
|
||||||
|
End Function
|
||||||
|
).ToList()
|
||||||
|
|
||||||
|
If embAttachmentList Is Nothing OrElse embAttachmentList.Count <= 0 Then
|
||||||
|
_logger.Debug("No Fields for Embedded Files configured!")
|
||||||
|
Return True
|
||||||
|
End If
|
||||||
|
|
||||||
|
' GroupCounter Werte in Hashset eintragen, um distinct Werte zu erhalten
|
||||||
|
Dim oIndexList As HashSet(Of Integer) = New HashSet(Of Integer)
|
||||||
|
For Each resultItem In embAttachmentList
|
||||||
|
oIndexList.Add(resultItem.GroupCounter)
|
||||||
|
Next
|
||||||
|
|
||||||
|
Dim oOutputPath As String = GetOutputPathForEmbeddedAttachments(pArgs)
|
||||||
|
Dim nextAttachmentIndex As Integer = 0
|
||||||
|
nextAttachmentIndex = GetNextAttachmentIndex(pMessageId)
|
||||||
|
If nextAttachmentIndex <= 0 Then
|
||||||
|
nextAttachmentIndex = 1
|
||||||
|
End If
|
||||||
|
|
||||||
|
For Each groupIndex In oIndexList
|
||||||
|
|
||||||
|
Dim oMimeCodeString As String = String.Empty
|
||||||
|
Dim oOrgFilename As String = String.Empty
|
||||||
|
Dim oBase64String As String = String.Empty
|
||||||
|
|
||||||
|
Dim oMimeTypeProperty As ValidProperty = GetIndexProperty(embAttachmentList, groupIndex, "ATTACHMENT_FILE_MIMECODE")
|
||||||
|
|
||||||
|
If oMimeTypeProperty IsNot Nothing AndAlso oMimeTypeProperty.Value.IsNotNullOrEmpty() Then
|
||||||
|
oMimeCodeString = oMimeTypeProperty.Value.ToLower()
|
||||||
|
Else
|
||||||
|
_logger.Debug("Empty MIME-Code! File can not be stored!")
|
||||||
|
Continue For
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim oFilenameProperty As ValidProperty = GetIndexProperty(embAttachmentList, groupIndex, "ATTACHMENT_FILE_FILENAME")
|
||||||
|
If oFilenameProperty IsNot Nothing AndAlso oFilenameProperty.Value.IsNotNullOrEmpty() Then
|
||||||
|
oOrgFilename = oFilenameProperty.Value
|
||||||
|
Else
|
||||||
|
_logger.Debug("Empty Filename! File can not be stored!")
|
||||||
|
Continue For
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim oBase64ValueProperty As ValidProperty = GetIndexProperty(embAttachmentList, groupIndex, "ATTACHMENT_FILE_VALUE")
|
||||||
|
If oBase64ValueProperty IsNot Nothing AndAlso oBase64ValueProperty.Value.IsNotNullOrEmpty() Then
|
||||||
|
oBase64String = oBase64ValueProperty.Value
|
||||||
|
Else
|
||||||
|
_logger.Error("Empty base64 String! File can not be stored!")
|
||||||
|
Continue For
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim newAttachmentFilename = pMessageId + "~attm" + nextAttachmentIndex.ToString
|
||||||
|
|
||||||
|
Dim oFileExtension = GetEmbeddedFileExtension(oMimeTypeProperty.Value)
|
||||||
|
If oFileExtension.IsNotNullOrEmpty() Then
|
||||||
|
newAttachmentFilename += "." + oFileExtension
|
||||||
|
Else
|
||||||
|
_logger.Warn("No extension found! File can not be stored!")
|
||||||
|
Continue For
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim embeddedFilePath = Path.Combine(oOutputPath, newAttachmentFilename)
|
||||||
|
_logger.Debug("Next Attachment File is [{0}]", embeddedFilePath)
|
||||||
|
If SaveBase64ToDisk(embeddedFilePath, oBase64String) = True Then
|
||||||
|
_logger.Debug("Saved file [{0}] to disk", embeddedFilePath)
|
||||||
|
pProcessFileResult.EmailAttachmentFiles.Add(New FileInfo(embeddedFilePath))
|
||||||
|
Else
|
||||||
|
_logger.Error("Could not save File to Disk!")
|
||||||
|
Dim oReasonString = "Could not save file " + newAttachmentFilename + " to disk."
|
||||||
|
AddRejectedState(pMessageId, oReasonString, "EMBEDDED FILE CONSISTENCY NOT OK", "Info GUI", pConnections.SQLServerTransaction)
|
||||||
|
Continue For
|
||||||
|
End If
|
||||||
|
|
||||||
|
If TestFileOnDisk(embeddedFilePath, oMimeCodeString) = False Then
|
||||||
|
_logger.Error("Could not save File to Disk!")
|
||||||
|
Dim oReasonString = "Validation of file " + newAttachmentFilename + " on disk was NOT succesfully."
|
||||||
|
AddRejectedState(pMessageId, oReasonString, "EMBEDDED FILE CONSISTENCY NOT OK", "Info GUI", pConnections.SQLServerTransaction)
|
||||||
|
Continue For
|
||||||
|
End If
|
||||||
|
|
||||||
|
If InsertAttachmentHistoryEntry(pMessageId, oOrgFilename, embeddedFilePath) = False Then
|
||||||
|
_logger.Error("Could not save attachment Data to DB!")
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
|
||||||
|
If InsertEmbeddedFileDataToDB(pMessageId, oBase64String, oOrgFilename, oMimeCodeString, groupIndex) = False Then
|
||||||
|
_logger.Error("Could not save attachment Data to DB!")
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
|
||||||
|
nextAttachmentIndex += 1
|
||||||
|
Next
|
||||||
|
|
||||||
Return True
|
Return True
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Private Function SaveBase64ToDisk(pExportFilePath As String, pBase64String As String) As Boolean
|
Private Function TestFileOnDisk(pEmbeddedFilePath As String, pMimeCodeString As String) As Boolean
|
||||||
Try
|
Try
|
||||||
Dim base64BinaryDataString As String = pBase64String ' Hier Base64-String einfügen
|
If pMimeCodeString = MIME_TYPE_PDF Then
|
||||||
Dim binaryDataString As Byte() = System.Convert.FromBase64String(base64BinaryDataString)
|
Dim oGdPicturePDF As New GdPicturePDF
|
||||||
Dim oFilename As String = pExportFilePath
|
Dim oStatus As GdPictureStatus = oGdPicturePDF.LoadFromFile(pEmbeddedFilePath, True)
|
||||||
Dim Stream As System.IO.FileStream = New System.IO.FileStream(oFilename, System.IO.FileMode.Create)
|
If oStatus <> GdPictureStatus.OK Then
|
||||||
Stream.Write(binaryDataString, 0, binaryDataString.Length)
|
_logger.Error("File [{0}] has no proper state!", pEmbeddedFilePath)
|
||||||
Stream.Close()
|
Return False
|
||||||
Catch ex As Exception
|
End If
|
||||||
_logger.Error("Could NOT save File to Disk for MessageId [{0}] !", pExportFilePath)
|
|
||||||
|
|
||||||
|
Else
|
||||||
|
' Test other files
|
||||||
|
Dim fileInfo As FileInfo = New FileInfo(pEmbeddedFilePath)
|
||||||
|
If fileInfo.Exists = False Then
|
||||||
|
_logger.Error("Could not find File [{0}] on Disk!", pEmbeddedFilePath)
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
Return True
|
||||||
|
Catch ex As Exception
|
||||||
|
_logger.Error(ex)
|
||||||
|
Return False
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Private Function GetEmbeddedFileExtension(pMimeTypeValue As String) As String
|
||||||
|
|
||||||
|
If pMimeTypeValue.IsNullOrEmpty() Then
|
||||||
|
_logger.Warn("Empty MimeCode is not allowed!")
|
||||||
|
Return String.Empty
|
||||||
|
End If
|
||||||
|
|
||||||
|
Select Case pMimeTypeValue.ToLower()
|
||||||
|
Case MIME_TYPE_PDF
|
||||||
|
Return "pdf"
|
||||||
|
Case MIME_TYPE_XLSX
|
||||||
|
Return "xlsx"
|
||||||
|
Case MIME_TYPE_ODT
|
||||||
|
Return "odt"
|
||||||
|
Case "image/jpeg"
|
||||||
|
Return "jpg"
|
||||||
|
Case "image/png"
|
||||||
|
Return "png"
|
||||||
|
Case "image/tiff"
|
||||||
|
Return "tif"
|
||||||
|
Case "text/csv"
|
||||||
|
Return "csv"
|
||||||
|
Case "text/xml"
|
||||||
|
Return "xml"
|
||||||
|
Case Else
|
||||||
|
Return String.Empty
|
||||||
|
End Select
|
||||||
|
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Private Shared Function GetIndexProperty(pListResult As List(Of ValidProperty), pGroupIndex As Integer, pTableColumn As String) As ValidProperty
|
||||||
|
Return pListResult.Where(
|
||||||
|
Function(z)
|
||||||
|
Return z.GroupCounter = pGroupIndex AndAlso z.TableColumn = pTableColumn
|
||||||
|
End Function
|
||||||
|
).FirstOrDefault
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Speichert die Daten inkl. base64-String in die Datenbank
|
||||||
|
''' </summary>
|
||||||
|
Private Function InsertEmbeddedFileDataToDB(pMessageId As String, pItemValue As String, pOrgFilename As String, pMimeType As String, pGroupIndex As Integer) As Boolean
|
||||||
|
Try
|
||||||
|
Dim oCommand = New SqlCommand(
|
||||||
|
"INSERT INTO TBEDMI_ITEM_FILES (
|
||||||
|
REFERENCE_GUID,
|
||||||
|
ITEM_VALUE,
|
||||||
|
ORG_FILENAME,
|
||||||
|
MIME_TYPE,
|
||||||
|
GROUP_INDEX,
|
||||||
|
CREATED_WHO
|
||||||
|
) VALUES (
|
||||||
|
@MESSAGE_ID,
|
||||||
|
@ITEM_VALUE,
|
||||||
|
@ORG_FILENAME,
|
||||||
|
@MIME_TYPE,
|
||||||
|
@GROUP_INDEX,
|
||||||
|
@CREATED_WHO
|
||||||
|
)")
|
||||||
|
|
||||||
|
Dim fileBytes As Byte() = Convert.FromBase64String(pItemValue)
|
||||||
|
|
||||||
|
oCommand.Parameters.Add("MESSAGE_ID", SqlDbType.VarChar, 250).Value = pMessageId
|
||||||
|
oCommand.Parameters.Add("ITEM_VALUE", SqlDbType.VarBinary).Value = fileBytes
|
||||||
|
oCommand.Parameters.Add("ORG_FILENAME", SqlDbType.VarChar, 256).Value = pOrgFilename
|
||||||
|
oCommand.Parameters.Add("MIME_TYPE", SqlDbType.VarChar, 256).Value = pMimeType
|
||||||
|
oCommand.Parameters.Add("GROUP_INDEX", SqlDbType.Int).Value = pGroupIndex
|
||||||
|
oCommand.Parameters.Add("CREATED_WHO", SqlDbType.VarChar, 100).Value = "eInvoice Parser"
|
||||||
|
|
||||||
|
_mssql.ExecuteNonQuery(oCommand)
|
||||||
|
|
||||||
|
Return True
|
||||||
|
Catch ex As Exception
|
||||||
|
_logger.Error(ex)
|
||||||
|
Return False
|
||||||
End Try
|
End Try
|
||||||
|
|
||||||
Return True
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Ermittelt den Ausgabepfad für die eingebetteten Anhänge
|
||||||
|
''' </summary>
|
||||||
|
Private Function GetOutputPathForEmbeddedAttachments(pArgs As WorkerArgs) As String
|
||||||
|
Return pArgs.WatchDirectory
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Prüft, ob Embedded Attachments in den XML-Ergebnissen enthalten sind,
|
||||||
|
''' in dem geprüft wird, ob bestimmte MIME-Codes vorhanden sind.
|
||||||
|
''' </summary>
|
||||||
|
''' <param name="pCheckResult"></param>
|
||||||
|
''' <returns></returns>
|
||||||
|
Private Function CheckEmbeddedAttachmentEntries(pCheckResult As CheckPropertyValuesResult) As Boolean
|
||||||
|
|
||||||
|
Try
|
||||||
|
Dim resultList = pCheckResult.ValidProperties.Where(
|
||||||
|
Function(z)
|
||||||
|
Return (z.TableColumn = "ATTACHMENT_FILE_MIMECODE" AndAlso AllowedMimeTypesInEmbeddedFiles.Contains(z.Value.ToLower()))
|
||||||
|
End Function
|
||||||
|
).ToList()
|
||||||
|
|
||||||
|
If resultList.Count > 0 Then
|
||||||
|
_logger.Info("Found [{0}] embedded XML-Attachments.", resultList.Count)
|
||||||
|
Return True
|
||||||
|
Else
|
||||||
|
_logger.Info("No embedded XML-Attachments found.")
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
Catch ex As Exception
|
||||||
|
_logger.Error("Error searching pCheckResult! {0}", ex.Message)
|
||||||
|
Return False
|
||||||
|
End Try
|
||||||
|
|
||||||
|
End Function
|
||||||
|
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Speichere base64 als Datei auf der Platte ab.
|
||||||
|
''' </summary>
|
||||||
|
Private Function SaveBase64ToDisk(pExportFilePath As String, pBase64String As String) As Boolean
|
||||||
|
|
||||||
|
Try
|
||||||
|
Dim oFilename As String = pExportFilePath
|
||||||
|
Dim base64BinaryDataString As String = pBase64String
|
||||||
|
Dim binaryDataString As Byte() = Convert.FromBase64String(base64BinaryDataString)
|
||||||
|
|
||||||
|
' Using verwenden, um blockieren der Datei zu verhindern
|
||||||
|
Using fs = New FileStream(oFilename, FileMode.Create, FileAccess.ReadWrite)
|
||||||
|
fs.Write(binaryDataString, 0, binaryDataString.Length)
|
||||||
|
fs.Flush()
|
||||||
|
fs.Close()
|
||||||
|
End Using
|
||||||
|
|
||||||
|
Return True
|
||||||
|
|
||||||
|
Catch ex As Exception
|
||||||
|
_logger.Error("Could NOT save File [{0}] to Disk! Exception: [{1}]", pExportFilePath, ex.Message)
|
||||||
|
Return False
|
||||||
|
End Try
|
||||||
|
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Die Methode lädt die bisherigen Dateinamen zu einer MessageID
|
||||||
|
''' Die Datei mit dem höchsten Index gibt den folgenden Index vor.
|
||||||
|
''' </summary>
|
||||||
|
''' <returns>Nächster Attachment Index</returns>
|
||||||
|
Private Function GetNextAttachmentIndex(pMessageId As String) As Integer
|
||||||
|
Try
|
||||||
|
Dim oSQL = $"SELECT count(*) FROM TBEMLP_HISTORY_ATTACHMENT WHERE EMAIL_MSGID = '{pMessageId}'"
|
||||||
|
|
||||||
|
Dim sqlResult = _mssql.GetScalarValue(oSQL)
|
||||||
|
If sqlResult = 0 Then
|
||||||
|
sqlResult = 1 ' Kleinster Index = 1
|
||||||
|
End If
|
||||||
|
|
||||||
|
Return sqlResult
|
||||||
|
Catch ex As Exception
|
||||||
|
_logger.Error(ex)
|
||||||
|
Throw ex
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Speichert die Infos zu einem embedded Dateianhang in die DB.
|
||||||
|
''' Mangels EMail-Daten werden die EMail-Felder (FROM, BODY, usw.) nicht gefüllt
|
||||||
|
''' </summary>
|
||||||
|
''' <returns>true, wenn erfolgreich</returns>
|
||||||
|
Private Function InsertAttachmentHistoryEntry(pMessageId As String, pFileName As String, pNewFileName As String) As Boolean
|
||||||
|
|
||||||
|
Try
|
||||||
|
Dim oCommand = New SqlCommand(
|
||||||
|
"INSERT INTO TBEMLP_HISTORY_ATTACHMENT (
|
||||||
|
WORK_PROCESS,
|
||||||
|
EMAIL_MSGID,
|
||||||
|
EMAIL_ATTMT,
|
||||||
|
EMAIL_ATTMT_INDEX,
|
||||||
|
EMAIL_FROM,
|
||||||
|
EMAIL_BODY
|
||||||
|
) VALUES (
|
||||||
|
@WORK_PROCESS,
|
||||||
|
@MESSAGE_ID,
|
||||||
|
@ATTACHMENT,
|
||||||
|
@ATTACHMENT_INDEX,
|
||||||
|
'-',
|
||||||
|
'-'
|
||||||
|
)")
|
||||||
|
|
||||||
|
oCommand.Parameters.Add("WORK_PROCESS", SqlDbType.VarChar, 100).Value = "Attachment Sniffer (Embedded Files)"
|
||||||
|
oCommand.Parameters.Add("MESSAGE_ID", SqlDbType.VarChar, 500).Value = pMessageId
|
||||||
|
oCommand.Parameters.Add("ATTACHMENT", SqlDbType.VarChar, 500).Value = pFileName
|
||||||
|
oCommand.Parameters.Add("ATTACHMENT_INDEX", SqlDbType.VarChar, 500).Value = pNewFileName
|
||||||
|
|
||||||
|
_mssql.ExecuteNonQuery(oCommand)
|
||||||
|
|
||||||
|
Return True
|
||||||
|
Catch ex As Exception
|
||||||
|
_logger.Error(ex)
|
||||||
|
Return False
|
||||||
|
End Try
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Private Function BulkInsertDataToDatabase(pMessageId As String, pDocument As ZUGFeRDInterface.ZugferdResult, pConnections As DatabaseConnections, pCheckResults As CheckPropertyValuesResult) As Boolean
|
Private Function BulkInsertDataToDatabase(pMessageId As String, pDocument As ZUGFeRDInterface.ZugferdResult, pConnections As DatabaseConnections, pCheckResults As CheckPropertyValuesResult) As Boolean
|
||||||
@@ -848,6 +1194,15 @@ Public Class ImportZUGFeRDFiles
|
|||||||
_logger.Warn("Step [{0}] with SQL [{1}] was not successful.", oStep, oDelSQL)
|
_logger.Warn("Step [{0}] with SQL [{1}] was not successful.", oStep, oDelSQL)
|
||||||
End Try
|
End Try
|
||||||
|
|
||||||
|
Try
|
||||||
|
oDelSQL = $"DELETE FROM TBEDMI_ITEM_FILES where REFERENCE_GUID = '{pMessageId}'"
|
||||||
|
oStep = "TBEDMI_ITEM_FILES Delete MessageID Items"
|
||||||
|
Dim retValue As Boolean = _mssql.ExecuteNonQueryWithConnectionObject(oDelSQL, pConnections.SQLServerConnection, MSSQLServer.TransactionMode.ExternalTransaction, pConnections.SQLServerTransaction)
|
||||||
|
Return retValue
|
||||||
|
Catch ex As Exception
|
||||||
|
_logger.Warn("Step [{0}] with SQL [{1}] was not successful.", oStep, oDelSQL)
|
||||||
|
End Try
|
||||||
|
|
||||||
Return False
|
Return False
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
@@ -871,6 +1226,10 @@ Public Class ImportZUGFeRDFiles
|
|||||||
Return True
|
Return True
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Fügt neue Datensätze in Tabelle TBEMLP_HISTORY_STATE ein,
|
||||||
|
''' per Prozedur DD_ECM.[dbo].[PRCUST_ADD_HISTORY_STATE]
|
||||||
|
''' </summary>
|
||||||
Private Sub AddRejectedState(pMessageID As String, pTitle As String, pTitle1 As String, pComment As String, pTransaction As SqlTransaction)
|
Private Sub AddRejectedState(pMessageID As String, pTitle As String, pTitle1 As String, pComment As String, pTransaction As SqlTransaction)
|
||||||
Try
|
Try
|
||||||
'PRCUST_ADD_HISTORY_STATE: @MessageID VARCHAR(250), @TITLE1 VARCHAR(250), @TITLE2 VARCHAR(250)
|
'PRCUST_ADD_HISTORY_STATE: @MessageID VARCHAR(250), @TITLE1 VARCHAR(250), @TITLE2 VARCHAR(250)
|
||||||
@@ -880,4 +1239,5 @@ Public Class ImportZUGFeRDFiles
|
|||||||
_logger.Error(ex)
|
_logger.Error(ex)
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@@ -87,7 +87,6 @@ Public Class XRechnungViewDocument
|
|||||||
Dim oIndex As Integer = 0
|
Dim oIndex As Integer = 0
|
||||||
Dim oYPlus As Integer = 0
|
Dim oYPlus As Integer = 0
|
||||||
Dim oCreateTextBox As Boolean = False
|
Dim oCreateTextBox As Boolean = False
|
||||||
Dim oPosRowY As Integer = 0
|
|
||||||
For Each oRow As DataRow In pDTItemValues.Rows
|
For Each oRow As DataRow In pDTItemValues.Rows
|
||||||
Dim Y_eq_lastrow As Boolean = CBool(oRow.Item("Y_eq_lastrow"))
|
Dim Y_eq_lastrow As Boolean = CBool(oRow.Item("Y_eq_lastrow"))
|
||||||
Dim oRowCaption As String = oRow.Item("Row_Caption")
|
Dim oRowCaption As String = oRow.Item("Row_Caption")
|
||||||
@@ -130,30 +129,27 @@ Public Class XRechnungViewDocument
|
|||||||
If oArea = "TYPE" Then
|
If oArea = "TYPE" Then
|
||||||
oAREACaption = $"{Return_InvType(oItemValue)} [{oItemValue}]"
|
oAREACaption = $"{Return_InvType(oItemValue)} [{oItemValue}]"
|
||||||
ElseIf oArea = "SELLER" Then
|
ElseIf oArea = "SELLER" Then
|
||||||
oAREACaption = "Verkäufer/Seller:"
|
oAREACaption = "Verkäufer / Seller:"
|
||||||
ElseIf oArea = "BUYER" Then
|
ElseIf oArea = "BUYER" Then
|
||||||
oAREACaption = "Käufer/Buyer:"
|
oAREACaption = "Käufer / Buyer:"
|
||||||
ElseIf oArea = "POSITION" Then
|
ElseIf oArea = "POSITION" Then
|
||||||
oAREACaption = "Positionen/Positions:"
|
oAREACaption = "Positionen / Positions:"
|
||||||
oIsPosition = True
|
oIsPosition = True
|
||||||
ElseIf oArea = "AMOUNT" Then
|
ElseIf oArea = "AMOUNT" Then
|
||||||
oAREACaption = "Beträge/Amounts:"
|
oAREACaption = "Beträge / Amounts:"
|
||||||
oCreateTextBox = True
|
oCreateTextBox = True
|
||||||
ElseIf oArea = "TAXPOS" Then
|
ElseIf oArea = "TAXPOS" Then
|
||||||
oAREACaption = "Steuerbeträge/Tax amounts:"
|
oAREACaption = "Steuerbeträge / Tax amounts:"
|
||||||
oIsPosition = True
|
oIsPosition = True
|
||||||
ElseIf oArea = "PAYMENT" Then
|
ElseIf oArea = "PAYMENT" Then
|
||||||
oAREACaption = "Zahlungsinformationen/Payment details:"
|
oAREACaption = "Zahlungsinformationen / Payment details:"
|
||||||
ElseIf oArea = "EXEMPTION" Then
|
ElseIf oArea = "EXEMPTION" Then
|
||||||
oAREACaption = "USt.-Befreiungsgrund/Exemption reason:"
|
oAREACaption = "UST.-Befreiungsgrund / Exemption reason:"
|
||||||
Else
|
Else
|
||||||
oAREACaption = String.Empty
|
oAREACaption = String.Empty
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If Not oAREACaption = String.Empty Then
|
If Not oAREACaption = String.Empty Then
|
||||||
If oArea = "AMOUNT" Then
|
|
||||||
Dim oY = yPosition
|
|
||||||
End If
|
|
||||||
'erste Area-Linie
|
'erste Area-Linie
|
||||||
yPosition += 5
|
yPosition += 5
|
||||||
MyGDPicturePDF.DrawLine(10, yPosition, oWidthLine, yPosition)
|
MyGDPicturePDF.DrawLine(10, yPosition, oWidthLine, yPosition)
|
||||||
@@ -190,12 +186,20 @@ Public Class XRechnungViewDocument
|
|||||||
oIsPosition = True
|
oIsPosition = True
|
||||||
If oItemSPECNAME = "INVOICE_POSITION_AMOUNT" Then
|
If oItemSPECNAME = "INVOICE_POSITION_AMOUNT" Then
|
||||||
oPosCount += 1
|
oPosCount += 1
|
||||||
|
'oPosTerm = $"{oPosCount}. {oItemValue} * "
|
||||||
|
'oItemValue = oPosTerm
|
||||||
|
'Tabellendarstellung
|
||||||
oPosTerm = ""
|
oPosTerm = ""
|
||||||
oPosRowY = yPosition
|
|
||||||
MyGDPicturePDF.DrawText(fontResName, 10, yPosition, oPosCount)
|
MyGDPicturePDF.DrawText(fontResName, 10, yPosition, oPosCount)
|
||||||
|
'
|
||||||
|
'Dim otextBoxYPos As Integer = yPosition - 3.5
|
||||||
|
'MyGDPicturePDF.DrawTextBox(fontResName, 10, otextBoxYPos, 16, YCoo_TextBoxPlus5(otextBoxYPos),
|
||||||
|
' TextAlignment.TextAlignmentFar, TextAlignment.TextAlignmentNear,
|
||||||
|
' oPosCount)
|
||||||
MyGDPicturePDF.DrawText(fontResName, 19, yPosition, oItemValue)
|
MyGDPicturePDF.DrawText(fontResName, 19, yPosition, oItemValue)
|
||||||
|
'Tabellendarstellung Ende
|
||||||
oDisplay = False
|
oDisplay = False
|
||||||
|
' yPosition -= 5
|
||||||
End If
|
End If
|
||||||
ElseIf oArea = "TAXPOS" Then
|
ElseIf oArea = "TAXPOS" Then
|
||||||
oIsPosition = True
|
oIsPosition = True
|
||||||
@@ -215,13 +219,17 @@ Public Class XRechnungViewDocument
|
|||||||
If oArea = "POSITION" Then
|
If oArea = "POSITION" Then
|
||||||
If oItemSPECNAME = "INVOICE_POSITION_AMOUNT" Then
|
If oItemSPECNAME = "INVOICE_POSITION_AMOUNT" Then
|
||||||
oPosCount += 1
|
oPosCount += 1
|
||||||
yPosition += 5
|
|
||||||
oYPlus = 0
|
oYPlus = 0
|
||||||
|
'Tabellendarstellung
|
||||||
|
yPosition += 5
|
||||||
oPosTerm = ""
|
oPosTerm = ""
|
||||||
MyGDPicturePDF.DrawText(fontResName, 10, yPosition, oPosCount)
|
MyGDPicturePDF.DrawText(fontResName, 10, yPosition, oPosCount)
|
||||||
oPosRowY = yPosition
|
'otextBoxYPos = yPosition - 3.5
|
||||||
|
'MyGDPicturePDF.DrawTextBox(fontResName, 10, otextBoxYPos, 16, YCoo_TextBoxPlus5(otextBoxYPos),
|
||||||
|
' TextAlignment.TextAlignmentFar, TextAlignment.TextAlignmentNear,
|
||||||
|
' oPosCount)
|
||||||
MyGDPicturePDF.DrawText(fontResName, 19, yPosition, oItemValue)
|
MyGDPicturePDF.DrawText(fontResName, 19, yPosition, oItemValue)
|
||||||
|
'Tabellendarstellung Ende
|
||||||
oDisplay = False
|
oDisplay = False
|
||||||
ElseIf oItemSPECNAME = "INVOICE_POSITION_UNIT_TYPE" Then
|
ElseIf oItemSPECNAME = "INVOICE_POSITION_UNIT_TYPE" Then
|
||||||
oYPlus = 0
|
oYPlus = 0
|
||||||
@@ -229,11 +237,11 @@ Public Class XRechnungViewDocument
|
|||||||
MyGDPicturePDF.DrawText(fontResName, 35, yPosition, oUnit)
|
MyGDPicturePDF.DrawText(fontResName, 35, yPosition, oUnit)
|
||||||
oDisplay = False
|
oDisplay = False
|
||||||
ElseIf oItemSPECNAME = "INVOICE_POSITION_ARTICLE" Then
|
ElseIf oItemSPECNAME = "INVOICE_POSITION_ARTICLE" Then
|
||||||
|
'Tabellendarstellung
|
||||||
oYPlus = 0
|
oYPlus = 0
|
||||||
oPosDesc = ""
|
oPosDesc = ""
|
||||||
oPosDesc = oItemValue
|
oPosDesc = oItemValue
|
||||||
Dim oYDyn As Integer = yPosition - 5
|
Dim oYDyn As Integer = yPosition - 5
|
||||||
|
|
||||||
Dim oPartsNL As List(Of String) = StringFunctions.SplitTextByNewLine(oItemValue)
|
Dim oPartsNL As List(Of String) = StringFunctions.SplitTextByNewLine(oItemValue)
|
||||||
For Each olinepart As String In oPartsNL
|
For Each olinepart As String In oPartsNL
|
||||||
Dim oParts As List(Of String) = StringFunctions.SplitText_Length(olinepart, 67)
|
Dim oParts As List(Of String) = StringFunctions.SplitText_Length(olinepart, 67)
|
||||||
@@ -244,15 +252,14 @@ Public Class XRechnungViewDocument
|
|||||||
MyGDPicturePDF.DrawText(fontResName, 50, oYDyn, part)
|
MyGDPicturePDF.DrawText(fontResName, 50, oYDyn, part)
|
||||||
Next
|
Next
|
||||||
Next
|
Next
|
||||||
yPosition = oYDyn
|
'Tabellendarstellung Ende
|
||||||
|
' oPosTerm += $" {oItemValue}"
|
||||||
oDisplay = False
|
oDisplay = False
|
||||||
ElseIf oItemSPECNAME = "INVOICE_POSITION_ARTICLE_DESCRIPTION" Or
|
ElseIf oItemSPECNAME = "INVOICE_POSITION_NOTE" Then
|
||||||
oItemSPECNAME = "INVOICE_POSITION_NOTE" Then
|
'Tabellendarstellung
|
||||||
_logger.Debug($"oItemSPECNAME: {oItemSPECNAME}")
|
Dim cleanedText As String = RemoveNewlinesAndTabs(oItemValue)
|
||||||
|
Dim oParts As List(Of String) = StringFunctions.SplitText_Length(cleanedText, 70)
|
||||||
'Dim cleanedText As String = RemoveNewlinesAndTabs(oItemValue)
|
' Durchlaufen der einzelnen Teile in einer Schleife
|
||||||
'Dim oParts As List(Of String) = StringFunctions.SplitText_Length(cleanedText, 70)
|
|
||||||
'' Durchlaufen der einzelnen Teile in einer Schleife
|
|
||||||
Dim oYDyn As Integer = yPosition
|
Dim oYDyn As Integer = yPosition
|
||||||
Dim oPartsNL As List(Of String) = StringFunctions.SplitTextByNewLine(oItemValue)
|
Dim oPartsNL As List(Of String) = StringFunctions.SplitTextByNewLine(oItemValue)
|
||||||
For Each olinepart As String In oPartsNL
|
For Each olinepart As String In oPartsNL
|
||||||
@@ -264,17 +271,37 @@ Public Class XRechnungViewDocument
|
|||||||
MyGDPicturePDF.DrawText(fontResName, 50, oYDyn, part)
|
MyGDPicturePDF.DrawText(fontResName, 50, oYDyn, part)
|
||||||
Next
|
Next
|
||||||
Next
|
Next
|
||||||
yPosition = oYDyn
|
|
||||||
|
|
||||||
|
'oPosTerm += $" {oItemValue}"
|
||||||
oDisplay = False
|
oDisplay = False
|
||||||
|
ElseIf oItemSPECNAME = "INVOICE_POSITION_ARTICLE_DESCRIPTION" Then
|
||||||
|
'Tabellendarstellung
|
||||||
|
Dim cleanedText As String = RemoveNewlinesAndTabs(oItemValue)
|
||||||
|
Dim oParts As List(Of String) = StringFunctions.SplitText_Length(cleanedText, 70)
|
||||||
|
' Durchlaufen der einzelnen Teile in einer Schleife
|
||||||
|
Dim oYDyn As Integer = yPosition
|
||||||
|
Dim oPartsNL As List(Of String) = StringFunctions.SplitTextByNewLine(oItemValue)
|
||||||
|
For Each olinepart As String In oPartsNL
|
||||||
|
Dim oPartsPN As List(Of String) = StringFunctions.SplitText_Length(olinepart, 70)
|
||||||
|
' Durchlaufen der einzelnen Teile in einer Schleife
|
||||||
|
For Each part As String In oPartsPN
|
||||||
|
oYDyn += 5
|
||||||
|
oYPlus += 5
|
||||||
|
MyGDPicturePDF.DrawText(fontResName, 50, oYDyn, part)
|
||||||
|
Next
|
||||||
|
Next
|
||||||
|
|
||||||
|
'oPosTerm += $" {oItemValue}"
|
||||||
|
oDisplay = False
|
||||||
ElseIf oItemSPECNAME = "INVOICE_TAXPOS_TAX_RATE" Or oItemSPECNAME = "INVOICE_TAXPOS_RATE" Then
|
ElseIf oItemSPECNAME = "INVOICE_TAXPOS_TAX_RATE" Or oItemSPECNAME = "INVOICE_TAXPOS_RATE" Then
|
||||||
|
'Tabellendarstellung
|
||||||
MyGDPicturePDF.DrawText(fontResName, 164, oPosRowY, $"{oItemValue} %")
|
MyGDPicturePDF.DrawText(fontResName, 164, yPosition, $"{oItemValue} %")
|
||||||
|
'Tabellendarstellung ENDE
|
||||||
|
' oPosTerm += $" - {oItemValue} %"
|
||||||
oDisplay = False
|
oDisplay = False
|
||||||
ElseIf oItemSPECNAME = "INVOICE_POSITION_TAX_AMOUNT" Then
|
ElseIf oItemSPECNAME = "INVOICE_POSITION_TAX_AMOUNT" Then
|
||||||
|
'Tabellendarstellung
|
||||||
Dim oYPos = oPosRowY - 3.5
|
Dim oYPos = yPosition - 3.5
|
||||||
Dim oBetrag As Decimal = oItemValue
|
Dim oBetrag As Decimal = oItemValue
|
||||||
Dim oFormatiert As String = oBetrag.ToString("N2", New Globalization.CultureInfo("de-DE"))
|
Dim oFormatiert As String = oBetrag.ToString("N2", New Globalization.CultureInfo("de-DE"))
|
||||||
|
|
||||||
@@ -282,7 +309,9 @@ Public Class XRechnungViewDocument
|
|||||||
MyGDPicturePDF.DrawTextBox(fontResName, 177, oYPos, 198, YCoo_TextBoxPlus5(oYPos),
|
MyGDPicturePDF.DrawTextBox(fontResName, 177, oYPos, 198, YCoo_TextBoxPlus5(oYPos),
|
||||||
TextAlignment.TextAlignmentFar, TextAlignment.TextAlignmentNear,
|
TextAlignment.TextAlignmentFar, TextAlignment.TextAlignmentNear,
|
||||||
TAXTERM)
|
TAXTERM)
|
||||||
oDisplay = False
|
' MyGDPicturePDF.DrawText(fontResName, 180, yPosition, $"{oItemValue} {oCurrencySymbol}")
|
||||||
|
|
||||||
|
'Tabellendarstellung Ende
|
||||||
End If
|
End If
|
||||||
oItemValue = oPosTerm
|
oItemValue = oPosTerm
|
||||||
ElseIf oArea = "HEAD" Then
|
ElseIf oArea = "HEAD" Then
|
||||||
@@ -362,12 +391,12 @@ Public Class XRechnungViewDocument
|
|||||||
|
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
'Else
|
Else
|
||||||
' 'Tabellendarstellung
|
'Tabellendarstellung
|
||||||
' If oItemSPECNAME = "INVOICE_POSITION_TAX_AMOUNT" And oYPlus > 0 Then
|
If oItemSPECNAME = "INVOICE_POSITION_TAX_AMOUNT" And oYPlus > 0 Then
|
||||||
' yPosition += oYPlus - 5
|
yPosition += oYPlus - 5
|
||||||
' End If
|
End If
|
||||||
' 'Tabellendarstellung Ende
|
'Tabellendarstellung Ende
|
||||||
End If
|
End If
|
||||||
oIndex += 1
|
oIndex += 1
|
||||||
Next
|
Next
|
||||||
|
|||||||
@@ -44,10 +44,6 @@
|
|||||||
<OptionInfer>On</OptionInfer>
|
<OptionInfer>On</OptionInfer>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="DigitalData.Modules.Logging, Version=2.6.3.0, Culture=neutral, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\Logging\bin\Debug\DigitalData.Modules.Logging.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="Microsoft.CSharp" />
|
<Reference Include="Microsoft.CSharp" />
|
||||||
<Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
<Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NLog.5.0.5\lib\net46\NLog.dll</HintPath>
|
<HintPath>..\packages\NLog.5.0.5\lib\net46\NLog.dll</HintPath>
|
||||||
@@ -125,6 +121,12 @@
|
|||||||
</None>
|
</None>
|
||||||
<None Include="packages.config" />
|
<None Include="packages.config" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\Logging\Logging.vbproj">
|
||||||
|
<Project>{903b2d7d-3b80-4be9-8713-7447b704e1b0}</Project>
|
||||||
|
<Name>Logging</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<PostBuildEvent>powershell.exe -command "& { &'$(SolutionDir)copy-binary.ps1' '$(TargetPath)' '$(TargetFileName)' '$(ConfigurationName)' '$(ProjectName)' }"</PostBuildEvent>
|
<PostBuildEvent>powershell.exe -command "& { &'$(SolutionDir)copy-binary.ps1' '$(TargetPath)' '$(TargetFileName)' '$(ConfigurationName)' '$(ProjectName)' }"</PostBuildEvent>
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ Imports Limilabs.Client
|
|||||||
Imports Limilabs.Client.IMAP
|
Imports Limilabs.Client.IMAP
|
||||||
Imports Limilabs.Client.SMTP
|
Imports Limilabs.Client.SMTP
|
||||||
Imports Microsoft.Identity.Client
|
Imports Microsoft.Identity.Client
|
||||||
Imports NLog
|
|
||||||
|
|
||||||
Namespace Mail
|
Namespace Mail
|
||||||
Public Class MailSession
|
Public Class MailSession
|
||||||
@@ -19,7 +18,6 @@ Namespace Mail
|
|||||||
Public Const AUTH_SSLTLS = "SSL/TLS"
|
Public Const AUTH_SSLTLS = "SSL/TLS"
|
||||||
Public Const AUTH_NONE = "NONE"
|
Public Const AUTH_NONE = "NONE"
|
||||||
Public Const AUTH_OAUTH2 = "OAUTH2"
|
Public Const AUTH_OAUTH2 = "OAUTH2"
|
||||||
Public Const SSLProtocol_TLS12 = "TLS12"
|
|
||||||
|
|
||||||
Private Const SMTP_IGNORED_ERRORS As SslPolicyErrors =
|
Private Const SMTP_IGNORED_ERRORS As SslPolicyErrors =
|
||||||
SslPolicyErrors.RemoteCertificateChainErrors Or ' self-signed
|
SslPolicyErrors.RemoteCertificateChainErrors Or ' self-signed
|
||||||
@@ -80,14 +78,12 @@ Namespace Mail
|
|||||||
.AuthType = pAuthType
|
.AuthType = pAuthType
|
||||||
}
|
}
|
||||||
|
|
||||||
Logger.Debug("ConnectToServerWithBasicAuth..")
|
Logger.Debug("Connecting to Server..")
|
||||||
Logger.Debug("Server: [{0}]", oSession.Server)
|
Logger.Debug("Server: [{0}]", oSession.Server)
|
||||||
Logger.Debug("Port: [{0}]", oSession.Port)
|
Logger.Debug("Port: [{0}]", oSession.Port)
|
||||||
Logger.Debug("User: [{0}]", oSession.User)
|
Logger.Debug("User: [{0}]", oSession.User)
|
||||||
Logger.Debug("AuthType: [{0}]", oSession.AuthType)
|
Logger.Debug("AuthType: [{0}]", oSession.AuthType)
|
||||||
Logger.Debug($"_Config.TlsVersion.EnableTls1_1 = [{pOptions.EnableTls1_1}]")
|
|
||||||
Logger.Debug($"_Config.TlsVersion.EnableTls1_2 = [{pOptions.EnableTls1_2}]")
|
|
||||||
Logger.Debug($"_Config.TlsVersion.EnableDefault = [{pOptions.EnableDefault}]")
|
|
||||||
_Session = oSession
|
_Session = oSession
|
||||||
|
|
||||||
Logger.Debug("Initializing Connection with Auth type [{0}].", oSession.AuthType)
|
Logger.Debug("Initializing Connection with Auth type [{0}].", oSession.AuthType)
|
||||||
@@ -132,14 +128,16 @@ Namespace Mail
|
|||||||
|
|
||||||
' Set TLS Version manually if requested
|
' Set TLS Version manually if requested
|
||||||
If pOptions.EnableTls1_1 Then
|
If pOptions.EnableTls1_1 Then
|
||||||
Logger.Debug("Enabling TLS Version 1.1...")
|
Logger.Debug("Enabling TLS Version 1.1")
|
||||||
Client.SSLConfiguration.EnabledSslProtocols = Client.SSLConfiguration.EnabledSslProtocols Or Security.Authentication.SslProtocols.Tls11
|
Client.SSLConfiguration.EnabledSslProtocols = Client.SSLConfiguration.EnabledSslProtocols Or Security.Authentication.SslProtocols.Tls11
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If pOptions.EnableTls1_2 Then
|
If pOptions.EnableTls1_2 Then
|
||||||
Logger.Debug("Enabling TLS Version 1.2...")
|
Logger.Debug("Enabling TLS Version 1.2")
|
||||||
Client.SSLConfiguration.EnabledSslProtocols = Security.Authentication.SslProtocols.Tls12
|
Client.SSLConfiguration.EnabledSslProtocols = Client.SSLConfiguration.EnabledSslProtocols Or Security.Authentication.SslProtocols.Tls12
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
' This is not available in .NET 4.6.2, only in .NET 4.7/4.8
|
||||||
'If pOptions.EnableTls1_3 Then
|
'If pOptions.EnableTls1_3 Then
|
||||||
' Logger.Debug("Enabling TLS Version 1.3")
|
' Logger.Debug("Enabling TLS Version 1.3")
|
||||||
' oSession.SSLConfiguration.EnabledSslProtocols = oSession.SSLConfiguration.EnabledSslProtocols Or Security.Authentication.SslProtocols.Tls13
|
' oSession.SSLConfiguration.EnabledSslProtocols = oSession.SSLConfiguration.EnabledSslProtocols Or Security.Authentication.SslProtocols.Tls13
|
||||||
@@ -191,9 +189,7 @@ Namespace Mail
|
|||||||
ElseIf Session.AuthType = AUTH_SSLTLS Or Session.AuthType = AUTH_STARTTLS Then
|
ElseIf Session.AuthType = AUTH_SSLTLS Or Session.AuthType = AUTH_STARTTLS Then
|
||||||
|
|
||||||
Try
|
Try
|
||||||
Logger.Debug("Client.SSLConfiguration.EnabledSslProtocols is [{0}]", Client.SSLConfiguration.EnabledSslProtocols.ToString)
|
|
||||||
If pSession.Port = 993 Then
|
If pSession.Port = 993 Then
|
||||||
Logger.Debug("Port is 993 - So Client.ConnectSSL will be used!")
|
|
||||||
Logger.Debug("Connecting with [STARTTLS/ConnectSSL] on [{0}/{1}]", pSession.Server, pSession.Port)
|
Logger.Debug("Connecting with [STARTTLS/ConnectSSL] on [{0}/{1}]", pSession.Server, pSession.Port)
|
||||||
Client.ConnectSSL(pSession.Server, pSession.Port)
|
Client.ConnectSSL(pSession.Server, pSession.Port)
|
||||||
Else
|
Else
|
||||||
|
|||||||
@@ -44,13 +44,8 @@
|
|||||||
<OptionInfer>On</OptionInfer>
|
<OptionInfer>On</OptionInfer>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="DigitalData.Modules.Base, Version=1.3.9.0, Culture=neutral, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\Base\bin\Debug\DigitalData.Modules.Base.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="DigitalData.Modules.Logging, Version=2.6.5.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="DigitalData.Modules.Logging, Version=2.6.5.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<SpecificVersion>False</SpecificVersion>
|
<HintPath>..\packages\DigitalData.Modules.Logging.2.6.5\lib\net462\DigitalData.Modules.Logging.dll</HintPath>
|
||||||
<HintPath>..\Logging\bin\Debug\DigitalData.Modules.Logging.dll</HintPath>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Mail">
|
<Reference Include="Mail">
|
||||||
<HintPath>P:\Visual Studio Projekte\Bibliotheken\Limilabs\Mail.dll\Mail.dll</HintPath>
|
<HintPath>P:\Visual Studio Projekte\Bibliotheken\Limilabs\Mail.dll\Mail.dll</HintPath>
|
||||||
@@ -143,6 +138,12 @@
|
|||||||
</None>
|
</None>
|
||||||
<None Include="packages.config" />
|
<None Include="packages.config" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\Base\Base.vbproj">
|
||||||
|
<Project>{6ea0c51f-c2b1-4462-8198-3de0b32b74f8}</Project>
|
||||||
|
<Name>Base</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Content Include="MailLicense.xml">
|
<Content Include="MailLicense.xml">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
|||||||
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
|
|||||||
' übernehmen, indem Sie "*" eingeben:
|
' übernehmen, indem Sie "*" eingeben:
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
' <Assembly: AssemblyVersion("1.0.*")>
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("2.0.0.0")>
|
<Assembly: AssemblyVersion("1.9.8.0")>
|
||||||
<Assembly: AssemblyFileVersion("2.0.0.0")>
|
<Assembly: AssemblyFileVersion("1.9.8.0")>
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
|
<package id="DigitalData.Modules.Logging" version="2.6.5" targetFramework="net462" />
|
||||||
<package id="Microsoft.Identity.Client" version="4.55.0" targetFramework="net462" />
|
<package id="Microsoft.Identity.Client" version="4.55.0" targetFramework="net462" />
|
||||||
<package id="Microsoft.IdentityModel.Abstractions" version="6.22.0" targetFramework="net462" />
|
<package id="Microsoft.IdentityModel.Abstractions" version="6.22.0" targetFramework="net462" />
|
||||||
<package id="NLog" version="5.0.5" targetFramework="net461" />
|
<package id="NLog" version="5.0.5" targetFramework="net461" />
|
||||||
|
|||||||
@@ -33,6 +33,8 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ZooFlow", "ZooFlow\ZooFlow.
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Messaging", "Messaging\Messaging.vbproj", "{AF664D85-0A4B-4BAB-A2F8-83110C06553A}"
|
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Messaging", "Messaging\Messaging.vbproj", "{AF664D85-0A4B-4BAB-A2F8-83110C06553A}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "Database.Test", "Database.Test\Database.Test.vbproj", "{91B4DFC0-543C-43A7-A9E0-6817DCA277EC}"
|
||||||
|
EndProject
|
||||||
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Filesystem", "Filesystem\Filesystem.vbproj", "{991D0231-4623-496D-8BD0-9CA906029CBC}"
|
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Filesystem", "Filesystem\Filesystem.vbproj", "{991D0231-4623-496D-8BD0-9CA906029CBC}"
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
@@ -101,6 +103,10 @@ Global
|
|||||||
{AF664D85-0A4B-4BAB-A2F8-83110C06553A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{AF664D85-0A4B-4BAB-A2F8-83110C06553A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{AF664D85-0A4B-4BAB-A2F8-83110C06553A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{AF664D85-0A4B-4BAB-A2F8-83110C06553A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{AF664D85-0A4B-4BAB-A2F8-83110C06553A}.Release|Any CPU.Build.0 = Release|Any CPU
|
{AF664D85-0A4B-4BAB-A2F8-83110C06553A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{91B4DFC0-543C-43A7-A9E0-6817DCA277EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{91B4DFC0-543C-43A7-A9E0-6817DCA277EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{91B4DFC0-543C-43A7-A9E0-6817DCA277EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{91B4DFC0-543C-43A7-A9E0-6817DCA277EC}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{991D0231-4623-496D-8BD0-9CA906029CBC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{991D0231-4623-496D-8BD0-9CA906029CBC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{991D0231-4623-496D-8BD0-9CA906029CBC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{991D0231-4623-496D-8BD0-9CA906029CBC}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{991D0231-4623-496D-8BD0-9CA906029CBC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{991D0231-4623-496D-8BD0-9CA906029CBC}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
|||||||
@@ -56,10 +56,6 @@
|
|||||||
<Reference Include="DigitalData.Modules.Logging, Version=2.6.5.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="DigitalData.Modules.Logging, Version=2.6.5.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\DigitalData.Modules.Logging.2.6.5\lib\net462\DigitalData.Modules.Logging.dll</HintPath>
|
<HintPath>..\packages\DigitalData.Modules.Logging.2.6.5\lib\net462\DigitalData.Modules.Logging.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="DigitalData.Modules.ZooFlow, Version=1.3.0.0, Culture=neutral, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\ZooFlow\bin\Debug\DigitalData.Modules.ZooFlow.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="Interop.WINDREAMLib">
|
<Reference Include="Interop.WINDREAMLib">
|
||||||
<HintPath>P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WINDREAMLib.dll</HintPath>
|
<HintPath>P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WINDREAMLib.dll</HintPath>
|
||||||
<EmbedInteropTypes>True</EmbedInteropTypes>
|
<EmbedInteropTypes>True</EmbedInteropTypes>
|
||||||
@@ -148,6 +144,12 @@
|
|||||||
</None>
|
</None>
|
||||||
<None Include="packages.config" />
|
<None Include="packages.config" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\ZooFlow\ZooFlow.vbproj">
|
||||||
|
<Project>{81cac44f-3711-4c8f-ae98-e02a7448782a}</Project>
|
||||||
|
<Name>ZooFlow</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
<ItemGroup />
|
<ItemGroup />
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
|
|||||||
@@ -183,7 +183,6 @@ Public Class Helpers
|
|||||||
Return Convert.ToDateTime(pValue)
|
Return Convert.ToDateTime(pValue)
|
||||||
End If
|
End If
|
||||||
Case INDEX_TYPE_FLOAT
|
Case INDEX_TYPE_FLOAT
|
||||||
pValue = pValue.Replace(".", ",")
|
|
||||||
If pValue = DELETE_ATTRIBUTE_VALUE Then
|
If pValue = DELETE_ATTRIBUTE_VALUE Then
|
||||||
Return Nothing
|
Return Nothing
|
||||||
Else
|
Else
|
||||||
|
|||||||
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
|
|||||||
' übernehmen, indem Sie "*" eingeben:
|
' übernehmen, indem Sie "*" eingeben:
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
' <Assembly: AssemblyVersion("1.0.*")>
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("1.9.8.0")>
|
<Assembly: AssemblyVersion("1.9.7.0")>
|
||||||
<Assembly: AssemblyFileVersion("1.9.8.0")>
|
<Assembly: AssemblyFileVersion("1.9.7.0")>
|
||||||
|
|||||||
@@ -700,7 +700,7 @@ Public Class Windream
|
|||||||
End Try
|
End Try
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
Public Function NewFileStream(ByVal FilenameSource As String, ByVal FilenameTarget As String, ByVal WMObjecttypeName As String, pisGUI As Boolean) As Boolean
|
Public Function NewFileStream(ByVal FilenameSource As String, ByVal FilenameTarget As String, ByVal WMObjecttypeName As String) As Boolean
|
||||||
|
|
||||||
NewDocumentID = 0
|
NewDocumentID = 0
|
||||||
|
|
||||||
@@ -712,7 +712,7 @@ Public Class Windream
|
|||||||
|
|
||||||
FilenameTarget = GetNormalizedPath(FilenameTarget, True)
|
FilenameTarget = GetNormalizedPath(FilenameTarget, True)
|
||||||
|
|
||||||
_logger.Debug($"Preparing to stream file from [{FilenameSource}] to [{FilenameTarget}]")
|
_logger.Debug($"Preparing to stream file from {FilenameSource} to {FilenameTarget}")
|
||||||
|
|
||||||
Dim oWMObject As IWMObject6 = Nothing
|
Dim oWMObject As IWMObject6 = Nothing
|
||||||
Dim oFileIO As WMFileIO
|
Dim oFileIO As WMFileIO
|
||||||
@@ -725,16 +725,9 @@ Public Class Windream
|
|||||||
|
|
||||||
Try
|
Try
|
||||||
' GetNewWMObjectFS already locks the WMObject
|
' GetNewWMObjectFS already locks the WMObject
|
||||||
_logger.Debug("Creating WMObject for file [{0}]", FilenameTarget)
|
_logger.Debug("Creating WMObject for file {0}", FilenameTarget)
|
||||||
oWMObject = Session.GetNewWMObjectFS(WMEntityDocument, FilenameTarget, WMObjectEditModeObject)
|
oWMObject = Session.GetNewWMObjectFS(WMEntityDocument, FilenameTarget, WMObjectEditModeObject)
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
If ex.Message.Contains("Filename exists!") Then
|
|
||||||
Dim oMsg = $"Could not create a windream - object - A folder or file with the same name already exists in the folder [{oTargetDrive}]"
|
|
||||||
_logger.Warn(oMsg)
|
|
||||||
If pisGUI = True Then
|
|
||||||
MsgBox(oMsg, MsgBoxStyle.Critical, "Error in creating windream-object")
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
_logger.Error(ex, "WMObject could not be created")
|
_logger.Error(ex, "WMObject could not be created")
|
||||||
Return False
|
Return False
|
||||||
End Try
|
End Try
|
||||||
|
|||||||
@@ -44,13 +44,8 @@
|
|||||||
<OptionInfer>On</OptionInfer>
|
<OptionInfer>On</OptionInfer>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="DigitalData.Modules.Base, Version=1.3.8.0, Culture=neutral, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\Base\bin\Debug\DigitalData.Modules.Base.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="DigitalData.Modules.Logging, Version=2.6.5.0, Culture=neutral, processorArchitecture=MSIL">
|
<Reference Include="DigitalData.Modules.Logging, Version=2.6.5.0, Culture=neutral, processorArchitecture=MSIL">
|
||||||
<SpecificVersion>False</SpecificVersion>
|
<HintPath>..\packages\DigitalData.Modules.Logging.2.6.5\lib\net462\DigitalData.Modules.Logging.dll</HintPath>
|
||||||
<HintPath>..\Logging\bin\Debug\DigitalData.Modules.Logging.dll</HintPath>
|
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="Interop.WINDREAMLib">
|
<Reference Include="Interop.WINDREAMLib">
|
||||||
<HintPath>P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WINDREAMLib.dll</HintPath>
|
<HintPath>P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WINDREAMLib.dll</HintPath>
|
||||||
@@ -140,6 +135,12 @@
|
|||||||
</None>
|
</None>
|
||||||
<None Include="packages.config" />
|
<None Include="packages.config" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\Base\Base.vbproj">
|
||||||
|
<Project>{6EA0C51F-C2B1-4462-8198-3DE0B32B74F8}</Project>
|
||||||
|
<Name>Base</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<COMReference Include="WMOBRWSLib">
|
<COMReference Include="WMOBRWSLib">
|
||||||
<Guid>{25B51999-6DCA-11D4-B815-00104BB52DEA}</Guid>
|
<Guid>{25B51999-6DCA-11D4-B815-00104BB52DEA}</Guid>
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
|
<package id="DigitalData.Modules.Logging" version="2.6.5" targetFramework="net462" />
|
||||||
<package id="NLog" version="5.0.5" targetFramework="net461" />
|
<package id="NLog" version="5.0.5" targetFramework="net461" />
|
||||||
</packages>
|
</packages>
|
||||||
@@ -44,18 +44,6 @@
|
|||||||
<OptionInfer>On</OptionInfer>
|
<OptionInfer>On</OptionInfer>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="DigitalData.Modules.Database, Version=2.3.5.4, Culture=neutral, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\Database\bin\Debug\DigitalData.Modules.Database.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="DigitalData.Modules.EDMI.API, Version=1.6.1.1, Culture=neutral, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\EDMIAPI\bin\Debug\DigitalData.Modules.EDMI.API.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="DigitalData.Modules.Logging, Version=2.6.5.0, Culture=neutral, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\Logging\bin\Debug\DigitalData.Modules.Logging.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="Microsoft.CSharp" />
|
<Reference Include="Microsoft.CSharp" />
|
||||||
<Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
<Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\NLog.5.0.5\lib\net46\NLog.dll</HintPath>
|
<HintPath>..\packages\NLog.5.0.5\lib\net46\NLog.dll</HintPath>
|
||||||
@@ -136,6 +124,18 @@
|
|||||||
<None Include="packages.config" />
|
<None Include="packages.config" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\Database\Database.vbproj">
|
||||||
|
<Project>{eaf0ea75-5fa7-485d-89c7-b2d843b03a96}</Project>
|
||||||
|
<Name>Database</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\EDMIAPI\EDMI.API.vbproj">
|
||||||
|
<Project>{25017513-0d97-49d3-98d7-ba76d9b251b0}</Project>
|
||||||
|
<Name>EDMI.API</Name>
|
||||||
|
</ProjectReference>
|
||||||
|
<ProjectReference Include="..\Logging\Logging.vbproj">
|
||||||
|
<Project>{903b2d7d-3b80-4be9-8713-7447b704e1b0}</Project>
|
||||||
|
<Name>Logging</Name>
|
||||||
|
</ProjectReference>
|
||||||
<ProjectReference Include="..\Windows\Windows.vbproj">
|
<ProjectReference Include="..\Windows\Windows.vbproj">
|
||||||
<Project>{5EFAEF9B-90B9-4F05-9F70-F79AD77FFF86}</Project>
|
<Project>{5EFAEF9B-90B9-4F05-9F70-F79AD77FFF86}</Project>
|
||||||
<Name>Windows</Name>
|
<Name>Windows</Name>
|
||||||
|
|||||||
Reference in New Issue
Block a user