MONSTER: Remove all Module Projects, move into DDModules
This commit is contained in:
parent
b78b38e221
commit
0972fbc8ae
@ -1,70 +0,0 @@
|
|||||||
Imports System.IO
|
|
||||||
Imports System.IO.Compression
|
|
||||||
Imports DigitalData.Modules.Logging
|
|
||||||
|
|
||||||
Public Class Compression
|
|
||||||
Private ReadOnly _logger As Logger
|
|
||||||
|
|
||||||
Public Sub New(LogConfig As LogConfig)
|
|
||||||
_logger = LogConfig.GetLogger()
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Public Async Function CompressAsync(data As Byte()) As Task(Of Byte())
|
|
||||||
Return Await Task.Run(Function() As Byte()
|
|
||||||
Return Compress(data)
|
|
||||||
End Function)
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Public Function Compress(data As Byte()) As Byte()
|
|
||||||
Try
|
|
||||||
' ByteArray in Stream umwandeln
|
|
||||||
Using originalStream As New MemoryStream(data)
|
|
||||||
' Ziel Stream erstellen
|
|
||||||
Using compressedStream As New MemoryStream()
|
|
||||||
' Gzip-Stream erstellen, der alle Daten komprimiert und zu compressedStream durchleitet
|
|
||||||
'
|
|
||||||
' > MemoryStream > GzipStream > MemoryStream
|
|
||||||
' originalStream --> compressionStream --> compressedFileStream
|
|
||||||
'
|
|
||||||
Using compressionStream As New GZipStream(compressedStream, CompressionMode.Compress)
|
|
||||||
originalStream.CopyTo(compressionStream)
|
|
||||||
compressionStream.Close()
|
|
||||||
Return compressedStream.ToArray()
|
|
||||||
End Using
|
|
||||||
End Using
|
|
||||||
End Using
|
|
||||||
Catch ex As Exception
|
|
||||||
_logger.Error(ex)
|
|
||||||
Throw ex
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Public Async Function DecompressAsync(data As Byte()) As Task(Of Byte())
|
|
||||||
Return Await Task.Run(Function() As Byte()
|
|
||||||
Return Decompress(data)
|
|
||||||
End Function)
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Public Function Decompress(data As Byte()) As Byte()
|
|
||||||
Try
|
|
||||||
' ByteArray in Stream umwandeln
|
|
||||||
Using compressedStream As New MemoryStream(data)
|
|
||||||
' Ziel Stream erstellen
|
|
||||||
Using decompressedStream As New MemoryStream()
|
|
||||||
' Gzip-Stream erstellen, der alle Daten komprimiert und zu compressedStream durchleitet
|
|
||||||
'
|
|
||||||
' > MemoryStream > GzipStream > MemoryStream
|
|
||||||
' compressedStream --> decompressionStream --> decompressedStream
|
|
||||||
'
|
|
||||||
Using decompressionStream As New GZipStream(compressedStream, CompressionMode.Decompress)
|
|
||||||
decompressionStream.CopyTo(decompressedStream)
|
|
||||||
Return decompressedStream.ToArray()
|
|
||||||
End Using
|
|
||||||
End Using
|
|
||||||
End Using
|
|
||||||
Catch ex As Exception
|
|
||||||
_logger.Error(ex)
|
|
||||||
Throw ex
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
End Class
|
|
||||||
@ -1,148 +0,0 @@
|
|||||||
Imports System.IO
|
|
||||||
Imports System.Security.Cryptography
|
|
||||||
Imports System.Text.Encoding
|
|
||||||
Imports DigitalData.Modules.Logging
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' https://stackoverflow.com/questions/10168240/encrypting-decrypting-a-string-in-c-sharp
|
|
||||||
''' </summary>
|
|
||||||
Public Class Encryption
|
|
||||||
' This constant is used to determine the keysize of the encryption algorithm in bits.
|
|
||||||
' We divide this by 8 within the code below to get the equivalent number of bytes.
|
|
||||||
Private Const KEY_SIZE As Integer = 256
|
|
||||||
' This constant determines the number of iterations for the password bytes generation function.
|
|
||||||
Private Const DERIVATION_ITERATIONS As Integer = 1000
|
|
||||||
Private Const BLOCK_SIZE As Integer = 256
|
|
||||||
|
|
||||||
Private _paddingMode As PaddingMode = PaddingMode.Zeros
|
|
||||||
Private _cipherMode As CipherMode = CipherMode.CBC
|
|
||||||
|
|
||||||
Private ReadOnly _password As String
|
|
||||||
Private _logger As Logger
|
|
||||||
|
|
||||||
Public Sub New(LogConfig As LogConfig, Password As String)
|
|
||||||
_logger = LogConfig.GetLogger()
|
|
||||||
|
|
||||||
If IsNothing(Password) Then
|
|
||||||
Throw New ArgumentNullException("Password")
|
|
||||||
End If
|
|
||||||
|
|
||||||
_password = Password
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Public Async Function EncryptAsync(PlainTextBytes As Byte()) As Task(Of Byte())
|
|
||||||
Return Await Task.Run(Function() As Byte()
|
|
||||||
Return Encrypt(PlainTextBytes)
|
|
||||||
End Function)
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Public Function Encrypt(PlainText As String) As String
|
|
||||||
Try
|
|
||||||
Dim oBytes As Byte() = UTF8.GetBytes(PlainText)
|
|
||||||
Dim oEncrypted As Byte() = Encrypt(oBytes)
|
|
||||||
Return UTF8.GetString(oEncrypted)
|
|
||||||
Catch ex As Exception
|
|
||||||
_logger.Error(ex)
|
|
||||||
Throw ex
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Public Function Encrypt(PlainTextBytes As Byte()) As Byte()
|
|
||||||
Try
|
|
||||||
' Salt and IV is randomly generated each time, but is preprended to encrypted cipher text
|
|
||||||
' so that the same Salt and IV values can be used when decrypting.
|
|
||||||
Dim oSaltStringBytes = Generate256BitsOfRandomEntropy()
|
|
||||||
Dim oIvStringBytes = Generate256BitsOfRandomEntropy()
|
|
||||||
Using oPassword = New Rfc2898DeriveBytes(_password, oSaltStringBytes, DERIVATION_ITERATIONS)
|
|
||||||
Dim oKeyBytes = oPassword.GetBytes(KEY_SIZE / 8)
|
|
||||||
Using oSymmetricKey = New RijndaelManaged()
|
|
||||||
oSymmetricKey.BlockSize = BLOCK_SIZE
|
|
||||||
oSymmetricKey.Mode = _cipherMode
|
|
||||||
oSymmetricKey.Padding = _paddingMode
|
|
||||||
|
|
||||||
Using oEncryptor = oSymmetricKey.CreateEncryptor(oKeyBytes, oIvStringBytes)
|
|
||||||
Using oMemoryStream = New MemoryStream()
|
|
||||||
Using oCryptoStream = New CryptoStream(oMemoryStream, oEncryptor, CryptoStreamMode.Write)
|
|
||||||
oCryptoStream.Write(PlainTextBytes, 0, PlainTextBytes.Length)
|
|
||||||
oCryptoStream.FlushFinalBlock()
|
|
||||||
' Create the final bytes as a concatenation of the random salt bytes, the random iv bytes and the cipher bytes.
|
|
||||||
Dim oCipherTextBytes = oSaltStringBytes
|
|
||||||
oCipherTextBytes = oCipherTextBytes.Concat(oIvStringBytes).ToArray()
|
|
||||||
oCipherTextBytes = oCipherTextBytes.Concat(oMemoryStream.ToArray()).ToArray()
|
|
||||||
oMemoryStream.Close()
|
|
||||||
oCryptoStream.Close()
|
|
||||||
Return oCipherTextBytes
|
|
||||||
End Using
|
|
||||||
End Using
|
|
||||||
End Using
|
|
||||||
End Using
|
|
||||||
End Using
|
|
||||||
Catch ex As Exception
|
|
||||||
_logger.Error(ex)
|
|
||||||
Throw ex
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Public Async Function DecryptAsync(CipherTextBytesWithSaltAndIv As Byte()) As Task(Of Byte())
|
|
||||||
Return Await Task.Run(Function() As Byte()
|
|
||||||
Return Decrypt(CipherTextBytesWithSaltAndIv)
|
|
||||||
End Function)
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Public Function Decrypt(CipherTextPlainWithSaltAndIv As String) As String
|
|
||||||
Try
|
|
||||||
Dim oBytes As Byte() = UTF8.GetBytes(CipherTextPlainWithSaltAndIv)
|
|
||||||
Dim oDecrypted As Byte() = Decrypt(oBytes)
|
|
||||||
Return UTF8.GetString(oDecrypted)
|
|
||||||
Catch ex As Exception
|
|
||||||
_logger.Error(ex)
|
|
||||||
Throw ex
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Public Function Decrypt(CipherTextBytesWithSaltAndIv As Byte()) As Byte()
|
|
||||||
Try
|
|
||||||
' Get the complete stream of bytes that represent:
|
|
||||||
' [32 bytes of Salt] + [32 bytes of IV] + [n bytes of CipherText]
|
|
||||||
' Get the saltbytes by extracting the first 32 bytes from the supplied cipherText bytes.
|
|
||||||
Dim oSaltStringBytes = CipherTextBytesWithSaltAndIv.Take(KEY_SIZE / 8).ToArray()
|
|
||||||
' Get the IV bytes by extracting the next 32 bytes from the supplied cipherText bytes.
|
|
||||||
Dim oIvStringBytes = CipherTextBytesWithSaltAndIv.Skip(KEY_SIZE / 8).Take(KEY_SIZE / 8).ToArray()
|
|
||||||
' Get the actual cipher text bytes by removing the first 64 bytes from the cipherText string.
|
|
||||||
Dim oCipherTextBytes = CipherTextBytesWithSaltAndIv.Skip((KEY_SIZE / 8) * 2).Take(CipherTextBytesWithSaltAndIv.Length - ((KEY_SIZE / 8) * 2)).ToArray()
|
|
||||||
|
|
||||||
Using oPassword = New Rfc2898DeriveBytes(_password, oSaltStringBytes, DERIVATION_ITERATIONS)
|
|
||||||
Dim oKeyBytes = oPassword.GetBytes(KEY_SIZE / 8)
|
|
||||||
Using oSymmetricKey = New RijndaelManaged()
|
|
||||||
oSymmetricKey.BlockSize = BLOCK_SIZE
|
|
||||||
oSymmetricKey.Mode = _cipherMode
|
|
||||||
oSymmetricKey.Padding = _paddingMode
|
|
||||||
Using oDecryptor = oSymmetricKey.CreateDecryptor(oKeyBytes, oIvStringBytes)
|
|
||||||
Using oMemoryStream = New MemoryStream(oCipherTextBytes)
|
|
||||||
Using oCryptoStream = New CryptoStream(oMemoryStream, oDecryptor, CryptoStreamMode.Read)
|
|
||||||
Dim oPlainTextBytes = New Byte(oCipherTextBytes.Length - 1) {}
|
|
||||||
Dim oDecryptedByteCount = oCryptoStream.Read(oPlainTextBytes, 0, oPlainTextBytes.Length)
|
|
||||||
oMemoryStream.Close()
|
|
||||||
oCryptoStream.Close()
|
|
||||||
Return oPlainTextBytes
|
|
||||||
End Using
|
|
||||||
End Using
|
|
||||||
End Using
|
|
||||||
End Using
|
|
||||||
End Using
|
|
||||||
Catch ex As Exception
|
|
||||||
_logger.Error(ex)
|
|
||||||
Throw ex
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Private Shared Function Generate256BitsOfRandomEntropy() As Byte()
|
|
||||||
Dim oRandomBytes = New Byte(31) {}
|
|
||||||
' 32 Bytes will give us 256 bits.
|
|
||||||
Using oRNGCsp = New RNGCryptoServiceProvider()
|
|
||||||
' Fill the array with cryptographically secure random bytes.
|
|
||||||
oRNGCsp.GetBytes(oRandomBytes)
|
|
||||||
End Using
|
|
||||||
Return oRandomBytes
|
|
||||||
End Function
|
|
||||||
End Class
|
|
||||||
@ -1,123 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
|
||||||
<ProjectGuid>{8A8F20FC-C46E-41AC-BEE7-218366CFFF99}</ProjectGuid>
|
|
||||||
<OutputType>Library</OutputType>
|
|
||||||
<RootNamespace>DigitalData.Modules.Encryption</RootNamespace>
|
|
||||||
<AssemblyName>DigitalData.Modules.Encryption</AssemblyName>
|
|
||||||
<FileAlignment>512</FileAlignment>
|
|
||||||
<MyType>Windows</MyType>
|
|
||||||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
|
||||||
<Deterministic>true</Deterministic>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
|
||||||
<DebugSymbols>true</DebugSymbols>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<DefineDebug>true</DefineDebug>
|
|
||||||
<DefineTrace>true</DefineTrace>
|
|
||||||
<OutputPath>bin\Debug\</OutputPath>
|
|
||||||
<DocumentationFile>DigitalData.Modules.Encryption.xml</DocumentationFile>
|
|
||||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
|
||||||
<DebugType>pdbonly</DebugType>
|
|
||||||
<DefineDebug>false</DefineDebug>
|
|
||||||
<DefineTrace>true</DefineTrace>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<OutputPath>bin\Release\</OutputPath>
|
|
||||||
<DocumentationFile>DigitalData.Modules.Encryption.xml</DocumentationFile>
|
|
||||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionExplicit>On</OptionExplicit>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionCompare>Binary</OptionCompare>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionStrict>Off</OptionStrict>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionInfer>On</OptionInfer>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Reference Include="Microsoft.CSharp" />
|
|
||||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
|
||||||
<HintPath>..\packages\NLog.4.7.10\lib\net45\NLog.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="System" />
|
|
||||||
<Reference Include="System.Configuration" />
|
|
||||||
<Reference Include="System.Data" />
|
|
||||||
<Reference Include="System.IO.Compression" />
|
|
||||||
<Reference Include="System.Runtime.Serialization" />
|
|
||||||
<Reference Include="System.ServiceModel" />
|
|
||||||
<Reference Include="System.Transactions" />
|
|
||||||
<Reference Include="System.Xml" />
|
|
||||||
<Reference Include="System.Core" />
|
|
||||||
<Reference Include="System.Xml.Linq" />
|
|
||||||
<Reference Include="System.Data.DataSetExtensions" />
|
|
||||||
<Reference Include="System.Net.Http" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Import Include="Microsoft.VisualBasic" />
|
|
||||||
<Import Include="System" />
|
|
||||||
<Import Include="System.Collections" />
|
|
||||||
<Import Include="System.Collections.Generic" />
|
|
||||||
<Import Include="System.Data" />
|
|
||||||
<Import Include="System.Diagnostics" />
|
|
||||||
<Import Include="System.Linq" />
|
|
||||||
<Import Include="System.Xml.Linq" />
|
|
||||||
<Import Include="System.Threading.Tasks" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="Compression.vb" />
|
|
||||||
<Compile Include="Encryption.vb" />
|
|
||||||
<Compile Include="EncryptionLegacy.vb" />
|
|
||||||
<Compile Include="My Project\AssemblyInfo.vb" />
|
|
||||||
<Compile Include="My Project\Application.Designer.vb">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DependentUpon>Application.myapp</DependentUpon>
|
|
||||||
<DesignTime>True</DesignTime>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="My Project\Resources.Designer.vb">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DesignTime>True</DesignTime>
|
|
||||||
<DependentUpon>Resources.resx</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="My Project\Settings.Designer.vb">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DependentUpon>Settings.settings</DependentUpon>
|
|
||||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
|
||||||
</Compile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<EmbeddedResource Include="My Project\Resources.resx">
|
|
||||||
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
|
|
||||||
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
|
|
||||||
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
|
||||||
<SubType>Designer</SubType>
|
|
||||||
</EmbeddedResource>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="My Project\Application.myapp">
|
|
||||||
<Generator>MyApplicationCodeGenerator</Generator>
|
|
||||||
<LastGenOutput>Application.Designer.vb</LastGenOutput>
|
|
||||||
</None>
|
|
||||||
<None Include="My Project\Settings.settings">
|
|
||||||
<Generator>SettingsSingleFileGenerator</Generator>
|
|
||||||
<CustomToolNamespace>My</CustomToolNamespace>
|
|
||||||
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
|
|
||||||
</None>
|
|
||||||
<None Include="packages.config" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\Modules.Logging\Logging.vbproj">
|
|
||||||
<Project>{903b2d7d-3b80-4be9-8713-7447b704e1b0}</Project>
|
|
||||||
<Name>Logging</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
|
||||||
</Project>
|
|
||||||
@ -1,85 +0,0 @@
|
|||||||
Imports System.Security.Cryptography
|
|
||||||
Imports System.Data
|
|
||||||
Imports System.Data.SqlClient
|
|
||||||
|
|
||||||
Public Class EncryptionLegacy
|
|
||||||
Private TripleDes As New TripleDESCryptoServiceProvider
|
|
||||||
Private DEFAULT_KEY As String = "!35452didalog="
|
|
||||||
Private SALT_VALUE As String = "!Didalog35452Heuchelheim="
|
|
||||||
|
|
||||||
Sub New()
|
|
||||||
TripleDes.Key = TruncateHash(DEFAULT_KEY, TripleDes.KeySize \ 8)
|
|
||||||
TripleDes.IV = TruncateHash("", TripleDes.BlockSize \ 8)
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Sub New(ByVal key As String)
|
|
||||||
' Initialize the crypto provider.
|
|
||||||
TripleDes.Key = TruncateHash(key, TripleDes.KeySize \ 8)
|
|
||||||
TripleDes.IV = TruncateHash("", TripleDes.BlockSize \ 8)
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Private Function TruncateHash(ByVal key As String, ByVal length As Integer) As Byte()
|
|
||||||
Dim sha1 As New SHA1CryptoServiceProvider
|
|
||||||
|
|
||||||
' Hash the key.
|
|
||||||
Dim keyBytes() As Byte =
|
|
||||||
System.Text.Encoding.Unicode.GetBytes(key)
|
|
||||||
Dim hash() As Byte = sha1.ComputeHash(keyBytes)
|
|
||||||
|
|
||||||
' Truncate or pad the hash.
|
|
||||||
ReDim Preserve hash(length - 1)
|
|
||||||
Return hash
|
|
||||||
End Function
|
|
||||||
|
|
||||||
<DebuggerStepThrough>
|
|
||||||
Public Function EncryptData(ByVal plaintext As String) As String
|
|
||||||
Try
|
|
||||||
' Convert the plaintext string to a byte array.
|
|
||||||
Dim plaintextBytes() As Byte =
|
|
||||||
System.Text.Encoding.Unicode.GetBytes(SALT_VALUE & plaintext)
|
|
||||||
|
|
||||||
' Create the stream.
|
|
||||||
Dim ms As New System.IO.MemoryStream
|
|
||||||
' Create the encoder to write to the stream.
|
|
||||||
Dim encStream As New CryptoStream(ms,
|
|
||||||
TripleDes.CreateEncryptor(),
|
|
||||||
System.Security.Cryptography.CryptoStreamMode.Write)
|
|
||||||
|
|
||||||
' Use the crypto stream to write the byte array to the stream.
|
|
||||||
encStream.Write(plaintextBytes, 0, plaintextBytes.Length)
|
|
||||||
encStream.FlushFinalBlock()
|
|
||||||
|
|
||||||
' Convert the encrypted stream to a printable string.
|
|
||||||
Return Convert.ToBase64String(ms.ToArray)
|
|
||||||
Catch ex As Exception
|
|
||||||
Return plaintext
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
'Entschlüsselt die Zeichenfolge
|
|
||||||
<DebuggerStepThrough>
|
|
||||||
Public Function DecryptData(ByVal EncryptedText As String) As String
|
|
||||||
Try
|
|
||||||
' Convert the encrypted text string to a byte array.
|
|
||||||
Dim oEncryptedBytes() As Byte = Convert.FromBase64String(EncryptedText)
|
|
||||||
|
|
||||||
' Create the stream.
|
|
||||||
Dim oMemoryStream As New System.IO.MemoryStream
|
|
||||||
' Create the decoder to write to the stream.
|
|
||||||
Dim oCryptoStream As New CryptoStream(oMemoryStream,
|
|
||||||
TripleDes.CreateDecryptor(),
|
|
||||||
System.Security.Cryptography.CryptoStreamMode.Write)
|
|
||||||
|
|
||||||
' Use the crypto stream to write the byte array to the stream.
|
|
||||||
oCryptoStream.Write(oEncryptedBytes, 0, oEncryptedBytes.Length)
|
|
||||||
oCryptoStream.FlushFinalBlock()
|
|
||||||
Dim oResult = System.Text.Encoding.Unicode.GetString(oMemoryStream.ToArray)
|
|
||||||
oResult = oResult.Replace(SALT_VALUE, "")
|
|
||||||
' Convert the plaintext stream to a string.
|
|
||||||
Return oResult
|
|
||||||
Catch ex As Exception
|
|
||||||
Return EncryptedText
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
End Class
|
|
||||||
|
|
||||||
13
Encryption/My Project/Application.Designer.vb
generated
13
Encryption/My Project/Application.Designer.vb
generated
@ -1,13 +0,0 @@
|
|||||||
'------------------------------------------------------------------------------
|
|
||||||
' <auto-generated>
|
|
||||||
' Dieser Code wurde von einem Tool generiert.
|
|
||||||
' Laufzeitversion:4.0.30319.42000
|
|
||||||
'
|
|
||||||
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
|
|
||||||
' der Code erneut generiert wird.
|
|
||||||
' </auto-generated>
|
|
||||||
'------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Option Strict On
|
|
||||||
Option Explicit On
|
|
||||||
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
|
||||||
<MySubMain>false</MySubMain>
|
|
||||||
<SingleInstance>false</SingleInstance>
|
|
||||||
<ShutdownMode>0</ShutdownMode>
|
|
||||||
<EnableVisualStyles>true</EnableVisualStyles>
|
|
||||||
<AuthenticationMode>0</AuthenticationMode>
|
|
||||||
<ApplicationType>1</ApplicationType>
|
|
||||||
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
|
|
||||||
</MyApplicationData>
|
|
||||||
@ -1,35 +0,0 @@
|
|||||||
Imports System
|
|
||||||
Imports System.Reflection
|
|
||||||
Imports System.Runtime.InteropServices
|
|
||||||
|
|
||||||
' Allgemeine Informationen über eine Assembly werden über die folgenden
|
|
||||||
' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
|
|
||||||
' die einer Assembly zugeordnet sind.
|
|
||||||
|
|
||||||
' Werte der Assemblyattribute überprüfen
|
|
||||||
|
|
||||||
<Assembly: AssemblyTitle("Encryption")>
|
|
||||||
<Assembly: AssemblyDescription("")>
|
|
||||||
<Assembly: AssemblyCompany("")>
|
|
||||||
<Assembly: AssemblyProduct("Encryption")>
|
|
||||||
<Assembly: AssemblyCopyright("Copyright © 2021")>
|
|
||||||
<Assembly: AssemblyTrademark("")>
|
|
||||||
|
|
||||||
<Assembly: ComVisible(False)>
|
|
||||||
|
|
||||||
'Die folgende GUID wird für die typelib-ID verwendet, wenn dieses Projekt für COM verfügbar gemacht wird.
|
|
||||||
<Assembly: Guid("e92901a1-8e87-482d-b63f-f20292d38f1e")>
|
|
||||||
|
|
||||||
' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
|
|
||||||
'
|
|
||||||
' Hauptversion
|
|
||||||
' Nebenversion
|
|
||||||
' Buildnummer
|
|
||||||
' Revision
|
|
||||||
'
|
|
||||||
' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
|
|
||||||
' indem Sie "*" wie unten gezeigt eingeben:
|
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("1.1.0.0")>
|
|
||||||
<Assembly: AssemblyFileVersion("1.1.0.0")>
|
|
||||||
63
Encryption/My Project/Resources.Designer.vb
generated
63
Encryption/My Project/Resources.Designer.vb
generated
@ -1,63 +0,0 @@
|
|||||||
'------------------------------------------------------------------------------
|
|
||||||
' <auto-generated>
|
|
||||||
' Dieser Code wurde von einem Tool generiert.
|
|
||||||
' Laufzeitversion:4.0.30319.42000
|
|
||||||
'
|
|
||||||
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
|
|
||||||
' der Code erneut generiert wird.
|
|
||||||
' </auto-generated>
|
|
||||||
'------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Option Strict On
|
|
||||||
Option Explicit On
|
|
||||||
|
|
||||||
Imports System
|
|
||||||
|
|
||||||
Namespace My.Resources
|
|
||||||
|
|
||||||
'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert
|
|
||||||
'-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert.
|
|
||||||
'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
|
|
||||||
'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu.
|
|
||||||
'''<summary>
|
|
||||||
''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
|
|
||||||
'''</summary>
|
|
||||||
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0"), _
|
|
||||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
|
||||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
|
||||||
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
|
|
||||||
Friend Module Resources
|
|
||||||
|
|
||||||
Private resourceMan As Global.System.Resources.ResourceManager
|
|
||||||
|
|
||||||
Private resourceCulture As Global.System.Globalization.CultureInfo
|
|
||||||
|
|
||||||
'''<summary>
|
|
||||||
''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
|
|
||||||
'''</summary>
|
|
||||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
|
|
||||||
Get
|
|
||||||
If Object.ReferenceEquals(resourceMan, Nothing) Then
|
|
||||||
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.Modules.Encryption.Resources", GetType(Resources).Assembly)
|
|
||||||
resourceMan = temp
|
|
||||||
End If
|
|
||||||
Return resourceMan
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
|
|
||||||
'''<summary>
|
|
||||||
''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
|
|
||||||
''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden.
|
|
||||||
'''</summary>
|
|
||||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Friend Property Culture() As Global.System.Globalization.CultureInfo
|
|
||||||
Get
|
|
||||||
Return resourceCulture
|
|
||||||
End Get
|
|
||||||
Set
|
|
||||||
resourceCulture = value
|
|
||||||
End Set
|
|
||||||
End Property
|
|
||||||
End Module
|
|
||||||
End Namespace
|
|
||||||
@ -1,117 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
</root>
|
|
||||||
73
Encryption/My Project/Settings.Designer.vb
generated
73
Encryption/My Project/Settings.Designer.vb
generated
@ -1,73 +0,0 @@
|
|||||||
'------------------------------------------------------------------------------
|
|
||||||
' <auto-generated>
|
|
||||||
' Dieser Code wurde von einem Tool generiert.
|
|
||||||
' Laufzeitversion:4.0.30319.42000
|
|
||||||
'
|
|
||||||
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
|
|
||||||
' der Code erneut generiert wird.
|
|
||||||
' </auto-generated>
|
|
||||||
'------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Option Strict On
|
|
||||||
Option Explicit On
|
|
||||||
|
|
||||||
|
|
||||||
Namespace My
|
|
||||||
|
|
||||||
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
|
||||||
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0"), _
|
|
||||||
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Partial Friend NotInheritable Class MySettings
|
|
||||||
Inherits Global.System.Configuration.ApplicationSettingsBase
|
|
||||||
|
|
||||||
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
|
|
||||||
|
|
||||||
#Region "Automatische My.Settings-Speicherfunktion"
|
|
||||||
#If _MyType = "WindowsForms" Then
|
|
||||||
Private Shared addedHandler As Boolean
|
|
||||||
|
|
||||||
Private Shared addedHandlerLockObject As New Object
|
|
||||||
|
|
||||||
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
|
|
||||||
If My.Application.SaveMySettingsOnExit Then
|
|
||||||
My.Settings.Save()
|
|
||||||
End If
|
|
||||||
End Sub
|
|
||||||
#End If
|
|
||||||
#End Region
|
|
||||||
|
|
||||||
Public Shared ReadOnly Property [Default]() As MySettings
|
|
||||||
Get
|
|
||||||
|
|
||||||
#If _MyType = "WindowsForms" Then
|
|
||||||
If Not addedHandler Then
|
|
||||||
SyncLock addedHandlerLockObject
|
|
||||||
If Not addedHandler Then
|
|
||||||
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
|
|
||||||
addedHandler = True
|
|
||||||
End If
|
|
||||||
End SyncLock
|
|
||||||
End If
|
|
||||||
#End If
|
|
||||||
Return defaultInstance
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
End Class
|
|
||||||
End Namespace
|
|
||||||
|
|
||||||
Namespace My
|
|
||||||
|
|
||||||
<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _
|
|
||||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
|
||||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
|
|
||||||
Friend Module MySettingsProperty
|
|
||||||
|
|
||||||
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
|
|
||||||
Friend ReadOnly Property Settings() As Global.DigitalData.Modules.Encryption.My.MySettings
|
|
||||||
Get
|
|
||||||
Return Global.DigitalData.Modules.Encryption.My.MySettings.Default
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
End Module
|
|
||||||
End Namespace
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
<?xml version='1.0' encoding='utf-8'?>
|
|
||||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
|
|
||||||
<Profiles>
|
|
||||||
<Profile Name="(Default)" />
|
|
||||||
</Profiles>
|
|
||||||
<Settings />
|
|
||||||
</SettingsFile>
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<packages>
|
|
||||||
<package id="NLog" version="4.7.10" targetFramework="net461" />
|
|
||||||
</packages>
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" ?>
|
|
||||||
<configuration>
|
|
||||||
<startup>
|
|
||||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
|
|
||||||
</startup>
|
|
||||||
</configuration>
|
|
||||||
@ -1,133 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
|
||||||
<ProjectGuid>{B65E24B3-D334-455D-A0BF-B33B8358B013}</ProjectGuid>
|
|
||||||
<OutputType>WinExe</OutputType>
|
|
||||||
<StartupObject>LookupControlGui.My.MyApplication</StartupObject>
|
|
||||||
<RootNamespace>LookupControlGui</RootNamespace>
|
|
||||||
<AssemblyName>LookupControlGui</AssemblyName>
|
|
||||||
<FileAlignment>512</FileAlignment>
|
|
||||||
<MyType>WindowsForms</MyType>
|
|
||||||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
|
||||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
|
||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
|
||||||
<DebugSymbols>true</DebugSymbols>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<DefineDebug>true</DefineDebug>
|
|
||||||
<DefineTrace>true</DefineTrace>
|
|
||||||
<OutputPath>bin\Debug\</OutputPath>
|
|
||||||
<DocumentationFile>LookupControlGui.xml</DocumentationFile>
|
|
||||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
|
||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
|
||||||
<DebugType>pdbonly</DebugType>
|
|
||||||
<DefineDebug>false</DefineDebug>
|
|
||||||
<DefineTrace>true</DefineTrace>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<OutputPath>bin\Release\</OutputPath>
|
|
||||||
<DocumentationFile>LookupControlGui.xml</DocumentationFile>
|
|
||||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionExplicit>On</OptionExplicit>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionCompare>Binary</OptionCompare>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionStrict>Off</OptionStrict>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionInfer>On</OptionInfer>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Reference Include="DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
|
||||||
<Reference Include="DevExpress.Data.Desktop.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
|
||||||
<Reference Include="DevExpress.Utils.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
|
||||||
<Reference Include="DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
|
||||||
<Reference Include="DevExpress.XtraGrid.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
|
||||||
<Reference Include="System" />
|
|
||||||
<Reference Include="System.Data" />
|
|
||||||
<Reference Include="System.Deployment" />
|
|
||||||
<Reference Include="System.Drawing" />
|
|
||||||
<Reference Include="System.Windows.Forms" />
|
|
||||||
<Reference Include="System.Xml" />
|
|
||||||
<Reference Include="System.Core" />
|
|
||||||
<Reference Include="System.Xml.Linq" />
|
|
||||||
<Reference Include="System.Data.DataSetExtensions" />
|
|
||||||
<Reference Include="System.Net.Http" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Import Include="Microsoft.VisualBasic" />
|
|
||||||
<Import Include="System" />
|
|
||||||
<Import Include="System.Collections" />
|
|
||||||
<Import Include="System.Collections.Generic" />
|
|
||||||
<Import Include="System.Data" />
|
|
||||||
<Import Include="System.Drawing" />
|
|
||||||
<Import Include="System.Diagnostics" />
|
|
||||||
<Import Include="System.Windows.Forms" />
|
|
||||||
<Import Include="System.Linq" />
|
|
||||||
<Import Include="System.Xml.Linq" />
|
|
||||||
<Import Include="System.Threading.Tasks" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="frmLookup.vb">
|
|
||||||
<SubType>Form</SubType>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="frmLookup.Designer.vb">
|
|
||||||
<DependentUpon>frmLookup.vb</DependentUpon>
|
|
||||||
<SubType>Form</SubType>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="My Project\AssemblyInfo.vb" />
|
|
||||||
<Compile Include="My Project\Application.Designer.vb">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DependentUpon>Application.myapp</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="My Project\Resources.Designer.vb">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DesignTime>True</DesignTime>
|
|
||||||
<DependentUpon>Resources.resx</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="My Project\Settings.Designer.vb">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DependentUpon>Settings.settings</DependentUpon>
|
|
||||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
|
||||||
</Compile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<EmbeddedResource Include="frmLookup.resx">
|
|
||||||
<DependentUpon>frmLookup.vb</DependentUpon>
|
|
||||||
</EmbeddedResource>
|
|
||||||
<EmbeddedResource Include="My Project\Resources.resx">
|
|
||||||
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
|
|
||||||
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
|
|
||||||
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
|
||||||
<SubType>Designer</SubType>
|
|
||||||
</EmbeddedResource>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="My Project\Application.myapp">
|
|
||||||
<Generator>MyApplicationCodeGenerator</Generator>
|
|
||||||
<LastGenOutput>Application.Designer.vb</LastGenOutput>
|
|
||||||
</None>
|
|
||||||
<None Include="My Project\Settings.settings">
|
|
||||||
<Generator>SettingsSingleFileGenerator</Generator>
|
|
||||||
<CustomToolNamespace>My</CustomToolNamespace>
|
|
||||||
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
|
|
||||||
</None>
|
|
||||||
<None Include="App.config" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\Controls.LookupGrid\LookupControl.vbproj">
|
|
||||||
<Project>{3dcd6d1a-c830-4241-b7e4-27430e7ea483}</Project>
|
|
||||||
<Name>LookupControl</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
|
||||||
</Project>
|
|
||||||
@ -1,132 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
|
||||||
<ProjectGuid>{B65E24B3-D334-455D-A0BF-B33B8358B013}</ProjectGuid>
|
|
||||||
<OutputType>WinExe</OutputType>
|
|
||||||
<StartupObject>LookupControlGui.My.MyApplication</StartupObject>
|
|
||||||
<RootNamespace>LookupControlGui</RootNamespace>
|
|
||||||
<AssemblyName>LookupControlGui</AssemblyName>
|
|
||||||
<FileAlignment>512</FileAlignment>
|
|
||||||
<MyType>WindowsForms</MyType>
|
|
||||||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
|
||||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
|
||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
|
||||||
<DebugSymbols>true</DebugSymbols>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<DefineDebug>true</DefineDebug>
|
|
||||||
<DefineTrace>true</DefineTrace>
|
|
||||||
<OutputPath>bin\Debug\</OutputPath>
|
|
||||||
<DocumentationFile>LookupControlGui.xml</DocumentationFile>
|
|
||||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
|
||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
|
||||||
<DebugType>pdbonly</DebugType>
|
|
||||||
<DefineDebug>false</DefineDebug>
|
|
||||||
<DefineTrace>true</DefineTrace>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<OutputPath>bin\Release\</OutputPath>
|
|
||||||
<DocumentationFile>LookupControlGui.xml</DocumentationFile>
|
|
||||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionExplicit>On</OptionExplicit>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionCompare>Binary</OptionCompare>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionStrict>Off</OptionStrict>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionInfer>On</OptionInfer>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Reference Include="DevExpress.Data.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
|
||||||
<Reference Include="DevExpress.Utils.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
|
||||||
<Reference Include="DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
|
||||||
<Reference Include="DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
|
||||||
<Reference Include="System" />
|
|
||||||
<Reference Include="System.Data" />
|
|
||||||
<Reference Include="System.Deployment" />
|
|
||||||
<Reference Include="System.Drawing" />
|
|
||||||
<Reference Include="System.Windows.Forms" />
|
|
||||||
<Reference Include="System.Xml" />
|
|
||||||
<Reference Include="System.Core" />
|
|
||||||
<Reference Include="System.Xml.Linq" />
|
|
||||||
<Reference Include="System.Data.DataSetExtensions" />
|
|
||||||
<Reference Include="System.Net.Http" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Import Include="Microsoft.VisualBasic" />
|
|
||||||
<Import Include="System" />
|
|
||||||
<Import Include="System.Collections" />
|
|
||||||
<Import Include="System.Collections.Generic" />
|
|
||||||
<Import Include="System.Data" />
|
|
||||||
<Import Include="System.Drawing" />
|
|
||||||
<Import Include="System.Diagnostics" />
|
|
||||||
<Import Include="System.Windows.Forms" />
|
|
||||||
<Import Include="System.Linq" />
|
|
||||||
<Import Include="System.Xml.Linq" />
|
|
||||||
<Import Include="System.Threading.Tasks" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="frmLookup.vb">
|
|
||||||
<SubType>Form</SubType>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="frmLookup.Designer.vb">
|
|
||||||
<DependentUpon>frmLookup.vb</DependentUpon>
|
|
||||||
<SubType>Form</SubType>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="My Project\AssemblyInfo.vb" />
|
|
||||||
<Compile Include="My Project\Application.Designer.vb">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DependentUpon>Application.myapp</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="My Project\Resources.Designer.vb">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DesignTime>True</DesignTime>
|
|
||||||
<DependentUpon>Resources.resx</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="My Project\Settings.Designer.vb">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DependentUpon>Settings.settings</DependentUpon>
|
|
||||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
|
||||||
</Compile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<EmbeddedResource Include="frmLookup.resx">
|
|
||||||
<DependentUpon>frmLookup.vb</DependentUpon>
|
|
||||||
</EmbeddedResource>
|
|
||||||
<EmbeddedResource Include="My Project\Resources.resx">
|
|
||||||
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
|
|
||||||
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
|
|
||||||
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
|
||||||
<SubType>Designer</SubType>
|
|
||||||
</EmbeddedResource>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="My Project\Application.myapp">
|
|
||||||
<Generator>MyApplicationCodeGenerator</Generator>
|
|
||||||
<LastGenOutput>Application.Designer.vb</LastGenOutput>
|
|
||||||
</None>
|
|
||||||
<None Include="My Project\Settings.settings">
|
|
||||||
<Generator>SettingsSingleFileGenerator</Generator>
|
|
||||||
<CustomToolNamespace>My</CustomToolNamespace>
|
|
||||||
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
|
|
||||||
</None>
|
|
||||||
<None Include="App.config" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\Controls.LookupGrid\LookupControl.vbproj">
|
|
||||||
<Project>{3dcd6d1a-c830-4241-b7e4-27430e7ea483}</Project>
|
|
||||||
<Name>LookupControl</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
|
||||||
</Project>
|
|
||||||
38
LookupControlGui/My Project/Application.Designer.vb
generated
38
LookupControlGui/My Project/Application.Designer.vb
generated
@ -1,38 +0,0 @@
|
|||||||
'------------------------------------------------------------------------------
|
|
||||||
' <auto-generated>
|
|
||||||
' This code was generated by a tool.
|
|
||||||
' Runtime Version:4.0.30319.42000
|
|
||||||
'
|
|
||||||
' Changes to this file may cause incorrect behavior and will be lost if
|
|
||||||
' the code is regenerated.
|
|
||||||
' </auto-generated>
|
|
||||||
'------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Option Strict On
|
|
||||||
Option Explicit On
|
|
||||||
|
|
||||||
|
|
||||||
Namespace My
|
|
||||||
|
|
||||||
'NOTE: This file is auto-generated; do not modify it directly. To make changes,
|
|
||||||
' or if you encounter build errors in this file, go to the Project Designer
|
|
||||||
' (go to Project Properties or double-click the My Project node in
|
|
||||||
' Solution Explorer), and make changes on the Application tab.
|
|
||||||
'
|
|
||||||
Partial Friend Class MyApplication
|
|
||||||
|
|
||||||
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
|
|
||||||
Public Sub New()
|
|
||||||
MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
|
|
||||||
Me.IsSingleInstance = false
|
|
||||||
Me.EnableVisualStyles = true
|
|
||||||
Me.SaveMySettingsOnExit = true
|
|
||||||
Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
|
|
||||||
Protected Overrides Sub OnCreateMainForm()
|
|
||||||
Me.MainForm = Global.LookupControlGui.frmLookup
|
|
||||||
End Sub
|
|
||||||
End Class
|
|
||||||
End Namespace
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
|
||||||
<MySubMain>true</MySubMain>
|
|
||||||
<MainForm>Form1</MainForm>
|
|
||||||
<SingleInstance>false</SingleInstance>
|
|
||||||
<ShutdownMode>0</ShutdownMode>
|
|
||||||
<EnableVisualStyles>true</EnableVisualStyles>
|
|
||||||
<AuthenticationMode>0</AuthenticationMode>
|
|
||||||
<ApplicationType>0</ApplicationType>
|
|
||||||
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
|
|
||||||
</MyApplicationData>
|
|
||||||
@ -1,35 +0,0 @@
|
|||||||
Imports System
|
|
||||||
Imports System.Reflection
|
|
||||||
Imports System.Runtime.InteropServices
|
|
||||||
|
|
||||||
' Allgemeine Informationen über eine Assembly werden über die folgenden
|
|
||||||
' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
|
|
||||||
' die einer Assembly zugeordnet sind.
|
|
||||||
|
|
||||||
' Werte der Assemblyattribute überprüfen
|
|
||||||
|
|
||||||
<Assembly: AssemblyTitle("LookupControlGui")>
|
|
||||||
<Assembly: AssemblyDescription("")>
|
|
||||||
<Assembly: AssemblyCompany("")>
|
|
||||||
<Assembly: AssemblyProduct("LookupControlGui")>
|
|
||||||
<Assembly: AssemblyCopyright("Copyright © 2019")>
|
|
||||||
<Assembly: AssemblyTrademark("")>
|
|
||||||
|
|
||||||
<Assembly: ComVisible(False)>
|
|
||||||
|
|
||||||
'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird.
|
|
||||||
<Assembly: Guid("85fe9368-9af6-433e-b9d3-a4855acd900a")>
|
|
||||||
|
|
||||||
' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
|
|
||||||
'
|
|
||||||
' Hauptversion
|
|
||||||
' Nebenversion
|
|
||||||
' Buildnummer
|
|
||||||
' Revision
|
|
||||||
'
|
|
||||||
' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
|
|
||||||
' übernehmen, indem Sie "*" eingeben:
|
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("1.0.0.0")>
|
|
||||||
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
|
||||||
62
LookupControlGui/My Project/Resources.Designer.vb
generated
62
LookupControlGui/My Project/Resources.Designer.vb
generated
@ -1,62 +0,0 @@
|
|||||||
'------------------------------------------------------------------------------
|
|
||||||
' <auto-generated>
|
|
||||||
' This code was generated by a tool.
|
|
||||||
' Runtime Version:4.0.30319.42000
|
|
||||||
'
|
|
||||||
' Changes to this file may cause incorrect behavior and will be lost if
|
|
||||||
' the code is regenerated.
|
|
||||||
' </auto-generated>
|
|
||||||
'------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Option Strict On
|
|
||||||
Option Explicit On
|
|
||||||
|
|
||||||
|
|
||||||
Namespace My.Resources
|
|
||||||
|
|
||||||
'This class was auto-generated by the StronglyTypedResourceBuilder
|
|
||||||
'class via a tool like ResGen or Visual Studio.
|
|
||||||
'To add or remove a member, edit your .ResX file then rerun ResGen
|
|
||||||
'with the /str option, or rebuild your VS project.
|
|
||||||
'''<summary>
|
|
||||||
''' A strongly-typed resource class, for looking up localized strings, etc.
|
|
||||||
'''</summary>
|
|
||||||
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"), _
|
|
||||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
|
||||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
|
||||||
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
|
|
||||||
Friend Module Resources
|
|
||||||
|
|
||||||
Private resourceMan As Global.System.Resources.ResourceManager
|
|
||||||
|
|
||||||
Private resourceCulture As Global.System.Globalization.CultureInfo
|
|
||||||
|
|
||||||
'''<summary>
|
|
||||||
''' Returns the cached ResourceManager instance used by this class.
|
|
||||||
'''</summary>
|
|
||||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
|
|
||||||
Get
|
|
||||||
If Object.ReferenceEquals(resourceMan, Nothing) Then
|
|
||||||
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("LookupControlGui.Resources", GetType(Resources).Assembly)
|
|
||||||
resourceMan = temp
|
|
||||||
End If
|
|
||||||
Return resourceMan
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
|
|
||||||
'''<summary>
|
|
||||||
''' Overrides the current thread's CurrentUICulture property for all
|
|
||||||
''' resource lookups using this strongly typed resource class.
|
|
||||||
'''</summary>
|
|
||||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Friend Property Culture() As Global.System.Globalization.CultureInfo
|
|
||||||
Get
|
|
||||||
Return resourceCulture
|
|
||||||
End Get
|
|
||||||
Set(ByVal value As Global.System.Globalization.CultureInfo)
|
|
||||||
resourceCulture = value
|
|
||||||
End Set
|
|
||||||
End Property
|
|
||||||
End Module
|
|
||||||
End Namespace
|
|
||||||
@ -1,117 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
</root>
|
|
||||||
73
LookupControlGui/My Project/Settings.Designer.vb
generated
73
LookupControlGui/My Project/Settings.Designer.vb
generated
@ -1,73 +0,0 @@
|
|||||||
'------------------------------------------------------------------------------
|
|
||||||
' <auto-generated>
|
|
||||||
' This code was generated by a tool.
|
|
||||||
' Runtime Version:4.0.30319.42000
|
|
||||||
'
|
|
||||||
' Changes to this file may cause incorrect behavior and will be lost if
|
|
||||||
' the code is regenerated.
|
|
||||||
' </auto-generated>
|
|
||||||
'------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Option Strict On
|
|
||||||
Option Explicit On
|
|
||||||
|
|
||||||
|
|
||||||
Namespace My
|
|
||||||
|
|
||||||
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
|
||||||
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0"), _
|
|
||||||
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Partial Friend NotInheritable Class MySettings
|
|
||||||
Inherits Global.System.Configuration.ApplicationSettingsBase
|
|
||||||
|
|
||||||
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings)
|
|
||||||
|
|
||||||
#Region "My.Settings Auto-Save Functionality"
|
|
||||||
#If _MyType = "WindowsForms" Then
|
|
||||||
Private Shared addedHandler As Boolean
|
|
||||||
|
|
||||||
Private Shared addedHandlerLockObject As New Object
|
|
||||||
|
|
||||||
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
|
|
||||||
If My.Application.SaveMySettingsOnExit Then
|
|
||||||
My.Settings.Save()
|
|
||||||
End If
|
|
||||||
End Sub
|
|
||||||
#End If
|
|
||||||
#End Region
|
|
||||||
|
|
||||||
Public Shared ReadOnly Property [Default]() As MySettings
|
|
||||||
Get
|
|
||||||
|
|
||||||
#If _MyType = "WindowsForms" Then
|
|
||||||
If Not addedHandler Then
|
|
||||||
SyncLock addedHandlerLockObject
|
|
||||||
If Not addedHandler Then
|
|
||||||
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
|
|
||||||
addedHandler = True
|
|
||||||
End If
|
|
||||||
End SyncLock
|
|
||||||
End If
|
|
||||||
#End If
|
|
||||||
Return defaultInstance
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
End Class
|
|
||||||
End Namespace
|
|
||||||
|
|
||||||
Namespace My
|
|
||||||
|
|
||||||
<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _
|
|
||||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
|
||||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
|
|
||||||
Friend Module MySettingsProperty
|
|
||||||
|
|
||||||
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
|
|
||||||
Friend ReadOnly Property Settings() As Global.LookupControlGui.My.MySettings
|
|
||||||
Get
|
|
||||||
Return Global.LookupControlGui.My.MySettings.Default
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
End Module
|
|
||||||
End Namespace
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
<?xml version='1.0' encoding='utf-8'?>
|
|
||||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
|
|
||||||
<Profiles>
|
|
||||||
<Profile Name="(Default)" />
|
|
||||||
</Profiles>
|
|
||||||
<Settings />
|
|
||||||
</SettingsFile>
|
|
||||||
321
LookupControlGui/frmLookup.Designer.vb
generated
321
LookupControlGui/frmLookup.Designer.vb
generated
@ -1,321 +0,0 @@
|
|||||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
|
|
||||||
Partial Class frmLookup
|
|
||||||
Inherits System.Windows.Forms.Form
|
|
||||||
|
|
||||||
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
|
|
||||||
<System.Diagnostics.DebuggerNonUserCode()>
|
|
||||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
|
||||||
Try
|
|
||||||
If disposing AndAlso components IsNot Nothing Then
|
|
||||||
components.Dispose()
|
|
||||||
End If
|
|
||||||
Finally
|
|
||||||
MyBase.Dispose(disposing)
|
|
||||||
End Try
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
'Wird vom Windows Form-Designer benötigt.
|
|
||||||
Private components As System.ComponentModel.IContainer
|
|
||||||
|
|
||||||
'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
|
|
||||||
'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
|
|
||||||
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
|
|
||||||
<System.Diagnostics.DebuggerStepThrough()>
|
|
||||||
Private Sub InitializeComponent()
|
|
||||||
Dim EditorButtonImageOptions1 As DevExpress.XtraEditors.Controls.EditorButtonImageOptions = New DevExpress.XtraEditors.Controls.EditorButtonImageOptions()
|
|
||||||
Dim SerializableAppearanceObject1 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject2 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject3 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject4 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim EditorButtonImageOptions2 As DevExpress.XtraEditors.Controls.EditorButtonImageOptions = New DevExpress.XtraEditors.Controls.EditorButtonImageOptions()
|
|
||||||
Dim SerializableAppearanceObject5 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject6 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject7 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject8 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmLookup))
|
|
||||||
Dim EditorButtonImageOptions3 As DevExpress.XtraEditors.Controls.EditorButtonImageOptions = New DevExpress.XtraEditors.Controls.EditorButtonImageOptions()
|
|
||||||
Dim SerializableAppearanceObject9 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject10 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject11 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject12 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim EditorButtonImageOptions4 As DevExpress.XtraEditors.Controls.EditorButtonImageOptions = New DevExpress.XtraEditors.Controls.EditorButtonImageOptions()
|
|
||||||
Dim SerializableAppearanceObject13 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject14 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject15 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject16 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim EditorButtonImageOptions5 As DevExpress.XtraEditors.Controls.EditorButtonImageOptions = New DevExpress.XtraEditors.Controls.EditorButtonImageOptions()
|
|
||||||
Dim SerializableAppearanceObject17 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject18 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject19 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject20 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim EditorButtonImageOptions6 As DevExpress.XtraEditors.Controls.EditorButtonImageOptions = New DevExpress.XtraEditors.Controls.EditorButtonImageOptions()
|
|
||||||
Dim SerializableAppearanceObject21 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject22 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject23 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject24 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim EditorButtonImageOptions7 As DevExpress.XtraEditors.Controls.EditorButtonImageOptions = New DevExpress.XtraEditors.Controls.EditorButtonImageOptions()
|
|
||||||
Dim SerializableAppearanceObject25 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject26 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject27 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject28 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim EditorButtonImageOptions8 As DevExpress.XtraEditors.Controls.EditorButtonImageOptions = New DevExpress.XtraEditors.Controls.EditorButtonImageOptions()
|
|
||||||
Dim SerializableAppearanceObject29 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject30 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject31 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject32 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim EditorButtonImageOptions9 As DevExpress.XtraEditors.Controls.EditorButtonImageOptions = New DevExpress.XtraEditors.Controls.EditorButtonImageOptions()
|
|
||||||
Dim SerializableAppearanceObject33 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject34 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject35 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject36 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim EditorButtonImageOptions10 As DevExpress.XtraEditors.Controls.EditorButtonImageOptions = New DevExpress.XtraEditors.Controls.EditorButtonImageOptions()
|
|
||||||
Dim SerializableAppearanceObject37 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject38 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject39 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Dim SerializableAppearanceObject40 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject()
|
|
||||||
Me.Button1 = New System.Windows.Forms.Button()
|
|
||||||
Me.LookupControl = New DigitalData.Controls.LookupGrid.LookupControl2()
|
|
||||||
Me.LookupControl21View = New DevExpress.XtraGrid.Views.Grid.GridView()
|
|
||||||
Me.Label1 = New System.Windows.Forms.Label()
|
|
||||||
Me.LookupControl21 = New DigitalData.Controls.LookupGrid.LookupControl2()
|
|
||||||
Me.GridView1 = New DevExpress.XtraGrid.Views.Grid.GridView()
|
|
||||||
Me.Label2 = New System.Windows.Forms.Label()
|
|
||||||
Me.LookupControl22 = New DigitalData.Controls.LookupGrid.LookupControl2()
|
|
||||||
Me.GridView2 = New DevExpress.XtraGrid.Views.Grid.GridView()
|
|
||||||
Me.Label3 = New System.Windows.Forms.Label()
|
|
||||||
Me.LookupControl23 = New DigitalData.Controls.LookupGrid.LookupControl2()
|
|
||||||
Me.GridView3 = New DevExpress.XtraGrid.Views.Grid.GridView()
|
|
||||||
Me.Label4 = New System.Windows.Forms.Label()
|
|
||||||
Me.LookupControl24 = New DigitalData.Controls.LookupGrid.LookupControl2()
|
|
||||||
Me.GridView4 = New DevExpress.XtraGrid.Views.Grid.GridView()
|
|
||||||
Me.Label5 = New System.Windows.Forms.Label()
|
|
||||||
CType(Me.LookupControl.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
|
||||||
CType(Me.LookupControl21View, System.ComponentModel.ISupportInitialize).BeginInit()
|
|
||||||
CType(Me.LookupControl21.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
|
||||||
CType(Me.GridView1, System.ComponentModel.ISupportInitialize).BeginInit()
|
|
||||||
CType(Me.LookupControl22.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
|
||||||
CType(Me.GridView2, System.ComponentModel.ISupportInitialize).BeginInit()
|
|
||||||
CType(Me.LookupControl23.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
|
||||||
CType(Me.GridView3, System.ComponentModel.ISupportInitialize).BeginInit()
|
|
||||||
CType(Me.LookupControl24.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
|
||||||
CType(Me.GridView4, System.ComponentModel.ISupportInitialize).BeginInit()
|
|
||||||
Me.SuspendLayout()
|
|
||||||
'
|
|
||||||
'Button1
|
|
||||||
'
|
|
||||||
Me.Button1.Location = New System.Drawing.Point(12, 12)
|
|
||||||
Me.Button1.Name = "Button1"
|
|
||||||
Me.Button1.Size = New System.Drawing.Size(94, 23)
|
|
||||||
Me.Button1.TabIndex = 2
|
|
||||||
Me.Button1.Text = "Get Text"
|
|
||||||
Me.Button1.UseVisualStyleBackColor = True
|
|
||||||
'
|
|
||||||
'LookupControl
|
|
||||||
'
|
|
||||||
Me.LookupControl.AllowAddNewValues = False
|
|
||||||
Me.LookupControl.DataSource = Nothing
|
|
||||||
Me.LookupControl.Location = New System.Drawing.Point(393, 31)
|
|
||||||
Me.LookupControl.MultiSelect = True
|
|
||||||
Me.LookupControl.Name = "LookupControl"
|
|
||||||
Me.LookupControl.PreventDuplicates = False
|
|
||||||
Me.LookupControl.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo, "", -1, True, True, False, EditorButtonImageOptions1, New DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), SerializableAppearanceObject1, SerializableAppearanceObject2, SerializableAppearanceObject3, SerializableAppearanceObject4, "", "openDropdown", Nothing, DevExpress.Utils.ToolTipAnchor.[Default]), New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Ellipsis, "", -1, True, True, False, EditorButtonImageOptions2, New DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), SerializableAppearanceObject5, SerializableAppearanceObject6, SerializableAppearanceObject7, SerializableAppearanceObject8, "", "openLookupForm", Nothing, DevExpress.Utils.ToolTipAnchor.[Default])})
|
|
||||||
Me.LookupControl.Properties.DataSource = CType(resources.GetObject("LookupControl.Properties.DataSource"), Object)
|
|
||||||
Me.LookupControl.Properties.NullText = "Keine Datensätze ausgewählt"
|
|
||||||
Me.LookupControl.Properties.PopupView = Me.LookupControl21View
|
|
||||||
Me.LookupControl.SelectedValues = CType(resources.GetObject("LookupControl.SelectedValues"), System.Collections.Generic.List(Of String))
|
|
||||||
Me.LookupControl.Size = New System.Drawing.Size(342, 20)
|
|
||||||
Me.LookupControl.TabIndex = 3
|
|
||||||
'
|
|
||||||
'LookupControl21View
|
|
||||||
'
|
|
||||||
Me.LookupControl21View.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus
|
|
||||||
Me.LookupControl21View.Name = "LookupControl21View"
|
|
||||||
Me.LookupControl21View.OptionsSelection.EnableAppearanceFocusedCell = False
|
|
||||||
Me.LookupControl21View.OptionsView.ShowGroupPanel = False
|
|
||||||
'
|
|
||||||
'Label1
|
|
||||||
'
|
|
||||||
Me.Label1.AutoSize = True
|
|
||||||
Me.Label1.Location = New System.Drawing.Point(390, 15)
|
|
||||||
Me.Label1.Name = "Label1"
|
|
||||||
Me.Label1.Size = New System.Drawing.Size(91, 13)
|
|
||||||
Me.Label1.TabIndex = 4
|
|
||||||
Me.Label1.Text = "Multiselect = True"
|
|
||||||
'
|
|
||||||
'LookupControl21
|
|
||||||
'
|
|
||||||
Me.LookupControl21.AllowAddNewValues = False
|
|
||||||
Me.LookupControl21.DataSource = Nothing
|
|
||||||
Me.LookupControl21.Location = New System.Drawing.Point(393, 89)
|
|
||||||
Me.LookupControl21.MultiSelect = True
|
|
||||||
Me.LookupControl21.Name = "LookupControl21"
|
|
||||||
Me.LookupControl21.PreventDuplicates = False
|
|
||||||
Me.LookupControl21.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo, "", -1, True, True, False, EditorButtonImageOptions3, New DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), SerializableAppearanceObject9, SerializableAppearanceObject10, SerializableAppearanceObject11, SerializableAppearanceObject12, "", "openDropdown", Nothing, DevExpress.Utils.ToolTipAnchor.[Default]), New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Ellipsis, "", -1, True, True, False, EditorButtonImageOptions4, New DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), SerializableAppearanceObject13, SerializableAppearanceObject14, SerializableAppearanceObject15, SerializableAppearanceObject16, "", "openLookupForm", Nothing, DevExpress.Utils.ToolTipAnchor.[Default])})
|
|
||||||
Me.LookupControl21.Properties.DataSource = CType(resources.GetObject("LookupControl21.Properties.DataSource"), Object)
|
|
||||||
Me.LookupControl21.Properties.NullText = "Keine Datensätze ausgewählt"
|
|
||||||
Me.LookupControl21.Properties.PopupView = Me.GridView1
|
|
||||||
Me.LookupControl21.SelectedValues = CType(resources.GetObject("LookupControl21.SelectedValues"), System.Collections.Generic.List(Of String))
|
|
||||||
Me.LookupControl21.Size = New System.Drawing.Size(342, 20)
|
|
||||||
Me.LookupControl21.TabIndex = 3
|
|
||||||
'
|
|
||||||
'GridView1
|
|
||||||
'
|
|
||||||
Me.GridView1.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus
|
|
||||||
Me.GridView1.Name = "GridView1"
|
|
||||||
Me.GridView1.OptionsSelection.EnableAppearanceFocusedCell = False
|
|
||||||
Me.GridView1.OptionsView.ShowGroupPanel = False
|
|
||||||
'
|
|
||||||
'Label2
|
|
||||||
'
|
|
||||||
Me.Label2.AutoSize = True
|
|
||||||
Me.Label2.Location = New System.Drawing.Point(390, 73)
|
|
||||||
Me.Label2.Name = "Label2"
|
|
||||||
Me.Label2.Size = New System.Drawing.Size(88, 13)
|
|
||||||
Me.Label2.TabIndex = 4
|
|
||||||
Me.Label2.Text = "ReadOnly = True"
|
|
||||||
'
|
|
||||||
'LookupControl22
|
|
||||||
'
|
|
||||||
Me.LookupControl22.AllowAddNewValues = False
|
|
||||||
Me.LookupControl22.DataSource = Nothing
|
|
||||||
Me.LookupControl22.Location = New System.Drawing.Point(393, 147)
|
|
||||||
Me.LookupControl22.MultiSelect = False
|
|
||||||
Me.LookupControl22.Name = "LookupControl22"
|
|
||||||
Me.LookupControl22.PreventDuplicates = False
|
|
||||||
Me.LookupControl22.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo, "", -1, True, True, False, EditorButtonImageOptions5, New DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), SerializableAppearanceObject17, SerializableAppearanceObject18, SerializableAppearanceObject19, SerializableAppearanceObject20, "", "openDropdown", Nothing, DevExpress.Utils.ToolTipAnchor.[Default]), New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Ellipsis, "", -1, True, True, False, EditorButtonImageOptions6, New DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), SerializableAppearanceObject21, SerializableAppearanceObject22, SerializableAppearanceObject23, SerializableAppearanceObject24, "", "openLookupForm", Nothing, DevExpress.Utils.ToolTipAnchor.[Default])})
|
|
||||||
Me.LookupControl22.Properties.DataSource = CType(resources.GetObject("LookupControl22.Properties.DataSource"), Object)
|
|
||||||
Me.LookupControl22.Properties.NullText = ""
|
|
||||||
Me.LookupControl22.Properties.PopupView = Me.GridView2
|
|
||||||
Me.LookupControl22.SelectedValues = CType(resources.GetObject("LookupControl22.SelectedValues"), System.Collections.Generic.List(Of String))
|
|
||||||
Me.LookupControl22.Size = New System.Drawing.Size(342, 20)
|
|
||||||
Me.LookupControl22.TabIndex = 3
|
|
||||||
'
|
|
||||||
'GridView2
|
|
||||||
'
|
|
||||||
Me.GridView2.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus
|
|
||||||
Me.GridView2.Name = "GridView2"
|
|
||||||
Me.GridView2.OptionsSelection.EnableAppearanceFocusedCell = False
|
|
||||||
Me.GridView2.OptionsView.ShowGroupPanel = False
|
|
||||||
'
|
|
||||||
'Label3
|
|
||||||
'
|
|
||||||
Me.Label3.AutoSize = True
|
|
||||||
Me.Label3.Location = New System.Drawing.Point(390, 131)
|
|
||||||
Me.Label3.Name = "Label3"
|
|
||||||
Me.Label3.Size = New System.Drawing.Size(96, 13)
|
|
||||||
Me.Label3.TabIndex = 4
|
|
||||||
Me.Label3.Text = "MultiSelect = False"
|
|
||||||
'
|
|
||||||
'LookupControl23
|
|
||||||
'
|
|
||||||
Me.LookupControl23.AllowAddNewValues = False
|
|
||||||
Me.LookupControl23.DataSource = Nothing
|
|
||||||
Me.LookupControl23.Location = New System.Drawing.Point(393, 197)
|
|
||||||
Me.LookupControl23.MultiSelect = False
|
|
||||||
Me.LookupControl23.Name = "LookupControl23"
|
|
||||||
Me.LookupControl23.PreventDuplicates = False
|
|
||||||
Me.LookupControl23.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo, "", -1, True, True, False, EditorButtonImageOptions7, New DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), SerializableAppearanceObject25, SerializableAppearanceObject26, SerializableAppearanceObject27, SerializableAppearanceObject28, "", "openDropdown", Nothing, DevExpress.Utils.ToolTipAnchor.[Default]), New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Ellipsis, "", -1, True, True, False, EditorButtonImageOptions8, New DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), SerializableAppearanceObject29, SerializableAppearanceObject30, SerializableAppearanceObject31, SerializableAppearanceObject32, "", "openLookupForm", Nothing, DevExpress.Utils.ToolTipAnchor.[Default])})
|
|
||||||
Me.LookupControl23.Properties.DataSource = CType(resources.GetObject("LookupControl23.Properties.DataSource"), Object)
|
|
||||||
Me.LookupControl23.Properties.NullText = ""
|
|
||||||
Me.LookupControl23.Properties.PopupView = Me.GridView3
|
|
||||||
Me.LookupControl23.SelectedValues = CType(resources.GetObject("LookupControl23.SelectedValues"), System.Collections.Generic.List(Of String))
|
|
||||||
Me.LookupControl23.Size = New System.Drawing.Size(342, 20)
|
|
||||||
Me.LookupControl23.TabIndex = 3
|
|
||||||
'
|
|
||||||
'GridView3
|
|
||||||
'
|
|
||||||
Me.GridView3.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus
|
|
||||||
Me.GridView3.Name = "GridView3"
|
|
||||||
Me.GridView3.OptionsSelection.EnableAppearanceFocusedCell = False
|
|
||||||
Me.GridView3.OptionsView.ShowGroupPanel = False
|
|
||||||
'
|
|
||||||
'Label4
|
|
||||||
'
|
|
||||||
Me.Label4.AutoSize = True
|
|
||||||
Me.Label4.Location = New System.Drawing.Point(390, 181)
|
|
||||||
Me.Label4.Name = "Label4"
|
|
||||||
Me.Label4.Size = New System.Drawing.Size(89, 13)
|
|
||||||
Me.Label4.TabIndex = 4
|
|
||||||
Me.Label4.Text = "100.000 Records"
|
|
||||||
'
|
|
||||||
'LookupControl24
|
|
||||||
'
|
|
||||||
Me.LookupControl24.AllowAddNewValues = True
|
|
||||||
Me.LookupControl24.DataSource = Nothing
|
|
||||||
Me.LookupControl24.Location = New System.Drawing.Point(393, 251)
|
|
||||||
Me.LookupControl24.MultiSelect = False
|
|
||||||
Me.LookupControl24.Name = "LookupControl24"
|
|
||||||
Me.LookupControl24.PreventDuplicates = False
|
|
||||||
Me.LookupControl24.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo, "", -1, True, True, False, EditorButtonImageOptions9, New DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), SerializableAppearanceObject33, SerializableAppearanceObject34, SerializableAppearanceObject35, SerializableAppearanceObject36, "", "openDropdown", Nothing, DevExpress.Utils.ToolTipAnchor.[Default]), New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Ellipsis, "", -1, True, True, False, EditorButtonImageOptions10, New DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), SerializableAppearanceObject37, SerializableAppearanceObject38, SerializableAppearanceObject39, SerializableAppearanceObject40, "", "openLookupForm", Nothing, DevExpress.Utils.ToolTipAnchor.[Default])})
|
|
||||||
Me.LookupControl24.Properties.DataSource = CType(resources.GetObject("LookupControl24.Properties.DataSource"), Object)
|
|
||||||
Me.LookupControl24.Properties.NullText = ""
|
|
||||||
Me.LookupControl24.Properties.PopupView = Me.GridView4
|
|
||||||
Me.LookupControl24.SelectedValues = CType(resources.GetObject("LookupControl24.SelectedValues"), System.Collections.Generic.List(Of String))
|
|
||||||
Me.LookupControl24.Size = New System.Drawing.Size(342, 20)
|
|
||||||
Me.LookupControl24.TabIndex = 3
|
|
||||||
'
|
|
||||||
'GridView4
|
|
||||||
'
|
|
||||||
Me.GridView4.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus
|
|
||||||
Me.GridView4.Name = "GridView4"
|
|
||||||
Me.GridView4.OptionsSelection.EnableAppearanceFocusedCell = False
|
|
||||||
Me.GridView4.OptionsView.ShowGroupPanel = False
|
|
||||||
'
|
|
||||||
'Label5
|
|
||||||
'
|
|
||||||
Me.Label5.AutoSize = True
|
|
||||||
Me.Label5.Location = New System.Drawing.Point(390, 235)
|
|
||||||
Me.Label5.Name = "Label5"
|
|
||||||
Me.Label5.Size = New System.Drawing.Size(167, 13)
|
|
||||||
Me.Label5.TabIndex = 4
|
|
||||||
Me.Label5.Text = "Empty List but New Values = True"
|
|
||||||
'
|
|
||||||
'Form1
|
|
||||||
'
|
|
||||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
|
||||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
|
||||||
Me.ClientSize = New System.Drawing.Size(800, 450)
|
|
||||||
Me.Controls.Add(Me.Label5)
|
|
||||||
Me.Controls.Add(Me.Label4)
|
|
||||||
Me.Controls.Add(Me.Label3)
|
|
||||||
Me.Controls.Add(Me.Label2)
|
|
||||||
Me.Controls.Add(Me.LookupControl24)
|
|
||||||
Me.Controls.Add(Me.LookupControl23)
|
|
||||||
Me.Controls.Add(Me.LookupControl22)
|
|
||||||
Me.Controls.Add(Me.Label1)
|
|
||||||
Me.Controls.Add(Me.LookupControl21)
|
|
||||||
Me.Controls.Add(Me.LookupControl)
|
|
||||||
Me.Controls.Add(Me.Button1)
|
|
||||||
Me.Name = "Form1"
|
|
||||||
Me.Text = "Form1"
|
|
||||||
CType(Me.LookupControl.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
|
||||||
CType(Me.LookupControl21View, System.ComponentModel.ISupportInitialize).EndInit()
|
|
||||||
CType(Me.LookupControl21.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
|
||||||
CType(Me.GridView1, System.ComponentModel.ISupportInitialize).EndInit()
|
|
||||||
CType(Me.LookupControl22.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
|
||||||
CType(Me.GridView2, System.ComponentModel.ISupportInitialize).EndInit()
|
|
||||||
CType(Me.LookupControl23.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
|
||||||
CType(Me.GridView3, System.ComponentModel.ISupportInitialize).EndInit()
|
|
||||||
CType(Me.LookupControl24.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
|
||||||
CType(Me.GridView4, System.ComponentModel.ISupportInitialize).EndInit()
|
|
||||||
Me.ResumeLayout(False)
|
|
||||||
Me.PerformLayout()
|
|
||||||
|
|
||||||
End Sub
|
|
||||||
Friend WithEvents Button1 As Button
|
|
||||||
Friend WithEvents LookupControl As DigitalData.Controls.LookupGrid.LookupControl2
|
|
||||||
Friend WithEvents LookupControl21View As DevExpress.XtraGrid.Views.Grid.GridView
|
|
||||||
Friend WithEvents Label1 As Label
|
|
||||||
Friend WithEvents LookupControl21 As DigitalData.Controls.LookupGrid.LookupControl2
|
|
||||||
Friend WithEvents GridView1 As DevExpress.XtraGrid.Views.Grid.GridView
|
|
||||||
Friend WithEvents Label2 As Label
|
|
||||||
Friend WithEvents LookupControl22 As DigitalData.Controls.LookupGrid.LookupControl2
|
|
||||||
Friend WithEvents GridView2 As DevExpress.XtraGrid.Views.Grid.GridView
|
|
||||||
Friend WithEvents Label3 As Label
|
|
||||||
Friend WithEvents LookupControl23 As DigitalData.Controls.LookupGrid.LookupControl2
|
|
||||||
Friend WithEvents GridView3 As DevExpress.XtraGrid.Views.Grid.GridView
|
|
||||||
Friend WithEvents Label4 As Label
|
|
||||||
Friend WithEvents LookupControl24 As DigitalData.Controls.LookupGrid.LookupControl2
|
|
||||||
Friend WithEvents GridView4 As DevExpress.XtraGrid.Views.Grid.GridView
|
|
||||||
Friend WithEvents Label5 As Label
|
|
||||||
End Class
|
|
||||||
@ -1,210 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<data name="LookupControl.Properties.DataSource" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>
|
|
||||||
AAEAAAD/////AQAAAAAAAAAMAgAAAJoBbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1u
|
|
||||||
ZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0sIG1zY29ybGliLCBWZXJzaW9u
|
|
||||||
PTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQUB
|
|
||||||
AAAAMFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZwMAAAAGX2l0
|
|
||||||
ZW1zBV9zaXplCF92ZXJzaW9uBgAACAgCAAAACQMAAAAAAAAAAAAAABEDAAAAAAAAAAs=
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="LookupControl.SelectedValues" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>
|
|
||||||
AAEAAAD/////AQAAAAAAAAAMAgAAAJoBbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1u
|
|
||||||
ZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0sIG1zY29ybGliLCBWZXJzaW9u
|
|
||||||
PTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQUB
|
|
||||||
AAAAMFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZwMAAAAGX2l0
|
|
||||||
ZW1zBV9zaXplCF92ZXJzaW9uBgAACAgCAAAACQMAAAAAAAAAAAAAABEDAAAAAAAAAAs=
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="LookupControl21.Properties.DataSource" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>
|
|
||||||
AAEAAAD/////AQAAAAAAAAAMAgAAAJoBbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1u
|
|
||||||
ZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0sIG1zY29ybGliLCBWZXJzaW9u
|
|
||||||
PTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQUB
|
|
||||||
AAAAMFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZwMAAAAGX2l0
|
|
||||||
ZW1zBV9zaXplCF92ZXJzaW9uBgAACAgCAAAACQMAAAAAAAAAAAAAABEDAAAAAAAAAAs=
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="LookupControl21.SelectedValues" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>
|
|
||||||
AAEAAAD/////AQAAAAAAAAAMAgAAAJoBbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1u
|
|
||||||
ZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0sIG1zY29ybGliLCBWZXJzaW9u
|
|
||||||
PTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQUB
|
|
||||||
AAAAMFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZwMAAAAGX2l0
|
|
||||||
ZW1zBV9zaXplCF92ZXJzaW9uBgAACAgCAAAACQMAAAAAAAAAAAAAABEDAAAAAAAAAAs=
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="LookupControl22.Properties.DataSource" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>
|
|
||||||
AAEAAAD/////AQAAAAAAAAAMAgAAAJoBbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1u
|
|
||||||
ZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0sIG1zY29ybGliLCBWZXJzaW9u
|
|
||||||
PTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQUB
|
|
||||||
AAAAMFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZwMAAAAGX2l0
|
|
||||||
ZW1zBV9zaXplCF92ZXJzaW9uBgAACAgCAAAACQMAAAAAAAAAAAAAABEDAAAAAAAAAAs=
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="LookupControl22.SelectedValues" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>
|
|
||||||
AAEAAAD/////AQAAAAAAAAAMAgAAAJoBbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1u
|
|
||||||
ZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0sIG1zY29ybGliLCBWZXJzaW9u
|
|
||||||
PTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQUB
|
|
||||||
AAAAMFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZwMAAAAGX2l0
|
|
||||||
ZW1zBV9zaXplCF92ZXJzaW9uBgAACAgCAAAACQMAAAAAAAAAAAAAABEDAAAAAAAAAAs=
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="LookupControl23.Properties.DataSource" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>
|
|
||||||
AAEAAAD/////AQAAAAAAAAAMAgAAAJoBbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1u
|
|
||||||
ZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0sIG1zY29ybGliLCBWZXJzaW9u
|
|
||||||
PTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQUB
|
|
||||||
AAAAMFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZwMAAAAGX2l0
|
|
||||||
ZW1zBV9zaXplCF92ZXJzaW9uBgAACAgCAAAACQMAAAAAAAAAAAAAABEDAAAAAAAAAAs=
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="LookupControl23.SelectedValues" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>
|
|
||||||
AAEAAAD/////AQAAAAAAAAAMAgAAAJoBbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1u
|
|
||||||
ZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0sIG1zY29ybGliLCBWZXJzaW9u
|
|
||||||
PTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQUB
|
|
||||||
AAAAMFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZwMAAAAGX2l0
|
|
||||||
ZW1zBV9zaXplCF92ZXJzaW9uBgAACAgCAAAACQMAAAAAAAAAAAAAABEDAAAAAAAAAAs=
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="LookupControl24.Properties.DataSource" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>
|
|
||||||
AAEAAAD/////AQAAAAAAAAAMAgAAAJoBbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1u
|
|
||||||
ZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0sIG1zY29ybGliLCBWZXJzaW9u
|
|
||||||
PTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQUB
|
|
||||||
AAAAMFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZwMAAAAGX2l0
|
|
||||||
ZW1zBV9zaXplCF92ZXJzaW9uBgAACAgCAAAACQMAAAAAAAAAAAAAABEDAAAAAAAAAAs=
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
<data name="LookupControl24.SelectedValues" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>
|
|
||||||
AAEAAAD/////AQAAAAAAAAAMAgAAAJoBbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1u
|
|
||||||
ZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0sIG1zY29ybGliLCBWZXJzaW9u
|
|
||||||
PTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQUB
|
|
||||||
AAAAMFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZwMAAAAGX2l0
|
|
||||||
ZW1zBV9zaXplCF92ZXJzaW9uBgAACAgCAAAACQMAAAAAAAAAAAAAABEDAAAAAAAAAAs=
|
|
||||||
</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
|
||||||
@ -1,60 +0,0 @@
|
|||||||
Public Class frmLookup
|
|
||||||
Private _Datasource As New List(Of String)
|
|
||||||
|
|
||||||
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
|
||||||
For index = 1 To 1000000
|
|
||||||
_Datasource.Add($"item-{index}")
|
|
||||||
Next
|
|
||||||
|
|
||||||
Dim oDatatable = GetDatatable(10)
|
|
||||||
Dim oSelectedValues = _Datasource.Take(1).ToList()
|
|
||||||
|
|
||||||
LookupControl.DataSource = oDatatable
|
|
||||||
LookupControl.SelectedValues = oSelectedValues
|
|
||||||
LookupControl.ReadOnly = False
|
|
||||||
|
|
||||||
LookupControl21.DataSource = oDatatable
|
|
||||||
LookupControl21.SelectedValues = oSelectedValues
|
|
||||||
LookupControl21.ReadOnly = True
|
|
||||||
|
|
||||||
LookupControl22.DataSource = oDatatable
|
|
||||||
LookupControl22.SelectedValues = oSelectedValues
|
|
||||||
LookupControl22.ReadOnly = False
|
|
||||||
LookupControl22.MultiSelect = False
|
|
||||||
|
|
||||||
LookupControl22.SelectedValues = New List(Of String) From {"", Nothing, "LOL", "Foo"}
|
|
||||||
|
|
||||||
LookupControl23.DataSource = GetDatatable(100000)
|
|
||||||
|
|
||||||
AddHandler LookupControl.SelectedValuesChanged, Sub(_sender As Object, SelectedValues As List(Of String))
|
|
||||||
MsgBox("Selected Values: " & String.Join(",", SelectedValues.ToArray))
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
AddHandler LookupControl21.SelectedValuesChanged, Sub(_sender As Object, SelectedValues As List(Of String))
|
|
||||||
MsgBox("Selected Values: " & String.Join(",", SelectedValues.ToArray))
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
AddHandler LookupControl22.SelectedValuesChanged, Sub(_sender As Object, SelectedValues As List(Of String))
|
|
||||||
MsgBox("Selected Values: " & String.Join(",", SelectedValues.ToArray))
|
|
||||||
End Sub
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Private Function GetDatatable(Limit As Integer) As DataTable
|
|
||||||
Dim oDatatable As New DataTable
|
|
||||||
Dim oColumns As New List(Of DataColumn) From {
|
|
||||||
New DataColumn("Col1", GetType(String)),
|
|
||||||
New DataColumn("Col2", GetType(String))
|
|
||||||
}
|
|
||||||
|
|
||||||
oDatatable.Columns.AddRange(oColumns.ToArray)
|
|
||||||
|
|
||||||
For Each Item In _Datasource.Take(Limit)
|
|
||||||
Dim oRow = oDatatable.NewRow()
|
|
||||||
oRow.Item("Col1") = Item
|
|
||||||
oRow.Item("Col2") = Item & "_" & "SomeLong Random(String) !!!111einself"
|
|
||||||
oDatatable.Rows.Add(oRow)
|
|
||||||
Next
|
|
||||||
|
|
||||||
Return oDatatable
|
|
||||||
End Function
|
|
||||||
End Class
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
Imports DigitalData.Modules.Logging
|
|
||||||
Public Class Mail
|
|
||||||
Private LogConfig As LogConfig
|
|
||||||
Private Logger As DigitalData.Modules.Logging.Logger
|
|
||||||
Public Sub New(LogConfig As LogConfig)
|
|
||||||
LogConfig = LogConfig
|
|
||||||
Logger = LogConfig.GetLogger()
|
|
||||||
Logger.Info("MailingClass initialized")
|
|
||||||
End Sub
|
|
||||||
Public Function Connecttest()
|
|
||||||
|
|
||||||
End Function
|
|
||||||
End Class
|
|
||||||
@ -1,120 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
|
||||||
<ProjectGuid>{C9827B8D-9EF9-411A-A6BF-4807794F8C8F}</ProjectGuid>
|
|
||||||
<OutputType>Library</OutputType>
|
|
||||||
<RootNamespace>Mailfunctions</RootNamespace>
|
|
||||||
<AssemblyName>Mailfunctions</AssemblyName>
|
|
||||||
<FileAlignment>512</FileAlignment>
|
|
||||||
<MyType>Windows</MyType>
|
|
||||||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
|
||||||
<Deterministic>true</Deterministic>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
|
||||||
<DebugSymbols>true</DebugSymbols>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<DefineDebug>true</DefineDebug>
|
|
||||||
<DefineTrace>true</DefineTrace>
|
|
||||||
<OutputPath>bin\Debug\</OutputPath>
|
|
||||||
<DocumentationFile>Mailfunctions.xml</DocumentationFile>
|
|
||||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
|
||||||
<DebugType>pdbonly</DebugType>
|
|
||||||
<DefineDebug>false</DefineDebug>
|
|
||||||
<DefineTrace>true</DefineTrace>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<OutputPath>bin\Release\</OutputPath>
|
|
||||||
<DocumentationFile>Mailfunctions.xml</DocumentationFile>
|
|
||||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionExplicit>On</OptionExplicit>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionCompare>Binary</OptionCompare>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionStrict>Off</OptionStrict>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionInfer>On</OptionInfer>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Reference Include="DigitalData.Modules.Logging">
|
|
||||||
<HintPath>..\Modules.Logging\bin\Debug\DigitalData.Modules.Logging.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="Mail">
|
|
||||||
<HintPath>P:\Visual Studio Projekte\Bibliotheken\Limilabs\Mail.dll\Mail.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="Microsoft.CSharp" />
|
|
||||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
|
||||||
<HintPath>..\packages\NLog.4.7.11\lib\net45\NLog.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="System" />
|
|
||||||
<Reference Include="System.Configuration" />
|
|
||||||
<Reference Include="System.Data" />
|
|
||||||
<Reference Include="System.IO.Compression" />
|
|
||||||
<Reference Include="System.Runtime.Serialization" />
|
|
||||||
<Reference Include="System.ServiceModel" />
|
|
||||||
<Reference Include="System.Transactions" />
|
|
||||||
<Reference Include="System.Xml" />
|
|
||||||
<Reference Include="System.Core" />
|
|
||||||
<Reference Include="System.Xml.Linq" />
|
|
||||||
<Reference Include="System.Data.DataSetExtensions" />
|
|
||||||
<Reference Include="System.Net.Http" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Import Include="Microsoft.VisualBasic" />
|
|
||||||
<Import Include="System" />
|
|
||||||
<Import Include="System.Collections" />
|
|
||||||
<Import Include="System.Collections.Generic" />
|
|
||||||
<Import Include="System.Data" />
|
|
||||||
<Import Include="System.Diagnostics" />
|
|
||||||
<Import Include="System.Linq" />
|
|
||||||
<Import Include="System.Xml.Linq" />
|
|
||||||
<Import Include="System.Threading.Tasks" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="Mail.vb" />
|
|
||||||
<Compile Include="My Project\AssemblyInfo.vb" />
|
|
||||||
<Compile Include="My Project\Application.Designer.vb">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DependentUpon>Application.myapp</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="My Project\Resources.Designer.vb">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DesignTime>True</DesignTime>
|
|
||||||
<DependentUpon>Resources.resx</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="My Project\Settings.Designer.vb">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DependentUpon>Settings.settings</DependentUpon>
|
|
||||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
|
||||||
</Compile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<EmbeddedResource Include="My Project\Resources.resx">
|
|
||||||
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
|
|
||||||
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
|
|
||||||
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
|
||||||
<SubType>Designer</SubType>
|
|
||||||
</EmbeddedResource>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="My Project\Application.myapp">
|
|
||||||
<Generator>MyApplicationCodeGenerator</Generator>
|
|
||||||
<LastGenOutput>Application.Designer.vb</LastGenOutput>
|
|
||||||
</None>
|
|
||||||
<None Include="My Project\Settings.settings">
|
|
||||||
<Generator>SettingsSingleFileGenerator</Generator>
|
|
||||||
<CustomToolNamespace>My</CustomToolNamespace>
|
|
||||||
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
|
|
||||||
</None>
|
|
||||||
<None Include="packages.config" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
|
||||||
</Project>
|
|
||||||
13
Mailfunctions/My Project/Application.Designer.vb
generated
13
Mailfunctions/My Project/Application.Designer.vb
generated
@ -1,13 +0,0 @@
|
|||||||
'------------------------------------------------------------------------------
|
|
||||||
' <auto-generated>
|
|
||||||
' This code was generated by a tool.
|
|
||||||
' Runtime Version:4.0.30319.42000
|
|
||||||
'
|
|
||||||
' Changes to this file may cause incorrect behavior and will be lost if
|
|
||||||
' the code is regenerated.
|
|
||||||
' </auto-generated>
|
|
||||||
'------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Option Strict On
|
|
||||||
Option Explicit On
|
|
||||||
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
|
||||||
<MySubMain>false</MySubMain>
|
|
||||||
<SingleInstance>false</SingleInstance>
|
|
||||||
<ShutdownMode>0</ShutdownMode>
|
|
||||||
<EnableVisualStyles>true</EnableVisualStyles>
|
|
||||||
<AuthenticationMode>0</AuthenticationMode>
|
|
||||||
<ApplicationType>1</ApplicationType>
|
|
||||||
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
|
|
||||||
</MyApplicationData>
|
|
||||||
@ -1,35 +0,0 @@
|
|||||||
Imports System
|
|
||||||
Imports System.Reflection
|
|
||||||
Imports System.Runtime.InteropServices
|
|
||||||
|
|
||||||
' Allgemeine Informationen über eine Assembly werden über die folgenden
|
|
||||||
' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
|
|
||||||
' die einer Assembly zugeordnet sind.
|
|
||||||
|
|
||||||
' Werte der Assemblyattribute überprüfen
|
|
||||||
|
|
||||||
<Assembly: AssemblyTitle("Mailfunctions")>
|
|
||||||
<Assembly: AssemblyDescription("")>
|
|
||||||
<Assembly: AssemblyCompany("")>
|
|
||||||
<Assembly: AssemblyProduct("Mailfunctions")>
|
|
||||||
<Assembly: AssemblyCopyright("Copyright © 2021")>
|
|
||||||
<Assembly: AssemblyTrademark("")>
|
|
||||||
|
|
||||||
<Assembly: ComVisible(False)>
|
|
||||||
|
|
||||||
'Die folgende GUID wird für die typelib-ID verwendet, wenn dieses Projekt für COM verfügbar gemacht wird.
|
|
||||||
<Assembly: Guid("ba66c227-214d-4a87-9134-1f93f51d8bf9")>
|
|
||||||
|
|
||||||
' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
|
|
||||||
'
|
|
||||||
' Hauptversion
|
|
||||||
' Nebenversion
|
|
||||||
' Buildnummer
|
|
||||||
' Revision
|
|
||||||
'
|
|
||||||
' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
|
|
||||||
' indem Sie "*" wie unten gezeigt eingeben:
|
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("1.0.0.0")>
|
|
||||||
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
|
||||||
62
Mailfunctions/My Project/Resources.Designer.vb
generated
62
Mailfunctions/My Project/Resources.Designer.vb
generated
@ -1,62 +0,0 @@
|
|||||||
'------------------------------------------------------------------------------
|
|
||||||
' <auto-generated>
|
|
||||||
' This code was generated by a tool.
|
|
||||||
' Runtime Version:4.0.30319.42000
|
|
||||||
'
|
|
||||||
' Changes to this file may cause incorrect behavior and will be lost if
|
|
||||||
' the code is regenerated.
|
|
||||||
' </auto-generated>
|
|
||||||
'------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Option Strict On
|
|
||||||
Option Explicit On
|
|
||||||
|
|
||||||
|
|
||||||
Namespace My.Resources
|
|
||||||
|
|
||||||
'This class was auto-generated by the StronglyTypedResourceBuilder
|
|
||||||
'class via a tool like ResGen or Visual Studio.
|
|
||||||
'To add or remove a member, edit your .ResX file then rerun ResGen
|
|
||||||
'with the /str option, or rebuild your VS project.
|
|
||||||
'''<summary>
|
|
||||||
''' A strongly-typed resource class, for looking up localized strings, etc.
|
|
||||||
'''</summary>
|
|
||||||
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"), _
|
|
||||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
|
||||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
|
||||||
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
|
|
||||||
Friend Module Resources
|
|
||||||
|
|
||||||
Private resourceMan As Global.System.Resources.ResourceManager
|
|
||||||
|
|
||||||
Private resourceCulture As Global.System.Globalization.CultureInfo
|
|
||||||
|
|
||||||
'''<summary>
|
|
||||||
''' Returns the cached ResourceManager instance used by this class.
|
|
||||||
'''</summary>
|
|
||||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
|
|
||||||
Get
|
|
||||||
If Object.ReferenceEquals(resourceMan, Nothing) Then
|
|
||||||
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Mailfunctions.Resources", GetType(Resources).Assembly)
|
|
||||||
resourceMan = temp
|
|
||||||
End If
|
|
||||||
Return resourceMan
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
|
|
||||||
'''<summary>
|
|
||||||
''' Overrides the current thread's CurrentUICulture property for all
|
|
||||||
''' resource lookups using this strongly typed resource class.
|
|
||||||
'''</summary>
|
|
||||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Friend Property Culture() As Global.System.Globalization.CultureInfo
|
|
||||||
Get
|
|
||||||
Return resourceCulture
|
|
||||||
End Get
|
|
||||||
Set(ByVal value As Global.System.Globalization.CultureInfo)
|
|
||||||
resourceCulture = value
|
|
||||||
End Set
|
|
||||||
End Property
|
|
||||||
End Module
|
|
||||||
End Namespace
|
|
||||||
@ -1,117 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
</root>
|
|
||||||
73
Mailfunctions/My Project/Settings.Designer.vb
generated
73
Mailfunctions/My Project/Settings.Designer.vb
generated
@ -1,73 +0,0 @@
|
|||||||
'------------------------------------------------------------------------------
|
|
||||||
' <auto-generated>
|
|
||||||
' This code was generated by a tool.
|
|
||||||
' Runtime Version:4.0.30319.42000
|
|
||||||
'
|
|
||||||
' Changes to this file may cause incorrect behavior and will be lost if
|
|
||||||
' the code is regenerated.
|
|
||||||
' </auto-generated>
|
|
||||||
'------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Option Strict On
|
|
||||||
Option Explicit On
|
|
||||||
|
|
||||||
|
|
||||||
Namespace My
|
|
||||||
|
|
||||||
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
|
||||||
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0"), _
|
|
||||||
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Partial Friend NotInheritable Class MySettings
|
|
||||||
Inherits Global.System.Configuration.ApplicationSettingsBase
|
|
||||||
|
|
||||||
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings)
|
|
||||||
|
|
||||||
#Region "My.Settings Auto-Save Functionality"
|
|
||||||
#If _MyType = "WindowsForms" Then
|
|
||||||
Private Shared addedHandler As Boolean
|
|
||||||
|
|
||||||
Private Shared addedHandlerLockObject As New Object
|
|
||||||
|
|
||||||
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
|
|
||||||
If My.Application.SaveMySettingsOnExit Then
|
|
||||||
My.Settings.Save()
|
|
||||||
End If
|
|
||||||
End Sub
|
|
||||||
#End If
|
|
||||||
#End Region
|
|
||||||
|
|
||||||
Public Shared ReadOnly Property [Default]() As MySettings
|
|
||||||
Get
|
|
||||||
|
|
||||||
#If _MyType = "WindowsForms" Then
|
|
||||||
If Not addedHandler Then
|
|
||||||
SyncLock addedHandlerLockObject
|
|
||||||
If Not addedHandler Then
|
|
||||||
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
|
|
||||||
addedHandler = True
|
|
||||||
End If
|
|
||||||
End SyncLock
|
|
||||||
End If
|
|
||||||
#End If
|
|
||||||
Return defaultInstance
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
End Class
|
|
||||||
End Namespace
|
|
||||||
|
|
||||||
Namespace My
|
|
||||||
|
|
||||||
<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _
|
|
||||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
|
||||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
|
|
||||||
Friend Module MySettingsProperty
|
|
||||||
|
|
||||||
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
|
|
||||||
Friend ReadOnly Property Settings() As Global.Mailfunctions.My.MySettings
|
|
||||||
Get
|
|
||||||
Return Global.Mailfunctions.My.MySettings.Default
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
End Module
|
|
||||||
End Namespace
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
<?xml version='1.0' encoding='utf-8'?>
|
|
||||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
|
|
||||||
<Profiles>
|
|
||||||
<Profile Name="(Default)" />
|
|
||||||
</Profiles>
|
|
||||||
<Settings />
|
|
||||||
</SettingsFile>
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<packages>
|
|
||||||
<package id="NLog" version="4.7.11" targetFramework="net472" />
|
|
||||||
</packages>
|
|
||||||
@ -1,119 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
|
||||||
<ProjectGuid>{6EA0C51F-C2B1-4462-8198-3DE0B32B74F8}</ProjectGuid>
|
|
||||||
<OutputType>Library</OutputType>
|
|
||||||
<RootNamespace>DigitalData.Modules.Base</RootNamespace>
|
|
||||||
<AssemblyName>DigitalData.Modules.Base</AssemblyName>
|
|
||||||
<FileAlignment>512</FileAlignment>
|
|
||||||
<MyType>Windows</MyType>
|
|
||||||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
|
||||||
<Deterministic>true</Deterministic>
|
|
||||||
<TargetFrameworkProfile />
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
|
||||||
<DebugSymbols>true</DebugSymbols>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<DefineDebug>true</DefineDebug>
|
|
||||||
<DefineTrace>true</DefineTrace>
|
|
||||||
<OutputPath>bin\Debug\</OutputPath>
|
|
||||||
<DocumentationFile>DigitalData.Modules.Base.xml</DocumentationFile>
|
|
||||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
|
||||||
<DebugType>pdbonly</DebugType>
|
|
||||||
<DefineDebug>false</DefineDebug>
|
|
||||||
<DefineTrace>true</DefineTrace>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<OutputPath>bin\Release\</OutputPath>
|
|
||||||
<DocumentationFile>DigitalData.Modules.Base.xml</DocumentationFile>
|
|
||||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionExplicit>On</OptionExplicit>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionCompare>Binary</OptionCompare>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionStrict>Off</OptionStrict>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionInfer>On</OptionInfer>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Reference Include="System" />
|
|
||||||
<Reference Include="System.Data" />
|
|
||||||
<Reference Include="System.Xml" />
|
|
||||||
<Reference Include="System.Core" />
|
|
||||||
<Reference Include="System.Xml.Linq" />
|
|
||||||
<Reference Include="System.Data.DataSetExtensions" />
|
|
||||||
<Reference Include="System.Net.Http" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Import Include="Microsoft.VisualBasic" />
|
|
||||||
<Import Include="System" />
|
|
||||||
<Import Include="System.Collections" />
|
|
||||||
<Import Include="System.Collections.Generic" />
|
|
||||||
<Import Include="System.Data" />
|
|
||||||
<Import Include="System.Diagnostics" />
|
|
||||||
<Import Include="System.Linq" />
|
|
||||||
<Import Include="System.Xml.Linq" />
|
|
||||||
<Import Include="System.Threading.Tasks" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="BaseClass.vb" />
|
|
||||||
<Compile Include="ECM.vb" />
|
|
||||||
<Compile Include="IDB\Attributes.vb" />
|
|
||||||
<Compile Include="IDB\Database.vb" />
|
|
||||||
<Compile Include="IDB\FileStore.vb" />
|
|
||||||
<Compile Include="My Project\AssemblyInfo.vb" />
|
|
||||||
<Compile Include="My Project\Application.Designer.vb">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DependentUpon>Application.myapp</DependentUpon>
|
|
||||||
<DesignTime>True</DesignTime>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="My Project\Resources.Designer.vb">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DesignTime>True</DesignTime>
|
|
||||||
<DependentUpon>Resources.resx</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="My Project\Settings.Designer.vb">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DependentUpon>Settings.settings</DependentUpon>
|
|
||||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
|
||||||
</Compile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<EmbeddedResource Include="My Project\Resources.resx">
|
|
||||||
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
|
|
||||||
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
|
|
||||||
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
|
||||||
<SubType>Designer</SubType>
|
|
||||||
</EmbeddedResource>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="My Project\Application.myapp">
|
|
||||||
<Generator>MyApplicationCodeGenerator</Generator>
|
|
||||||
<LastGenOutput>Application.Designer.vb</LastGenOutput>
|
|
||||||
</None>
|
|
||||||
<None Include="My Project\Settings.settings">
|
|
||||||
<Generator>SettingsSingleFileGenerator</Generator>
|
|
||||||
<CustomToolNamespace>My</CustomToolNamespace>
|
|
||||||
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
|
|
||||||
</None>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Content Include="README.txt" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\..\Modules.Logging\Logging.vbproj">
|
|
||||||
<Project>{903b2d7d-3b80-4be9-8713-7447b704e1b0}</Project>
|
|
||||||
<Name>Logging</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
|
||||||
</Project>
|
|
||||||
@ -1,16 +0,0 @@
|
|||||||
Imports DigitalData.Modules.Logging
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' BaseClass that sets up a Logger.
|
|
||||||
''' </summary>
|
|
||||||
Public Class BaseClass
|
|
||||||
Protected LogConfig As LogConfig
|
|
||||||
Protected Logger As Logger
|
|
||||||
|
|
||||||
Public Sub New(LogConfig As LogConfig)
|
|
||||||
Dim oClassName = Me.GetType().Name
|
|
||||||
|
|
||||||
Me.LogConfig = LogConfig
|
|
||||||
Me.Logger = LogConfig.GetLogger(oClassName)
|
|
||||||
End Sub
|
|
||||||
End Class
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
Public Class ECM
|
|
||||||
Public Enum Product
|
|
||||||
ProcessManager
|
|
||||||
GlobalIndexer
|
|
||||||
ClipboardWatcher
|
|
||||||
End Enum
|
|
||||||
End Class
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
Namespace IDB
|
|
||||||
Public Class Attributes
|
|
||||||
Public Const ATTRIBUTE_DOCTYPE = "Doctype"
|
|
||||||
Public Const ATTRIBUTE_DYNAMIC_FOLDER = "Dynamic Folder"
|
|
||||||
|
|
||||||
Public Const ATTRIBUTE_ORIGIN_FILENAME = "OriginFileName"
|
|
||||||
Public Const ATTRIBUTE_ORIGIN_CHANGED = "OriginChangedDatetime"
|
|
||||||
Public Const ATTRIBUTE_ORIGIN_CREATED = "OriginCreationDatetime"
|
|
||||||
|
|
||||||
Public Const ATTRIBUTE_DISPLAY_FILENAME = "DisplayFileName"
|
|
||||||
Public Const ATTRIBUTE_DISPLAY_FILENAME1 = "DisplayFileName1"
|
|
||||||
|
|
||||||
End Class
|
|
||||||
|
|
||||||
End Namespace
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
|
|
||||||
Namespace IDB
|
|
||||||
Public Class Database
|
|
||||||
Public Enum NamedDatabase
|
|
||||||
ECM
|
|
||||||
IDB
|
|
||||||
End Enum
|
|
||||||
End Class
|
|
||||||
|
|
||||||
End Namespace
|
|
||||||
|
|
||||||
@ -1,20 +0,0 @@
|
|||||||
Namespace IDB
|
|
||||||
Public Class FileStore
|
|
||||||
Public Const FILE_STORE_INVALID_OBEJCT_ID = 0
|
|
||||||
|
|
||||||
Public Const FILE_CHANGED_QUESTION = "QUESTION VERSION"
|
|
||||||
Public Const FILE_CHANGED_OVERWRITE = "AUTO REPLACE"
|
|
||||||
Public Const FILE_CHANGED_VERSION = "AUTO VERSION"
|
|
||||||
|
|
||||||
Public Const OBJECT_STATE_FILE_ADDED = "File added"
|
|
||||||
Public Const OBJECT_STATE_FILE_VERSIONED = "File versioned"
|
|
||||||
Public Const OBJECT_STATE_FILE_CHANGED = "File changed"
|
|
||||||
Public Const OBJECT_STATE_FILE_OPENED = "File opened"
|
|
||||||
Public Const OBJECT_STATE_FILE_DELETED = "File deleted"
|
|
||||||
Public Const OBJECT_STATE_METADATA_CHANGED = "Metadata changed"
|
|
||||||
Public Const OBJECT_STATE_ATTRIBUTEVALUE_DELETED = "Attributevalue deleted"
|
|
||||||
Public Const OBJECT_STATE_FILE_CHECKED_OUT = "File Checked Out"
|
|
||||||
Public Const OBJECT_STATE_FILE_CHECKED_IN = "File Checked In"
|
|
||||||
End Class
|
|
||||||
|
|
||||||
End Namespace
|
|
||||||
13
Modules.Base/Base/My Project/Application.Designer.vb
generated
13
Modules.Base/Base/My Project/Application.Designer.vb
generated
@ -1,13 +0,0 @@
|
|||||||
'------------------------------------------------------------------------------
|
|
||||||
' <auto-generated>
|
|
||||||
' Dieser Code wurde von einem Tool generiert.
|
|
||||||
' Laufzeitversion:4.0.30319.42000
|
|
||||||
'
|
|
||||||
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
|
|
||||||
' der Code erneut generiert wird.
|
|
||||||
' </auto-generated>
|
|
||||||
'------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Option Strict On
|
|
||||||
Option Explicit On
|
|
||||||
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
|
||||||
<MySubMain>false</MySubMain>
|
|
||||||
<SingleInstance>false</SingleInstance>
|
|
||||||
<ShutdownMode>0</ShutdownMode>
|
|
||||||
<EnableVisualStyles>true</EnableVisualStyles>
|
|
||||||
<AuthenticationMode>0</AuthenticationMode>
|
|
||||||
<ApplicationType>1</ApplicationType>
|
|
||||||
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
|
|
||||||
</MyApplicationData>
|
|
||||||
@ -1,35 +0,0 @@
|
|||||||
Imports System
|
|
||||||
Imports System.Reflection
|
|
||||||
Imports System.Runtime.InteropServices
|
|
||||||
|
|
||||||
' Allgemeine Informationen über eine Assembly werden über die folgenden
|
|
||||||
' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
|
|
||||||
' die einer Assembly zugeordnet sind.
|
|
||||||
|
|
||||||
' Werte der Assemblyattribute überprüfen
|
|
||||||
|
|
||||||
<Assembly: AssemblyTitle("Base")>
|
|
||||||
<Assembly: AssemblyDescription("")>
|
|
||||||
<Assembly: AssemblyCompany("")>
|
|
||||||
<Assembly: AssemblyProduct("Base")>
|
|
||||||
<Assembly: AssemblyCopyright("Copyright © 2022")>
|
|
||||||
<Assembly: AssemblyTrademark("")>
|
|
||||||
|
|
||||||
<Assembly: ComVisible(False)>
|
|
||||||
|
|
||||||
'Die folgende GUID wird für die typelib-ID verwendet, wenn dieses Projekt für COM verfügbar gemacht wird.
|
|
||||||
<Assembly: Guid("f097830c-82fe-4cd0-8df6-e458522c1ddd")>
|
|
||||||
|
|
||||||
' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
|
|
||||||
'
|
|
||||||
' Hauptversion
|
|
||||||
' Nebenversion
|
|
||||||
' Buildnummer
|
|
||||||
' Revision
|
|
||||||
'
|
|
||||||
' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
|
|
||||||
' indem Sie "*" wie unten gezeigt eingeben:
|
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("1.0.0.0")>
|
|
||||||
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
|
||||||
63
Modules.Base/Base/My Project/Resources.Designer.vb
generated
63
Modules.Base/Base/My Project/Resources.Designer.vb
generated
@ -1,63 +0,0 @@
|
|||||||
'------------------------------------------------------------------------------
|
|
||||||
' <auto-generated>
|
|
||||||
' Dieser Code wurde von einem Tool generiert.
|
|
||||||
' Laufzeitversion:4.0.30319.42000
|
|
||||||
'
|
|
||||||
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
|
|
||||||
' der Code erneut generiert wird.
|
|
||||||
' </auto-generated>
|
|
||||||
'------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Option Strict On
|
|
||||||
Option Explicit On
|
|
||||||
|
|
||||||
Imports System
|
|
||||||
|
|
||||||
Namespace My.Resources
|
|
||||||
|
|
||||||
'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert
|
|
||||||
'-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert.
|
|
||||||
'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
|
|
||||||
'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu.
|
|
||||||
'''<summary>
|
|
||||||
''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
|
|
||||||
'''</summary>
|
|
||||||
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0"), _
|
|
||||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
|
||||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
|
||||||
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
|
|
||||||
Friend Module Resources
|
|
||||||
|
|
||||||
Private resourceMan As Global.System.Resources.ResourceManager
|
|
||||||
|
|
||||||
Private resourceCulture As Global.System.Globalization.CultureInfo
|
|
||||||
|
|
||||||
'''<summary>
|
|
||||||
''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
|
|
||||||
'''</summary>
|
|
||||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
|
|
||||||
Get
|
|
||||||
If Object.ReferenceEquals(resourceMan, Nothing) Then
|
|
||||||
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.Modules.Base.Resources", GetType(Resources).Assembly)
|
|
||||||
resourceMan = temp
|
|
||||||
End If
|
|
||||||
Return resourceMan
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
|
|
||||||
'''<summary>
|
|
||||||
''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
|
|
||||||
''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden.
|
|
||||||
'''</summary>
|
|
||||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Friend Property Culture() As Global.System.Globalization.CultureInfo
|
|
||||||
Get
|
|
||||||
Return resourceCulture
|
|
||||||
End Get
|
|
||||||
Set
|
|
||||||
resourceCulture = value
|
|
||||||
End Set
|
|
||||||
End Property
|
|
||||||
End Module
|
|
||||||
End Namespace
|
|
||||||
@ -1,117 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
</root>
|
|
||||||
73
Modules.Base/Base/My Project/Settings.Designer.vb
generated
73
Modules.Base/Base/My Project/Settings.Designer.vb
generated
@ -1,73 +0,0 @@
|
|||||||
'------------------------------------------------------------------------------
|
|
||||||
' <auto-generated>
|
|
||||||
' Dieser Code wurde von einem Tool generiert.
|
|
||||||
' Laufzeitversion:4.0.30319.42000
|
|
||||||
'
|
|
||||||
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
|
|
||||||
' der Code erneut generiert wird.
|
|
||||||
' </auto-generated>
|
|
||||||
'------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Option Strict On
|
|
||||||
Option Explicit On
|
|
||||||
|
|
||||||
|
|
||||||
Namespace My
|
|
||||||
|
|
||||||
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
|
||||||
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.8.1.0"), _
|
|
||||||
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Partial Friend NotInheritable Class MySettings
|
|
||||||
Inherits Global.System.Configuration.ApplicationSettingsBase
|
|
||||||
|
|
||||||
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
|
|
||||||
|
|
||||||
#Region "Automatische My.Settings-Speicherfunktion"
|
|
||||||
#If _MyType = "WindowsForms" Then
|
|
||||||
Private Shared addedHandler As Boolean
|
|
||||||
|
|
||||||
Private Shared addedHandlerLockObject As New Object
|
|
||||||
|
|
||||||
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
|
|
||||||
If My.Application.SaveMySettingsOnExit Then
|
|
||||||
My.Settings.Save()
|
|
||||||
End If
|
|
||||||
End Sub
|
|
||||||
#End If
|
|
||||||
#End Region
|
|
||||||
|
|
||||||
Public Shared ReadOnly Property [Default]() As MySettings
|
|
||||||
Get
|
|
||||||
|
|
||||||
#If _MyType = "WindowsForms" Then
|
|
||||||
If Not addedHandler Then
|
|
||||||
SyncLock addedHandlerLockObject
|
|
||||||
If Not addedHandler Then
|
|
||||||
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
|
|
||||||
addedHandler = True
|
|
||||||
End If
|
|
||||||
End SyncLock
|
|
||||||
End If
|
|
||||||
#End If
|
|
||||||
Return defaultInstance
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
End Class
|
|
||||||
End Namespace
|
|
||||||
|
|
||||||
Namespace My
|
|
||||||
|
|
||||||
<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _
|
|
||||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
|
||||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
|
|
||||||
Friend Module MySettingsProperty
|
|
||||||
|
|
||||||
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
|
|
||||||
Friend ReadOnly Property Settings() As Global.DigitalData.Modules.Base.My.MySettings
|
|
||||||
Get
|
|
||||||
Return Global.DigitalData.Modules.Base.My.MySettings.Default
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
End Module
|
|
||||||
End Namespace
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
<?xml version='1.0' encoding='utf-8'?>
|
|
||||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
|
|
||||||
<Profiles>
|
|
||||||
<Profile Name="(Default)" />
|
|
||||||
</Profiles>
|
|
||||||
<Settings />
|
|
||||||
</SettingsFile>
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
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,131 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
|
||||||
<ProjectGuid>{44982F9B-6116-44E2-85D0-F39650B1EF99}</ProjectGuid>
|
|
||||||
<OutputType>Library</OutputType>
|
|
||||||
<RootNamespace>DigitalData.Modules.Config</RootNamespace>
|
|
||||||
<AssemblyName>DigitalData.Modules.Config</AssemblyName>
|
|
||||||
<FileAlignment>512</FileAlignment>
|
|
||||||
<MyType>Windows</MyType>
|
|
||||||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
|
||||||
<DebugSymbols>true</DebugSymbols>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<DefineDebug>true</DefineDebug>
|
|
||||||
<DefineTrace>true</DefineTrace>
|
|
||||||
<OutputPath>bin\Debug\</OutputPath>
|
|
||||||
<DocumentationFile>DigitalData.Modules.Config.xml</DocumentationFile>
|
|
||||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
|
||||||
<DebugType>pdbonly</DebugType>
|
|
||||||
<DefineDebug>false</DefineDebug>
|
|
||||||
<DefineTrace>true</DefineTrace>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<OutputPath>bin\Release\</OutputPath>
|
|
||||||
<DocumentationFile>DigitalData.Modules.Config.xml</DocumentationFile>
|
|
||||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionExplicit>On</OptionExplicit>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionCompare>Binary</OptionCompare>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionStrict>Off</OptionStrict>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionInfer>On</OptionInfer>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Reference Include="Microsoft.CSharp" />
|
|
||||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
|
||||||
<HintPath>..\packages\NLog.4.7.10\lib\net45\NLog.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="System" />
|
|
||||||
<Reference Include="System.Configuration" />
|
|
||||||
<Reference Include="System.Data" />
|
|
||||||
<Reference Include="System.IO.Compression" />
|
|
||||||
<Reference Include="System.Runtime.Serialization" />
|
|
||||||
<Reference Include="System.ServiceModel" />
|
|
||||||
<Reference Include="System.Transactions" />
|
|
||||||
<Reference Include="System.Windows.Forms" />
|
|
||||||
<Reference Include="System.Xml" />
|
|
||||||
<Reference Include="System.Core" />
|
|
||||||
<Reference Include="System.Xml.Linq" />
|
|
||||||
<Reference Include="System.Data.DataSetExtensions" />
|
|
||||||
<Reference Include="System.Net.Http" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Import Include="Microsoft.VisualBasic" />
|
|
||||||
<Import Include="System" />
|
|
||||||
<Import Include="System.Collections" />
|
|
||||||
<Import Include="System.Collections.Generic" />
|
|
||||||
<Import Include="System.Data" />
|
|
||||||
<Import Include="System.Diagnostics" />
|
|
||||||
<Import Include="System.Linq" />
|
|
||||||
<Import Include="System.Xml.Linq" />
|
|
||||||
<Import Include="System.Threading.Tasks" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="ConfigAttributes.vb" />
|
|
||||||
<Compile Include="ConfigManager.vb" />
|
|
||||||
<Compile Include="ConfigSample.vb" />
|
|
||||||
<Compile Include="ConfigUtils.vb" />
|
|
||||||
<Compile Include="My Project\AssemblyInfo.vb" />
|
|
||||||
<Compile Include="My Project\Application.Designer.vb">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DependentUpon>Application.myapp</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="My Project\Resources.Designer.vb">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DesignTime>True</DesignTime>
|
|
||||||
<DependentUpon>Resources.resx</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="My Project\Settings.Designer.vb">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DependentUpon>Settings.settings</DependentUpon>
|
|
||||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
|
||||||
</Compile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<EmbeddedResource Include="My Project\Resources.resx">
|
|
||||||
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
|
|
||||||
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
|
|
||||||
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
|
||||||
<SubType>Designer</SubType>
|
|
||||||
</EmbeddedResource>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="My Project\Application.myapp">
|
|
||||||
<Generator>MyApplicationCodeGenerator</Generator>
|
|
||||||
<LastGenOutput>Application.Designer.vb</LastGenOutput>
|
|
||||||
</None>
|
|
||||||
<None Include="My Project\Settings.settings">
|
|
||||||
<Generator>SettingsSingleFileGenerator</Generator>
|
|
||||||
<CustomToolNamespace>My</CustomToolNamespace>
|
|
||||||
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
|
|
||||||
</None>
|
|
||||||
<None Include="packages.config" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\Encryption\Encryption.vbproj">
|
|
||||||
<Project>{8a8f20fc-c46e-41ac-bee7-218366cfff99}</Project>
|
|
||||||
<Name>Encryption</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\Modules.Filesystem\Filesystem.vbproj">
|
|
||||||
<Project>{991d0231-4623-496d-8bd0-9ca906029cbc}</Project>
|
|
||||||
<Name>Filesystem</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\Modules.Logging\Logging.vbproj">
|
|
||||||
<Project>{903b2d7d-3b80-4be9-8713-7447b704e1b0}</Project>
|
|
||||||
<Name>Logging</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
|
||||||
</Project>
|
|
||||||
@ -1,35 +0,0 @@
|
|||||||
Public Class ConfigAttributes
|
|
||||||
''' <summary>
|
|
||||||
''' The primary connection string. Will not be saved to userconfig.
|
|
||||||
''' </summary>
|
|
||||||
Public Class ConnectionStringAttribute
|
|
||||||
Inherits Attribute
|
|
||||||
End Class
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' The test connection string. Will not be saved to userconfig.
|
|
||||||
''' </summary>
|
|
||||||
Public Class ConnectionStringTestAttribute
|
|
||||||
Inherits Attribute
|
|
||||||
End Class
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' The app serverSQL connection string. Will not be saved to userconfig.
|
|
||||||
''' </summary>
|
|
||||||
Public Class ConnectionStringAppServerAttribute
|
|
||||||
Inherits Attribute
|
|
||||||
End Class
|
|
||||||
''' <summary>
|
|
||||||
''' The EDMIapp server . Will not be saved to userconfig.
|
|
||||||
''' </summary>
|
|
||||||
Public Class EDMIAppServerAttribute
|
|
||||||
Inherits Attribute
|
|
||||||
End Class
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Global setting. Will not be saved to userconfig.
|
|
||||||
''' </summary>
|
|
||||||
Public Class GlobalSettingAttribute
|
|
||||||
Inherits Attribute
|
|
||||||
End Class
|
|
||||||
End Class
|
|
||||||
@ -1,388 +0,0 @@
|
|||||||
Imports System.IO
|
|
||||||
Imports System.Reflection
|
|
||||||
Imports System.Xml.Serialization
|
|
||||||
Imports DigitalData.Modules.Logging
|
|
||||||
Imports DigitalData.Modules.Encryption
|
|
||||||
Imports DigitalData.Modules.Config.ConfigAttributes
|
|
||||||
|
|
||||||
Public Class ConfigManager(Of T)
|
|
||||||
Private Const USER_CONFIG_NAME As String = "UserConfig.xml"
|
|
||||||
Private Const COMPUTER_CONFIG_NAME As String = "ComputerConfig.xml"
|
|
||||||
Private Const APP_CONFIG_NAME As String = "AppConfig.xml"
|
|
||||||
|
|
||||||
Private ReadOnly _LogConfig As LogConfig
|
|
||||||
Private ReadOnly _Logger As Logger
|
|
||||||
Private ReadOnly _File As Filesystem.File
|
|
||||||
|
|
||||||
Private ReadOnly _UserDirectory As String
|
|
||||||
Private ReadOnly _UserConfigPath As String
|
|
||||||
Private ReadOnly _ComputerDirectory As String
|
|
||||||
Private ReadOnly _ComputerConfigPath As String
|
|
||||||
Private ReadOnly _AppConfigDirectory As String
|
|
||||||
Private ReadOnly _AppConfigPath As String
|
|
||||||
|
|
||||||
Private ReadOnly _TestMode As Boolean = False
|
|
||||||
|
|
||||||
Private ReadOnly _Blueprint As T
|
|
||||||
Private ReadOnly _BlueprintType As Type
|
|
||||||
Private ReadOnly _Serializer As XmlSerializer
|
|
||||||
|
|
||||||
Private ReadOnly _ExcludedAttributes = New List(Of Type) From {
|
|
||||||
GetType(ConnectionStringAttribute),
|
|
||||||
GetType(ConnectionStringAppServerAttribute),
|
|
||||||
GetType(ConnectionStringTestAttribute),
|
|
||||||
GetType(EDMIAppServerAttribute),
|
|
||||||
GetType(GlobalSettingAttribute)
|
|
||||||
}
|
|
||||||
|
|
||||||
Private ReadOnly _ConnectionStringAttributes = New List(Of Type) From {
|
|
||||||
GetType(ConnectionStringAttribute),
|
|
||||||
GetType(ConnectionStringAppServerAttribute),
|
|
||||||
GetType(ConnectionStringTestAttribute)
|
|
||||||
}
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Signals that all properties will be written to (and read from) the UserConfig.xml
|
|
||||||
'''
|
|
||||||
''' If Value is `True`:
|
|
||||||
''' - AppConfig.xml does NOT exist
|
|
||||||
''' - ComputerConfig.xml does NOT exist
|
|
||||||
''' - ConnectionStrings will be saved to or read from UserConfig.xml
|
|
||||||
'''
|
|
||||||
''' If Value is `False`:
|
|
||||||
''' - No ConnectionStrings will be saved to or read from UserConfig.xml
|
|
||||||
'''
|
|
||||||
''' Can be overwritten by optional parameter `ForceUserConfig`
|
|
||||||
''' </summary>
|
|
||||||
Private _WriteAllValuesToUserConfig As Boolean = False
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Returns the currently loaded config object
|
|
||||||
''' </summary>
|
|
||||||
''' <returns></returns>
|
|
||||||
Public ReadOnly Property Config As T
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Path to the current user config.
|
|
||||||
''' </summary>
|
|
||||||
''' <returns></returns>
|
|
||||||
Public ReadOnly Property UserConfigPath As String
|
|
||||||
Get
|
|
||||||
Return _UserConfigPath
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Path to the current computer config.
|
|
||||||
''' </summary>
|
|
||||||
''' <returns></returns>
|
|
||||||
Public ReadOnly Property ComputerConfigPath As String
|
|
||||||
Get
|
|
||||||
Return _ComputerConfigPath
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Path to the current Application config.
|
|
||||||
''' </summary>
|
|
||||||
''' <returns></returns>
|
|
||||||
Public ReadOnly Property AppConfigPath As String
|
|
||||||
Get
|
|
||||||
Return _AppConfigPath
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Creates a new instance of the ConfigManager
|
|
||||||
''' </summary>
|
|
||||||
''' <seealso cref="ConfigSample"/>
|
|
||||||
''' <param name="LogConfig">LogConfig instance</param>
|
|
||||||
''' <param name="UserConfigPath">The path to check for a user config file, eg. AppData (Usually Application.UserAppDataPath or Application.LocalUserAppDataPath)</param>
|
|
||||||
''' <param name="ComputerConfigPath">The path to check for a computer config file, eg. ProgramData (Usually Application.CommonAppDataPath)</param>
|
|
||||||
''' <param name="ApplicationStartupPath">The path to check for a third config file. This is useful when running the Application in an environment where AppData/ProgramData directories are not available</param>
|
|
||||||
''' <param name="ForceUserConfig">Override values from ComputerConfig with UserConfig</param>
|
|
||||||
Public Sub New(LogConfig As LogConfig, UserConfigPath As String, ComputerConfigPath As String, Optional ApplicationStartupPath As String = "", Optional ForceUserConfig As Boolean = False)
|
|
||||||
_LogConfig = LogConfig
|
|
||||||
_Logger = LogConfig.GetLogger()
|
|
||||||
_File = New Filesystem.File(_LogConfig)
|
|
||||||
|
|
||||||
_Blueprint = Activator.CreateInstance(Of T)
|
|
||||||
_BlueprintType = _Blueprint.GetType
|
|
||||||
_Serializer = New XmlSerializer(_BlueprintType)
|
|
||||||
|
|
||||||
_UserDirectory = _File.CreateDirectory(UserConfigPath)
|
|
||||||
_UserConfigPath = Path.Combine(_UserDirectory, USER_CONFIG_NAME)
|
|
||||||
|
|
||||||
If ComputerConfigPath <> String.Empty Then
|
|
||||||
If IO.File.Exists(ComputerConfigPath) Then
|
|
||||||
_ComputerDirectory = _File.CreateDirectory(ComputerConfigPath, False)
|
|
||||||
Else
|
|
||||||
_ComputerDirectory = ComputerConfigPath
|
|
||||||
End If
|
|
||||||
_ComputerConfigPath = Path.Combine(_ComputerDirectory, COMPUTER_CONFIG_NAME)
|
|
||||||
End If
|
|
||||||
|
|
||||||
If ApplicationStartupPath <> String.Empty Then
|
|
||||||
_Logger.Info($"AppConfig is being used: [{ApplicationStartupPath}]")
|
|
||||||
_AppConfigPath = Path.Combine(ApplicationStartupPath, APP_CONFIG_NAME)
|
|
||||||
End If
|
|
||||||
|
|
||||||
_WriteAllValuesToUserConfig = ForceUserConfig
|
|
||||||
|
|
||||||
_Config = LoadConfig()
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Creates a new ConfigManager with a single (user)config path
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="LogConfig">LogConfig instance</param>
|
|
||||||
''' <param name="ConfigPath">The path to check for a user config file, eg. AppData (Usually Application.UserAppDataPath or Application.LocalUserAppDataPath)</param>
|
|
||||||
Public Sub New(LogConfig As LogConfig, ConfigPath As String)
|
|
||||||
MyClass.New(LogConfig, ConfigPath, String.Empty, String.Empty, ForceUserConfig:=True)
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Save the current config object to `UserConfigPath`
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="ForceAll">Force saving all attributes including the attributes marked as excluded</param>
|
|
||||||
''' <returns>True if save was successful, False otherwise</returns>
|
|
||||||
Public Function Save(Optional ForceAll As Boolean = False) As Boolean
|
|
||||||
Try
|
|
||||||
WriteToFile(Config, _UserConfigPath, ForceAll)
|
|
||||||
Return True
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex)
|
|
||||||
Return False
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Reloads the config object from file.
|
|
||||||
''' </summary>
|
|
||||||
''' <returns>True if reload was successful, False otherwise</returns>
|
|
||||||
Public Function Reload() As Boolean
|
|
||||||
Try
|
|
||||||
_Config = LoadConfig()
|
|
||||||
Return True
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex)
|
|
||||||
Return False
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Copies all properties from Source to Target, except those who have an attribute
|
|
||||||
''' listed in ExcludedAttributeTypes
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="Source">Source config object</param>
|
|
||||||
''' <param name="Target">Target config object</param>
|
|
||||||
''' <param name="ExcludedAttributeTypes">List of Attribute type to exclude</param>
|
|
||||||
Private Sub CopyValues(Source As T, Target As T, Optional ExcludedAttributeTypes As List(Of Type) = Nothing)
|
|
||||||
Dim oType As Type = GetType(T)
|
|
||||||
Dim oExcludedAttributeTypes = IIf(IsNothing(ExcludedAttributeTypes), New List(Of Type), ExcludedAttributeTypes)
|
|
||||||
Dim oProperties = oType.GetProperties().
|
|
||||||
Where(Function(p) p.CanRead And p.CanWrite).
|
|
||||||
Where(Function(p)
|
|
||||||
For Each oAttributeType As Type In oExcludedAttributeTypes
|
|
||||||
If Attribute.IsDefined(p, oAttributeType) Then
|
|
||||||
Return False
|
|
||||||
End If
|
|
||||||
Next
|
|
||||||
Return True
|
|
||||||
End Function)
|
|
||||||
|
|
||||||
For Each oProperty As PropertyInfo In oProperties
|
|
||||||
' TODO: Process individual Subfields of class-objects
|
|
||||||
' to allow for the PasswordAttribute to be set on class properies aka nested properties
|
|
||||||
|
|
||||||
Dim oValue = oProperty.GetValue(Source, Nothing)
|
|
||||||
If Not IsNothing(oValue) Then
|
|
||||||
oProperty.SetValue(Target, oValue, Nothing)
|
|
||||||
End If
|
|
||||||
Next
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Filters a config object by copying all values except `ExcludedAttributeTypes`
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="Data">Config object</param>
|
|
||||||
''' <param name="ExcludedAttributeTypes">List of Attribute type to exclude</param>
|
|
||||||
''' <returns></returns>
|
|
||||||
Private Function FilterValues(ByVal Data As T, ExcludedAttributeTypes As List(Of Type)) As T
|
|
||||||
Dim oResult As T = Activator.CreateInstance(Of T)
|
|
||||||
|
|
||||||
CopyValues(Data, oResult, ExcludedAttributeTypes)
|
|
||||||
Return oResult
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Private Function LoadConfig() As T
|
|
||||||
' first create an empty/default config object
|
|
||||||
Dim oConfig As T = Activator.CreateInstance(_BlueprintType)
|
|
||||||
|
|
||||||
' try to load the special app config
|
|
||||||
oConfig = LoadAppConfig(oConfig)
|
|
||||||
|
|
||||||
' try to load the computer config
|
|
||||||
oConfig = LoadComputerConfig(oConfig)
|
|
||||||
|
|
||||||
' now try to load userconfig
|
|
||||||
oConfig = LoadUserConfig(oConfig)
|
|
||||||
Return oConfig
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Private Function LoadAppConfig(ByVal Config As T) As T
|
|
||||||
If Not String.IsNullOrEmpty(_AppConfigPath) AndAlso File.Exists(_AppConfigPath) Then
|
|
||||||
Try
|
|
||||||
Dim oAppConfig = ReadFromFile(_AppConfigPath)
|
|
||||||
CopyValues(oAppConfig, Config)
|
|
||||||
|
|
||||||
_Logger.Info("AppConfig exists and will be used. [{0}]", _AppConfigPath)
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex)
|
|
||||||
_Logger.Warn("ApplicationConfig could not be loaded!")
|
|
||||||
End Try
|
|
||||||
|
|
||||||
_WriteAllValuesToUserConfig = False
|
|
||||||
Else
|
|
||||||
_Logger.Debug("ApplicationConfig does not exist.")
|
|
||||||
_WriteAllValuesToUserConfig = True
|
|
||||||
End If
|
|
||||||
|
|
||||||
Return Config
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Private Function LoadComputerConfig(ByVal Config As T) As T
|
|
||||||
If _WriteAllValuesToUserConfig = False Then
|
|
||||||
_Logger.Info("AppConfig exists. ComputerConfig will NOT be used")
|
|
||||||
ElseIf File.Exists(_ComputerConfigPath) Then
|
|
||||||
Try
|
|
||||||
Dim oComputerConfig = ReadFromFile(_ComputerConfigPath)
|
|
||||||
CopyValues(oComputerConfig, Config)
|
|
||||||
|
|
||||||
_Logger.Info("ComputerConfig exists and will be used. [{0}]", _ComputerConfigPath)
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex)
|
|
||||||
_Logger.Warn("Computer config could not be loaded!")
|
|
||||||
End Try
|
|
||||||
_WriteAllValuesToUserConfig = False
|
|
||||||
Else
|
|
||||||
_Logger.Debug("Computer config does not exist.")
|
|
||||||
_WriteAllValuesToUserConfig = True
|
|
||||||
End If
|
|
||||||
|
|
||||||
Return Config
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Private Function LoadUserConfig(ByVal Config As T) As T
|
|
||||||
If File.Exists(_UserConfigPath) Then
|
|
||||||
Try
|
|
||||||
Dim oUserConfig = ReadFromFile(_UserConfigPath)
|
|
||||||
_Logger.Debug("UserConfig exists and will be used. [{0}]", _UserConfigPath)
|
|
||||||
|
|
||||||
' if user config exists
|
|
||||||
If Not IsNothing(oUserConfig) Then
|
|
||||||
' Copy values from user config to final config
|
|
||||||
If _WriteAllValuesToUserConfig Then
|
|
||||||
CopyValues(oUserConfig, Config, New List(Of Type))
|
|
||||||
Else
|
|
||||||
CopyValues(oUserConfig, Config, _ExcludedAttributes)
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex)
|
|
||||||
_Logger.Warn("User config could not be loaded!")
|
|
||||||
End Try
|
|
||||||
Else
|
|
||||||
_Logger.Debug("User config does not exist. Default config will be created")
|
|
||||||
WriteToFile(Config, _UserConfigPath, False)
|
|
||||||
End If
|
|
||||||
|
|
||||||
Return Config
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Private Function TestHasAttribute(Config As T, AttributeType As Type) As Boolean
|
|
||||||
For Each oProperty As PropertyInfo In Config.GetType.GetProperties()
|
|
||||||
If Attribute.IsDefined(oProperty, GetType(ConnectionStringAttribute)) Then
|
|
||||||
Return True
|
|
||||||
End If
|
|
||||||
Next
|
|
||||||
|
|
||||||
Return False
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Serialize a config object to byte array
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="Data"></param>
|
|
||||||
''' <returns></returns>
|
|
||||||
Private Function Serialize(Data As T) As Byte()
|
|
||||||
Try
|
|
||||||
_Logger.Debug("Serializing config object")
|
|
||||||
|
|
||||||
Using oStream = New MemoryStream()
|
|
||||||
_Serializer.Serialize(oStream, Data)
|
|
||||||
_Logger.Debug("Object serialized.")
|
|
||||||
Return oStream.ToArray()
|
|
||||||
End Using
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex)
|
|
||||||
Throw ex
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Write an object to disk as xml
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="Data">The object to write</param>
|
|
||||||
''' <param name="Path">The file name to write to</param>
|
|
||||||
Private Sub WriteToFile(Data As T, Path As String, ForceAll As Boolean)
|
|
||||||
Try
|
|
||||||
_Logger.Debug("Saving config to: {0}", Path)
|
|
||||||
|
|
||||||
' If config was loaded from computer config,
|
|
||||||
' DO NOT save connection string, etc. to user config
|
|
||||||
If _WriteAllValuesToUserConfig = False And ForceAll = False Then
|
|
||||||
Data = FilterValues(Data, _ExcludedAttributes)
|
|
||||||
End If
|
|
||||||
|
|
||||||
Dim oBytes = Serialize(Data)
|
|
||||||
|
|
||||||
Using oFileStream = New FileStream(Path, FileMode.Create, FileAccess.Write)
|
|
||||||
oFileStream.Write(oBytes, 0, oBytes.Length)
|
|
||||||
oFileStream.Flush()
|
|
||||||
End Using
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Warn("Could not save config to {0}", Path)
|
|
||||||
_Logger.Error(ex)
|
|
||||||
Throw ex
|
|
||||||
End Try
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Reads an xml from disk and deserializes to object
|
|
||||||
''' </summary>
|
|
||||||
''' <returns></returns>
|
|
||||||
Private Function ReadFromFile(Path As String) As T
|
|
||||||
Try
|
|
||||||
_Logger.Debug("Loading config from: {0}", Path)
|
|
||||||
Dim oConfig As T
|
|
||||||
|
|
||||||
Using oReader As New StreamReader(Path)
|
|
||||||
oConfig = _Serializer.Deserialize(oReader)
|
|
||||||
End Using
|
|
||||||
|
|
||||||
' If oConfig is Nothing, a config file was created but nothing was written to it.
|
|
||||||
' In this case we need to create oConfig from defaults so we have at least some config object
|
|
||||||
If oConfig Is Nothing Then
|
|
||||||
_Logger.Debug("Config file is valid but empty. Loading default values")
|
|
||||||
oConfig = Activator.CreateInstance(_BlueprintType)
|
|
||||||
End If
|
|
||||||
|
|
||||||
Return oConfig
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Warn("Could not load config from {0}", Path)
|
|
||||||
_Logger.Error(ex)
|
|
||||||
Throw ex
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
End Class
|
|
||||||
@ -1,20 +0,0 @@
|
|||||||
Imports DigitalData.Modules.Config.ConfigAttributes
|
|
||||||
|
|
||||||
Public Class ConfigSample
|
|
||||||
|
|
||||||
<ConnectionString>
|
|
||||||
Public Property ConnectionString As String
|
|
||||||
|
|
||||||
<ConnectionStringTest>
|
|
||||||
Public Property ConnectionStringTest As String
|
|
||||||
|
|
||||||
<ConnectionStringAppServer>
|
|
||||||
Public Property ConnectionStringAppServer As String
|
|
||||||
|
|
||||||
<EDMIAppServer>
|
|
||||||
Public Property EDMIAppServer As String
|
|
||||||
<GlobalSetting>
|
|
||||||
Public Property GlobalSetting As Integer
|
|
||||||
|
|
||||||
Public Property SomeSetting As Boolean
|
|
||||||
End Class
|
|
||||||
@ -1,119 +0,0 @@
|
|||||||
Imports DigitalData.Modules.Logging
|
|
||||||
|
|
||||||
Public Class ConfigUtils
|
|
||||||
Private _Logger As Logger
|
|
||||||
Private _File As Filesystem.File
|
|
||||||
|
|
||||||
Private Const MIGRATE_DIRECTORY As String = "Migrate"
|
|
||||||
|
|
||||||
|
|
||||||
Public Sub New(LogConfig As LogConfig)
|
|
||||||
_Logger = LogConfig.GetLogger()
|
|
||||||
_File = New Filesystem.File(LogConfig)
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Public Function TestMigrationNeeded(TargetDirectory As String) As Boolean
|
|
||||||
If IO.Directory.Exists(TargetDirectory) Then
|
|
||||||
Return False
|
|
||||||
Else
|
|
||||||
Return True
|
|
||||||
End If
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Public Sub MigrateConfig(SourceDirectory As String, TargetDirectory As String, Optional FilePattern As String = "*.*")
|
|
||||||
If IO.Directory.Exists(TargetDirectory) Then
|
|
||||||
_Logger.Warn("Config Migration aborted because new config directory [{0}] already exists!", TargetDirectory)
|
|
||||||
Exit Sub
|
|
||||||
End If
|
|
||||||
|
|
||||||
_Logger.Debug("Creating TargetDirectory [{0}]", TargetDirectory)
|
|
||||||
' Create target directory
|
|
||||||
Try
|
|
||||||
IO.Directory.CreateDirectory(TargetDirectory)
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Warn("Config Migration aborted because new config directory [{0}] could not be created!", TargetDirectory)
|
|
||||||
_Logger.Error(ex)
|
|
||||||
Exit Sub
|
|
||||||
End Try
|
|
||||||
|
|
||||||
' Create Migration directory
|
|
||||||
Dim oMigrationDirectory = IO.Path.Combine(SourceDirectory, MIGRATE_DIRECTORY)
|
|
||||||
_Logger.Debug("Creating MigrationDirectory [{0}]", oMigrationDirectory)
|
|
||||||
Try
|
|
||||||
IO.Directory.CreateDirectory(oMigrationDirectory)
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Warn("Config Migration aborted because migration directory [{0}] could not be created!", oMigrationDirectory)
|
|
||||||
_Logger.Error(ex)
|
|
||||||
Exit Sub
|
|
||||||
End Try
|
|
||||||
|
|
||||||
' Copy individual files from top level directory
|
|
||||||
For Each oPath In IO.Directory.EnumerateFiles(SourceDirectory, FilePattern)
|
|
||||||
Dim oFileInfo = New IO.FileInfo(oPath)
|
|
||||||
|
|
||||||
_Logger.NewBlock($"File {oFileInfo.Name}")
|
|
||||||
_Logger.Debug("Processing file [{0}]", oFileInfo.Name)
|
|
||||||
|
|
||||||
_Logger.Debug("Copying [{0}] to TargetDirectory..", oFileInfo.Name)
|
|
||||||
' Copy to target directory
|
|
||||||
Try
|
|
||||||
IO.File.Copy(oPath, IO.Path.Combine(TargetDirectory, oFileInfo.Name))
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Warn("Could not move old config file {0} to new config location {1}", oFileInfo.Name, TargetDirectory)
|
|
||||||
_Logger.Error(ex)
|
|
||||||
End Try
|
|
||||||
|
|
||||||
_Logger.Debug("Moving [{0}] to MigrationDirectory..", oFileInfo.Name)
|
|
||||||
' Move to migration directory
|
|
||||||
Try
|
|
||||||
IO.File.Move(oPath, IO.Path.Combine(oMigrationDirectory, oFileInfo.Name))
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Warn("Could not move old config file {0} to migration directory {1}", oFileInfo.Name, oMigrationDirectory)
|
|
||||||
_Logger.Error(ex)
|
|
||||||
End Try
|
|
||||||
Next
|
|
||||||
|
|
||||||
For Each oDirectoryPath In IO.Directory.EnumerateDirectories(SourceDirectory, "*", IO.SearchOption.TopDirectoryOnly)
|
|
||||||
Dim oDirInfo As New IO.DirectoryInfo(oDirectoryPath)
|
|
||||||
|
|
||||||
_Logger.NewBlock($"Directory {oDirInfo.Name}")
|
|
||||||
_Logger.Debug("Processing directory [{0}]", oDirInfo.Name)
|
|
||||||
|
|
||||||
' Don't copy TargetDirectory if subpath of SourceDirectory or if MigrationDirectory
|
|
||||||
If oDirInfo.FullName = TargetDirectory Or oDirInfo.FullName = oMigrationDirectory Then
|
|
||||||
_Logger.Debug("Directory [{0}] should not be copied. Skipping.", oDirInfo.Name)
|
|
||||||
Continue For
|
|
||||||
End If
|
|
||||||
|
|
||||||
' Copy directory to TargetDirectory
|
|
||||||
Dim oNewDirectoryPath = IO.Path.Combine(TargetDirectory, oDirInfo.Name)
|
|
||||||
_Logger.Debug("Copying [{0}] to TargetDirectory..", oDirInfo.Name)
|
|
||||||
Try
|
|
||||||
_File.CopyDirectory(oDirInfo.FullName, oNewDirectoryPath, True)
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Warn("Could not move directory [{0}] to new path [{1}]", oDirInfo.FullName, oNewDirectoryPath)
|
|
||||||
_Logger.Error(ex)
|
|
||||||
End Try
|
|
||||||
|
|
||||||
_Logger.Debug("Copying [{0}] to MigrationDirectory..", oDirInfo.Name)
|
|
||||||
' Copy directory to MigrationDirectory
|
|
||||||
Dim oMigrationDirectoryPath = IO.Path.Combine(oMigrationDirectory, oDirInfo.Name)
|
|
||||||
Try
|
|
||||||
_File.CopyDirectory(oDirInfo.FullName, oMigrationDirectoryPath, True)
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex)
|
|
||||||
_Logger.Warn("Could not move directory [{0}] to migration directory [{1}]", oDirInfo.FullName, oMigrationDirectoryPath)
|
|
||||||
End Try
|
|
||||||
|
|
||||||
_Logger.Debug("Deleting [{0}]..", oDirInfo.Name)
|
|
||||||
' Delete directory
|
|
||||||
Try
|
|
||||||
IO.Directory.Delete(oDirInfo.FullName, True)
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex)
|
|
||||||
_Logger.Warn("Could not delete directory [{0}]", oDirInfo.FullName)
|
|
||||||
End Try
|
|
||||||
Next
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
End Class
|
|
||||||
13
Modules.Config/My Project/Application.Designer.vb
generated
13
Modules.Config/My Project/Application.Designer.vb
generated
@ -1,13 +0,0 @@
|
|||||||
'------------------------------------------------------------------------------
|
|
||||||
' <auto-generated>
|
|
||||||
' Dieser Code wurde von einem Tool generiert.
|
|
||||||
' Laufzeitversion:4.0.30319.42000
|
|
||||||
'
|
|
||||||
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
|
|
||||||
' der Code erneut generiert wird.
|
|
||||||
' </auto-generated>
|
|
||||||
'------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Option Strict On
|
|
||||||
Option Explicit On
|
|
||||||
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
|
||||||
<MySubMain>false</MySubMain>
|
|
||||||
<SingleInstance>false</SingleInstance>
|
|
||||||
<ShutdownMode>0</ShutdownMode>
|
|
||||||
<EnableVisualStyles>true</EnableVisualStyles>
|
|
||||||
<AuthenticationMode>0</AuthenticationMode>
|
|
||||||
<ApplicationType>1</ApplicationType>
|
|
||||||
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
|
|
||||||
</MyApplicationData>
|
|
||||||
@ -1,35 +0,0 @@
|
|||||||
Imports System
|
|
||||||
Imports System.Reflection
|
|
||||||
Imports System.Runtime.InteropServices
|
|
||||||
|
|
||||||
' Allgemeine Informationen über eine Assembly werden über die folgenden
|
|
||||||
' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
|
|
||||||
' die einer Assembly zugeordnet sind.
|
|
||||||
|
|
||||||
' Werte der Assemblyattribute überprüfen
|
|
||||||
|
|
||||||
<Assembly: AssemblyTitle("Modules.Config")>
|
|
||||||
<Assembly: AssemblyDescription("")>
|
|
||||||
<Assembly: AssemblyCompany("")>
|
|
||||||
<Assembly: AssemblyProduct("Modules.Config")>
|
|
||||||
<Assembly: AssemblyCopyright("Copyright © 2022")>
|
|
||||||
<Assembly: AssemblyTrademark("")>
|
|
||||||
|
|
||||||
<Assembly: ComVisible(False)>
|
|
||||||
|
|
||||||
'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird.
|
|
||||||
<Assembly: Guid("6e67fba4-81d1-44bb-81f4-16ad52822192")>
|
|
||||||
|
|
||||||
' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
|
|
||||||
'
|
|
||||||
' Hauptversion
|
|
||||||
' Nebenversion
|
|
||||||
' Buildnummer
|
|
||||||
' Revision
|
|
||||||
'
|
|
||||||
' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
|
|
||||||
' übernehmen, indem Sie "*" eingeben:
|
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("1.1.4.1")>
|
|
||||||
<Assembly: AssemblyFileVersion("1.1.4.1")>
|
|
||||||
63
Modules.Config/My Project/Resources.Designer.vb
generated
63
Modules.Config/My Project/Resources.Designer.vb
generated
@ -1,63 +0,0 @@
|
|||||||
'------------------------------------------------------------------------------
|
|
||||||
' <auto-generated>
|
|
||||||
' Dieser Code wurde von einem Tool generiert.
|
|
||||||
' Laufzeitversion:4.0.30319.42000
|
|
||||||
'
|
|
||||||
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
|
|
||||||
' der Code erneut generiert wird.
|
|
||||||
' </auto-generated>
|
|
||||||
'------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Option Strict On
|
|
||||||
Option Explicit On
|
|
||||||
|
|
||||||
Imports System
|
|
||||||
|
|
||||||
Namespace My.Resources
|
|
||||||
|
|
||||||
'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert
|
|
||||||
'-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert.
|
|
||||||
'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
|
|
||||||
'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu.
|
|
||||||
'''<summary>
|
|
||||||
''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
|
|
||||||
'''</summary>
|
|
||||||
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0"), _
|
|
||||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
|
||||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
|
||||||
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
|
|
||||||
Friend Module Resources
|
|
||||||
|
|
||||||
Private resourceMan As Global.System.Resources.ResourceManager
|
|
||||||
|
|
||||||
Private resourceCulture As Global.System.Globalization.CultureInfo
|
|
||||||
|
|
||||||
'''<summary>
|
|
||||||
''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
|
|
||||||
'''</summary>
|
|
||||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
|
|
||||||
Get
|
|
||||||
If Object.ReferenceEquals(resourceMan, Nothing) Then
|
|
||||||
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.Modules.Config.Resources", GetType(Resources).Assembly)
|
|
||||||
resourceMan = temp
|
|
||||||
End If
|
|
||||||
Return resourceMan
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
|
|
||||||
'''<summary>
|
|
||||||
''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
|
|
||||||
''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden.
|
|
||||||
'''</summary>
|
|
||||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Friend Property Culture() As Global.System.Globalization.CultureInfo
|
|
||||||
Get
|
|
||||||
Return resourceCulture
|
|
||||||
End Get
|
|
||||||
Set
|
|
||||||
resourceCulture = value
|
|
||||||
End Set
|
|
||||||
End Property
|
|
||||||
End Module
|
|
||||||
End Namespace
|
|
||||||
@ -1,117 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
</root>
|
|
||||||
73
Modules.Config/My Project/Settings.Designer.vb
generated
73
Modules.Config/My Project/Settings.Designer.vb
generated
@ -1,73 +0,0 @@
|
|||||||
'------------------------------------------------------------------------------
|
|
||||||
' <auto-generated>
|
|
||||||
' Dieser Code wurde von einem Tool generiert.
|
|
||||||
' Laufzeitversion:4.0.30319.42000
|
|
||||||
'
|
|
||||||
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
|
|
||||||
' der Code erneut generiert wird.
|
|
||||||
' </auto-generated>
|
|
||||||
'------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Option Strict On
|
|
||||||
Option Explicit On
|
|
||||||
|
|
||||||
|
|
||||||
Namespace My
|
|
||||||
|
|
||||||
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
|
||||||
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.7.0.0"), _
|
|
||||||
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Partial Friend NotInheritable Class MySettings
|
|
||||||
Inherits Global.System.Configuration.ApplicationSettingsBase
|
|
||||||
|
|
||||||
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
|
|
||||||
|
|
||||||
#Region "Automatische My.Settings-Speicherfunktion"
|
|
||||||
#If _MyType = "WindowsForms" Then
|
|
||||||
Private Shared addedHandler As Boolean
|
|
||||||
|
|
||||||
Private Shared addedHandlerLockObject As New Object
|
|
||||||
|
|
||||||
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
|
|
||||||
If My.Application.SaveMySettingsOnExit Then
|
|
||||||
My.Settings.Save()
|
|
||||||
End If
|
|
||||||
End Sub
|
|
||||||
#End If
|
|
||||||
#End Region
|
|
||||||
|
|
||||||
Public Shared ReadOnly Property [Default]() As MySettings
|
|
||||||
Get
|
|
||||||
|
|
||||||
#If _MyType = "WindowsForms" Then
|
|
||||||
If Not addedHandler Then
|
|
||||||
SyncLock addedHandlerLockObject
|
|
||||||
If Not addedHandler Then
|
|
||||||
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
|
|
||||||
addedHandler = True
|
|
||||||
End If
|
|
||||||
End SyncLock
|
|
||||||
End If
|
|
||||||
#End If
|
|
||||||
Return defaultInstance
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
End Class
|
|
||||||
End Namespace
|
|
||||||
|
|
||||||
Namespace My
|
|
||||||
|
|
||||||
<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _
|
|
||||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
|
||||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
|
|
||||||
Friend Module MySettingsProperty
|
|
||||||
|
|
||||||
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
|
|
||||||
Friend ReadOnly Property Settings() As Global.DigitalData.Modules.Config.My.MySettings
|
|
||||||
Get
|
|
||||||
Return Global.DigitalData.Modules.Config.My.MySettings.Default
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
End Module
|
|
||||||
End Namespace
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
<?xml version='1.0' encoding='utf-8'?>
|
|
||||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
|
|
||||||
<Profiles>
|
|
||||||
<Profile Name="(Default)" />
|
|
||||||
</Profiles>
|
|
||||||
<Settings />
|
|
||||||
</SettingsFile>
|
|
||||||
@ -1,70 +0,0 @@
|
|||||||
Imports Config
|
|
||||||
Imports NLog
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Sample Config Class inheriting from BaseConfig
|
|
||||||
'''
|
|
||||||
'''
|
|
||||||
'''
|
|
||||||
''' Things this class should do:
|
|
||||||
'''
|
|
||||||
''' - Provide defaults for all values
|
|
||||||
''' - Load the current config using the LoadConfig method of BaseConfig
|
|
||||||
''' - If no configfile was found, it should create a new datatable with only default values
|
|
||||||
''' - If a configfile was found, it should merge the values from this file with the defaults from this class
|
|
||||||
''' - For each propertyname defined in PropertyNames
|
|
||||||
''' - Check for existing value in datatable
|
|
||||||
''' - If a value is present, use it
|
|
||||||
''' - If no value is exists, use the default value
|
|
||||||
''' - Assign the resulting values to class properties
|
|
||||||
''' - Save the new config to disk
|
|
||||||
''' </summary>
|
|
||||||
Public Class SampleConfig
|
|
||||||
Inherits BaseConfig
|
|
||||||
|
|
||||||
Private _logger As Logger
|
|
||||||
|
|
||||||
Public ReadOnly ConnectionString As String
|
|
||||||
Public ReadOnly UniversalViewer As String
|
|
||||||
|
|
||||||
Public Overloads ReadOnly Property PropertyNames As Dictionary(Of String, String)
|
|
||||||
Get
|
|
||||||
Return New Dictionary(Of String, String) From {
|
|
||||||
{"ConnectionString", ""},
|
|
||||||
{"UniversalViewer", ""}
|
|
||||||
}
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
|
|
||||||
Public Sub New(LogFactory As LogFactory)
|
|
||||||
MyBase.New(LogFactory)
|
|
||||||
|
|
||||||
_logger = LogFactory.GetCurrentClassLogger()
|
|
||||||
|
|
||||||
' Load the existing values from the config file into PropertyNames
|
|
||||||
' overwriting the default values
|
|
||||||
Dim oDataTable = LoadConfig()
|
|
||||||
|
|
||||||
For Each oRow As DataRow In oDataTable.Rows
|
|
||||||
Dim oValue = oRow.Item(_configValue)
|
|
||||||
Dim oKey = oRow.Item(_configKey)
|
|
||||||
|
|
||||||
PropertyNames.Item(oKey) = oValue
|
|
||||||
Next
|
|
||||||
|
|
||||||
' Assign the merged properties to class properties, optionally converting them beforehand
|
|
||||||
For Each oProperty As KeyValuePair(Of String, String) In PropertyNames
|
|
||||||
Select Case oProperty.Key
|
|
||||||
Case "ConnectionString"
|
|
||||||
ConnectionString = oProperty.Value
|
|
||||||
Case "UniversalViewer"
|
|
||||||
UniversalViewer = oProperty.Value
|
|
||||||
Case Else
|
|
||||||
_logger.Warn("Property {0} was found in PropertyNames but was not assigned to a config property", oProperty.Key)
|
|
||||||
End Select
|
|
||||||
Next
|
|
||||||
|
|
||||||
' Convert the dictionary back to a datatable and save it
|
|
||||||
SaveConfig(ConvertToDataTable(PropertyNames))
|
|
||||||
End Sub
|
|
||||||
End Class
|
|
||||||
@ -1,4 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<packages>
|
|
||||||
<package id="NLog" version="4.7.10" targetFramework="net461" />
|
|
||||||
</packages>
|
|
||||||
@ -1,350 +0,0 @@
|
|||||||
Imports FirebirdSql.Data.FirebirdClient
|
|
||||||
Imports System.Text.RegularExpressions
|
|
||||||
Imports DigitalData.Modules.Logging
|
|
||||||
Imports System.ComponentModel
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' MODULE: Firebird
|
|
||||||
'''
|
|
||||||
''' VERSION: 0.0.0.4
|
|
||||||
'''
|
|
||||||
''' DATE: 18.12.2018
|
|
||||||
'''
|
|
||||||
''' DESCRIPTION:
|
|
||||||
'''
|
|
||||||
''' DEPENDENCIES: NLog, >= 4.5.10
|
|
||||||
'''
|
|
||||||
''' EntityFramework.Firebird, >= 6.4.0
|
|
||||||
'''
|
|
||||||
''' FirebirdSql.Data.FirebirdClient, >= 6.4.0
|
|
||||||
'''
|
|
||||||
''' PARAMETERS: LogConfig, DigitalData.Modules.Logging.LogConfig
|
|
||||||
''' The LogFactory containing the current log config. Used to instanciate the class logger for this and any dependent class
|
|
||||||
'''
|
|
||||||
''' DataSource, String
|
|
||||||
''' The server where the database lives, for example 127.0.0.1 or dd-vmx09-vm03
|
|
||||||
'''
|
|
||||||
''' Database, String
|
|
||||||
''' The location of the Database in the format `127.0.0.1:E:\Path\To\Database.FDB`
|
|
||||||
'''
|
|
||||||
''' User, String
|
|
||||||
''' The user name to connect as
|
|
||||||
'''
|
|
||||||
''' Password, String
|
|
||||||
''' The user's password
|
|
||||||
'''
|
|
||||||
''' PROPERTIES: ConnectionEstablished, Boolean
|
|
||||||
''' If the last opened connection was successful
|
|
||||||
'''
|
|
||||||
''' ConnectionFailed, Boolean
|
|
||||||
''' If the last opened connection failed
|
|
||||||
'''
|
|
||||||
''' ConnectionString, String
|
|
||||||
''' The used connectionstring
|
|
||||||
'''
|
|
||||||
''' EXAMPLES:
|
|
||||||
'''
|
|
||||||
''' REMARKS: If the connection fails due to "wrong username or password", the cause might be that the server harddrive is full..
|
|
||||||
''' </summary>
|
|
||||||
Public Class Firebird
|
|
||||||
Private _Logger As Logger
|
|
||||||
Private _LogConfig As LogConfig
|
|
||||||
Private _connectionServer As String
|
|
||||||
Private _connectionDatabase As String
|
|
||||||
Private _connectionUsername As String
|
|
||||||
Private _connectionPassword As String
|
|
||||||
Private _connectionString As String
|
|
||||||
Public _DBInitialized As Boolean = False
|
|
||||||
|
|
||||||
Public Const MAX_POOL_SIZE = 1000
|
|
||||||
|
|
||||||
Public Enum TransactionMode
|
|
||||||
<Description("Use no transaction, neither internal nor external")>
|
|
||||||
NoTransaction
|
|
||||||
<Description("Use the transaction supplied in the Transaction Parameter")>
|
|
||||||
ExternalTransaction
|
|
||||||
<Description("Create an internal transaction on the fly")>
|
|
||||||
WithTransaction
|
|
||||||
End Enum
|
|
||||||
|
|
||||||
Public ReadOnly Property ConnectionString As String
|
|
||||||
Get
|
|
||||||
Return _connectionString
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
|
|
||||||
Public ReadOnly Property DatabaseName As String
|
|
||||||
Get
|
|
||||||
Dim oRegex As New Regex("^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:")
|
|
||||||
Dim oPath As String = oRegex.Replace(_connectionDatabase, "")
|
|
||||||
Dim oFileInfo As New IO.FileInfo(oPath)
|
|
||||||
Return oFileInfo.Name
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
'''
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="LogConfig">The LogFactory containing the current log config. Used to instanciate the class logger for this and any dependent class</param>
|
|
||||||
''' <param name="Datasource">The server where the database lives, for example 127.0.0.1 or dd-vmx09-vm03</param>
|
|
||||||
''' <param name="Database">The location of the Database in the format `127.0.0.1:E:\Path\To\Database.FDB`</param>
|
|
||||||
''' <param name="User">The user name to connect as</param>
|
|
||||||
''' <param name="Password">The user's password</param>
|
|
||||||
''' <exception cref="Exceptions.DatabaseException"></exception>
|
|
||||||
Public Sub New(LogConfig As LogConfig, Datasource As String, Database As String, User As String, Password As String)
|
|
||||||
Try
|
|
||||||
_LogConfig = LogConfig
|
|
||||||
_Logger = _LogConfig.GetLogger()
|
|
||||||
Dim oConnectionString = GetConnectionString(Datasource, Database, User, Password)
|
|
||||||
|
|
||||||
_connectionServer = Datasource
|
|
||||||
_connectionDatabase = Database
|
|
||||||
_connectionUsername = User
|
|
||||||
_connectionPassword = Password
|
|
||||||
_connectionString = oConnectionString
|
|
||||||
|
|
||||||
_Logger.Debug("Connecting to database..")
|
|
||||||
|
|
||||||
' Test the connection
|
|
||||||
Dim oConnection = GetConnection()
|
|
||||||
' If initial connection was successfully, close it
|
|
||||||
oConnection.Close()
|
|
||||||
|
|
||||||
If oConnection Is Nothing Then
|
|
||||||
Throw New Exceptions.DatabaseException()
|
|
||||||
Else
|
|
||||||
_DBInitialized = True
|
|
||||||
End If
|
|
||||||
|
|
||||||
_Logger.Debug("Connection sucessfully established!")
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex)
|
|
||||||
End Try
|
|
||||||
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Public Function GetConnection() As FbConnection
|
|
||||||
Try
|
|
||||||
Dim oConnection = New FbConnection(_connectionString)
|
|
||||||
oConnection.Open()
|
|
||||||
|
|
||||||
Return oConnection
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex)
|
|
||||||
Return Nothing
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Builds a connectionstring from the provided arguments.
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="DataSource">The database server where to connect to</param>
|
|
||||||
''' <param name="Database">The datasource, eg. the path of the FDB-file</param>
|
|
||||||
''' <param name="User">The user used to connect to the database</param>
|
|
||||||
''' <param name="Password">The password of the connecting user</param>
|
|
||||||
''' <returns>A connectionstring</returns>
|
|
||||||
Private Function GetConnectionString(DataSource As String, Database As String, User As String, Password As String) As String
|
|
||||||
Return New FbConnectionStringBuilder With {
|
|
||||||
.DataSource = DataSource,
|
|
||||||
.Database = Database,
|
|
||||||
.UserID = User,
|
|
||||||
.Password = Password,
|
|
||||||
.Charset = "UTF8",
|
|
||||||
.MaxPoolSize = MAX_POOL_SIZE
|
|
||||||
}.ToString()
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Private Function MaybeGetTransaction(Connection As FbConnection, Mode As TransactionMode, Transaction As FbTransaction) As FbTransaction
|
|
||||||
If Mode = TransactionMode.NoTransaction Then
|
|
||||||
Return Nothing
|
|
||||||
ElseIf Mode = TransactionMode.ExternalTransaction Then
|
|
||||||
Return Transaction
|
|
||||||
Else
|
|
||||||
Return Connection.BeginTransaction()
|
|
||||||
End If
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Private Function MaybeCommitTransaction(Transaction As FbTransaction, TransactionMode As TransactionMode) As Boolean
|
|
||||||
Select Case TransactionMode
|
|
||||||
Case TransactionMode.NoTransaction
|
|
||||||
Return True
|
|
||||||
Case TransactionMode.ExternalTransaction
|
|
||||||
Return True
|
|
||||||
Case TransactionMode.WithTransaction
|
|
||||||
Try
|
|
||||||
Transaction.Commit()
|
|
||||||
Return True
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex)
|
|
||||||
Return False
|
|
||||||
End Try
|
|
||||||
Case Else
|
|
||||||
Return True
|
|
||||||
End Select
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Executes a non-query command.
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="SqlCommand">The command to execute</param>
|
|
||||||
''' <param name="Connection">The Firebird connection to use</param>
|
|
||||||
''' <returns>True, if command was executed sucessfully. Otherwise false.</returns>
|
|
||||||
Public Function ExecuteNonQueryWithConnection(SqlCommand As String, Connection As FbConnection, Optional TransactionMode As TransactionMode = TransactionMode.WithTransaction, Optional Transaction As FbTransaction = Nothing) As Boolean
|
|
||||||
_Logger.Debug("Executing Non-Query: {0}", SqlCommand)
|
|
||||||
|
|
||||||
If Connection Is Nothing Then
|
|
||||||
_Logger.Warn("Connection is nothing!")
|
|
||||||
Return Nothing
|
|
||||||
End If
|
|
||||||
|
|
||||||
Dim oTransaction = MaybeGetTransaction(Connection, TransactionMode, Transaction)
|
|
||||||
|
|
||||||
Try
|
|
||||||
Dim oCommand As New FbCommand With {
|
|
||||||
.CommandText = SqlCommand,
|
|
||||||
.Connection = Connection
|
|
||||||
}
|
|
||||||
|
|
||||||
If Not IsNothing(oTransaction) Then
|
|
||||||
oCommand.Transaction = oTransaction
|
|
||||||
End If
|
|
||||||
|
|
||||||
oCommand.ExecuteNonQuery()
|
|
||||||
_Logger.Debug("Command executed!")
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex, $"Error in ExecuteNonQuery while executing command: [{SqlCommand}]")
|
|
||||||
_Logger.Warn($"Unexpected error in ExecuteNonQueryWithConnection: [{SqlCommand}]")
|
|
||||||
Throw ex
|
|
||||||
Finally
|
|
||||||
MaybeCommitTransaction(oTransaction, TransactionMode)
|
|
||||||
End Try
|
|
||||||
|
|
||||||
Return True
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Executes a non-query command.
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="SqlCommand">The command to execute</param>
|
|
||||||
''' <returns>True, if command was executed sucessfully. Otherwise false.</returns>
|
|
||||||
Public Function ExecuteNonQuery(SqlCommand As String) As Boolean
|
|
||||||
Using oConnection As FbConnection = GetConnection()
|
|
||||||
Return ExecuteNonQueryWithConnection(SqlCommand, oConnection)
|
|
||||||
End Using
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Executes a non-query command inside the specified transaction.
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="SqlCommand">The command to execute</param>
|
|
||||||
''' <returns>True, if command was executed sucessfully. Otherwise false.</returns>
|
|
||||||
Public Function ExecuteNonQuery(SqlCommand As String, Transaction As FbTransaction) As Boolean
|
|
||||||
Using oConnection As FbConnection = GetConnection()
|
|
||||||
Return ExecuteNonQueryWithConnection(SqlCommand, oConnection, TransactionMode.ExternalTransaction, Transaction)
|
|
||||||
End Using
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Executes a sql query resulting in a scalar value.
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="SqlQuery">The query to execute</param>
|
|
||||||
''' <param name="Connection">The Firebird connection to use</param>
|
|
||||||
''' <returns>The scalar value if the command was executed successfully. Nothing otherwise.</returns>
|
|
||||||
Public Function GetScalarValueWithConnection(SqlQuery As String, Connection As FbConnection, Optional TransactionMode As TransactionMode = TransactionMode.WithTransaction, Optional Transaction As FbTransaction = Nothing) As Object
|
|
||||||
_Logger.Debug("Fetching Scalar-Value: {0}", SqlQuery)
|
|
||||||
|
|
||||||
If Connection Is Nothing Then
|
|
||||||
_Logger.Warn("Connection is nothing!")
|
|
||||||
Return Nothing
|
|
||||||
End If
|
|
||||||
|
|
||||||
Dim oTransaction = MaybeGetTransaction(Connection, TransactionMode, Transaction)
|
|
||||||
Dim oResult As Object
|
|
||||||
|
|
||||||
Try
|
|
||||||
Dim oCommand As New FbCommand With {
|
|
||||||
.CommandText = SqlQuery,
|
|
||||||
.Connection = Connection,
|
|
||||||
.Transaction = oTransaction
|
|
||||||
}
|
|
||||||
oResult = oCommand.ExecuteScalar()
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex, $"Error in ReturnScalar while executing command: [{SqlQuery}]")
|
|
||||||
Throw ex
|
|
||||||
Finally
|
|
||||||
MaybeCommitTransaction(oTransaction, TransactionMode)
|
|
||||||
End Try
|
|
||||||
|
|
||||||
Return oResult
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Executes a sql query resulting in a scalar value.
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="SqlQuery">The query to execute</param>
|
|
||||||
''' <returns>The scalar value if the command was executed successfully. Nothing otherwise.</returns>
|
|
||||||
Public Function GetScalarValue(SqlQuery As String) As Object
|
|
||||||
Dim oConnection As FbConnection = GetConnection()
|
|
||||||
Dim oScalarValue As Object = GetScalarValueWithConnection(SqlQuery, oConnection)
|
|
||||||
oConnection.Close()
|
|
||||||
|
|
||||||
Return oScalarValue
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Executes a sql query resulting in a table of values.
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="SqlQuery">The query to execute</param>
|
|
||||||
''' <param name="Connection">The Firebird connection to use</param>
|
|
||||||
''' <returns>A datatable containing the results if the command was executed successfully. Nothing otherwise.</returns>
|
|
||||||
Public Function GetDatatableWithConnection(SqlQuery As String, Connection As FbConnection, Optional TransactionMode As TransactionMode = TransactionMode.NoTransaction, Optional Transaction As FbTransaction = Nothing) As DataTable
|
|
||||||
_Logger.Debug("Fetching Datatable: {0}", SqlQuery)
|
|
||||||
|
|
||||||
If Connection Is Nothing Then
|
|
||||||
_Logger.Warn("Connection is nothing!")
|
|
||||||
Return Nothing
|
|
||||||
End If
|
|
||||||
|
|
||||||
Dim oTransaction = MaybeGetTransaction(Connection, TransactionMode, Transaction)
|
|
||||||
Dim oDatatable As New DataTable() With {
|
|
||||||
.TableName = "DDRESULT"
|
|
||||||
}
|
|
||||||
|
|
||||||
Try
|
|
||||||
Dim oAdapter As New FbDataAdapter(New FbCommand With {
|
|
||||||
.CommandText = SqlQuery,
|
|
||||||
.Connection = Connection,
|
|
||||||
.Transaction = oTransaction
|
|
||||||
})
|
|
||||||
|
|
||||||
oAdapter.Fill(oDatatable)
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex)
|
|
||||||
_Logger.Warn("Error in GetDatatableWithConnection while executing command: [{0}]", SqlQuery)
|
|
||||||
Throw ex
|
|
||||||
Finally
|
|
||||||
MaybeCommitTransaction(oTransaction, TransactionMode)
|
|
||||||
End Try
|
|
||||||
|
|
||||||
Return oDatatable
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Executes a sql query resulting in a table of values.
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="SqlQuery">The query to execute</param>
|
|
||||||
''' <returns>A datatable containing the results if the command was executed successfully. Nothing otherwise.</returns>
|
|
||||||
Public Function GetDatatable(SqlQuery As String, Optional TransactionMode As TransactionMode = TransactionMode.NoTransaction, Optional Transaction As FbTransaction = Nothing) As DataTable
|
|
||||||
Try
|
|
||||||
Dim oConnection As FbConnection = GetConnection()
|
|
||||||
Dim oDatatable As DataTable = GetDatatableWithConnection(SqlQuery, oConnection, TransactionMode, Transaction)
|
|
||||||
oConnection.Close()
|
|
||||||
|
|
||||||
Return oDatatable
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex)
|
|
||||||
_Logger.Warn("Error in GetDatatable while executing command: '{0}'", SqlQuery)
|
|
||||||
Throw ex
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
End Class
|
|
||||||
@ -1,518 +0,0 @@
|
|||||||
Imports System.ComponentModel
|
|
||||||
Imports System.Data.Common
|
|
||||||
Imports System.Data.SqlClient
|
|
||||||
Imports DigitalData.Modules.Encryption
|
|
||||||
Imports DigitalData.Modules.Logging
|
|
||||||
Imports DigitalData.Modules.Base
|
|
||||||
|
|
||||||
Public Class MSSQLServer
|
|
||||||
Implements IDatabase
|
|
||||||
|
|
||||||
Public Property DBInitialized As Boolean = False Implements IDatabase.DBInitialized
|
|
||||||
Public Property CurrentConnectionString As String = "" Implements IDatabase.CurrentConnectionString
|
|
||||||
|
|
||||||
Private ReadOnly QueryTimeout As Integer
|
|
||||||
Private ReadOnly Logger As Logger
|
|
||||||
|
|
||||||
Public Enum TransactionMode
|
|
||||||
<Description("Use no transaction, neither internal nor external")>
|
|
||||||
NoTransaction
|
|
||||||
<Description("Use the transaction supplied in the Transaction Parameter")>
|
|
||||||
ExternalTransaction
|
|
||||||
<Description("Create an internal transaction on the fly")>
|
|
||||||
WithTransaction
|
|
||||||
End Enum
|
|
||||||
|
|
||||||
Public Sub New(pLogConfig As LogConfig, pConnectionString As String, Optional pTimeout As Integer = Constants.DEFAULT_TIMEOUT)
|
|
||||||
Logger = pLogConfig.GetLogger()
|
|
||||||
QueryTimeout = pTimeout
|
|
||||||
|
|
||||||
Try
|
|
||||||
CurrentConnectionString = pConnectionString
|
|
||||||
DBInitialized = TestCanConnect(CurrentConnectionString)
|
|
||||||
Catch ex As Exception
|
|
||||||
DBInitialized = False
|
|
||||||
Logger.Error(ex)
|
|
||||||
End Try
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Public Sub New(pLogConfig As LogConfig, Server As String, Database As String, UserId As String, Password As String, Optional Timeout As Integer = Constants.DEFAULT_TIMEOUT)
|
|
||||||
Logger = pLogConfig.GetLogger()
|
|
||||||
QueryTimeout = Timeout
|
|
||||||
|
|
||||||
Try
|
|
||||||
CurrentConnectionString = GetConnectionString(Server, Database, UserId, Password)
|
|
||||||
DBInitialized = TestCanConnect(CurrentConnectionString)
|
|
||||||
Catch ex As Exception
|
|
||||||
DBInitialized = False
|
|
||||||
Logger.Error(ex)
|
|
||||||
End Try
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Encrypts a connection string password.
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="pConnectionString">A connection string with a plain-text password</param>
|
|
||||||
''' <returns>The connection string with the password encrypted.</returns>
|
|
||||||
<DebuggerStepThrough()>
|
|
||||||
Public Shared Function EncryptConnectionString(pConnectionString As String) As String
|
|
||||||
Dim oEncryption As New EncryptionLegacy()
|
|
||||||
Dim oBuilder As New SqlConnectionStringBuilder() With {.ConnectionString = pConnectionString}
|
|
||||||
Dim oEncryptedPassword = oEncryption.EncryptData(oBuilder.Password)
|
|
||||||
oBuilder.Password = oEncryptedPassword
|
|
||||||
|
|
||||||
Return oBuilder.ToString()
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Decrypts a connection string password.
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="pConnectionString">A connection string with a encrypted password</param>
|
|
||||||
''' <returns>The connection string with the password decrypted.</returns>
|
|
||||||
<DebuggerStepThrough()>
|
|
||||||
Public Shared Function DecryptConnectionString(pConnectionString As String) As String
|
|
||||||
Dim oEncryption As New EncryptionLegacy()
|
|
||||||
Dim oBuilder As New SqlConnectionStringBuilder() With {.ConnectionString = pConnectionString}
|
|
||||||
Dim oDecryptedPassword = oEncryption.DecryptData(oBuilder.Password)
|
|
||||||
oBuilder.Password = oDecryptedPassword
|
|
||||||
|
|
||||||
Return oBuilder.ToString()
|
|
||||||
End Function
|
|
||||||
|
|
||||||
<DebuggerStepThrough()>
|
|
||||||
Public Function GetConnectionString(Server As String, Database As String, UserId As String, Password As String) As String
|
|
||||||
Dim oConnectionStringBuilder As New SqlConnectionStringBuilder() With {
|
|
||||||
.DataSource = Server,
|
|
||||||
.InitialCatalog = Database,
|
|
||||||
.UserID = UserId,
|
|
||||||
.Password = Password
|
|
||||||
}
|
|
||||||
|
|
||||||
Return oConnectionStringBuilder.ToString
|
|
||||||
End Function
|
|
||||||
|
|
||||||
<DebuggerStepThrough()>
|
|
||||||
Public Function GetConnection() As SqlConnection
|
|
||||||
Try
|
|
||||||
Dim oConnection = GetSQLConnection()
|
|
||||||
Return oConnection
|
|
||||||
Catch ex As Exception
|
|
||||||
Logger.Error(ex)
|
|
||||||
Return Nothing
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
<DebuggerStepThrough()>
|
|
||||||
Private Function MaybeGetTransaction(Connection As SqlConnection, Mode As TransactionMode, Transaction As SqlTransaction) As SqlTransaction
|
|
||||||
If Connection Is Nothing Then
|
|
||||||
Throw New ArgumentNullException("Connection")
|
|
||||||
End If
|
|
||||||
|
|
||||||
If Mode = TransactionMode.NoTransaction Then
|
|
||||||
Return Nothing
|
|
||||||
ElseIf Mode = TransactionMode.ExternalTransaction Then
|
|
||||||
Return Transaction
|
|
||||||
Else
|
|
||||||
Return Connection.BeginTransaction()
|
|
||||||
End If
|
|
||||||
End Function
|
|
||||||
|
|
||||||
<DebuggerStepThrough()>
|
|
||||||
Private Function MaybeCommitTransaction(Transaction As SqlTransaction, TransactionMode As TransactionMode) As Boolean
|
|
||||||
Select Case TransactionMode
|
|
||||||
Case TransactionMode.NoTransaction
|
|
||||||
Return True
|
|
||||||
Case TransactionMode.ExternalTransaction
|
|
||||||
Return True
|
|
||||||
Case TransactionMode.WithTransaction
|
|
||||||
Try
|
|
||||||
Transaction.Commit()
|
|
||||||
Return True
|
|
||||||
Catch ex As Exception
|
|
||||||
Logger.Error(ex)
|
|
||||||
Return False
|
|
||||||
End Try
|
|
||||||
Case Else
|
|
||||||
Return True
|
|
||||||
End Select
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Public Function GetConnectionStringForId(pConnectionId As Integer) As String
|
|
||||||
Return Get_ConnectionStringforID(pConnectionId)
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Public Function Get_ConnectionStringforID(pConnectionId As Integer) As String
|
|
||||||
Dim oConnectionString As String = String.Empty
|
|
||||||
|
|
||||||
Logger.Debug("Getting ConnectionString for ConnectionId [{0}]", pConnectionId)
|
|
||||||
|
|
||||||
If pConnectionId = 0 Then
|
|
||||||
Logger.Warn("ConnectionId was 0. Falling back to default connection.")
|
|
||||||
Return String.Empty
|
|
||||||
End If
|
|
||||||
|
|
||||||
Try
|
|
||||||
Dim oTable As DataTable = GetDatatable($"SELECT * FROM TBDD_CONNECTION WHERE GUID = {pConnectionId}")
|
|
||||||
If oTable.Rows.Count = 1 Then
|
|
||||||
Dim oRow As DataRow = oTable.Rows(0)
|
|
||||||
Dim oProvider = oRow.Item("SQL_PROVIDER").ToString.ToUpper
|
|
||||||
Dim oServer = oRow.Item("SERVER")
|
|
||||||
Dim oDatabase = oRow.Item("DATENBANK")
|
|
||||||
Dim oUser = oRow.Item("USERNAME")
|
|
||||||
Dim oPassword = oRow.Item("PASSWORD")
|
|
||||||
|
|
||||||
Select Case oProvider
|
|
||||||
Case "MS-SQL"
|
|
||||||
If oUser = "WINAUTH" Then
|
|
||||||
oConnectionString = $"Server={oServer};Database={oDatabase};Trusted_Connection=True;"
|
|
||||||
Else
|
|
||||||
oConnectionString = $"Server={oServer};Database={oDatabase};User Id={oUser};Password={oPassword};"
|
|
||||||
End If
|
|
||||||
|
|
||||||
Case "ORACLE"
|
|
||||||
If oRow.Item("BEMERKUNG").ToString.Contains("without tnsnames") Then
|
|
||||||
oConnectionString = $"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={oServer})(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME={oDatabase})));User Id={oUser};Password={oPassword};"
|
|
||||||
Else
|
|
||||||
oConnectionString = $"Data Source={oServer};Persist Security Info=True;User Id={oUser};Password={oPassword};Unicode=True"
|
|
||||||
End If
|
|
||||||
|
|
||||||
Case Else
|
|
||||||
Logger.Warn("Provider [{0}] not supported!", oProvider)
|
|
||||||
|
|
||||||
End Select
|
|
||||||
|
|
||||||
Else
|
|
||||||
Logger.Warn("No entry for Connection-ID: [{0}] ", pConnectionId.ToString)
|
|
||||||
End If
|
|
||||||
|
|
||||||
Catch ex As Exception
|
|
||||||
Logger.Error(ex)
|
|
||||||
Logger.Warn("Error in Get_ConnectionStringforID")
|
|
||||||
End Try
|
|
||||||
|
|
||||||
Return DecryptConnectionString(oConnectionString)
|
|
||||||
End Function
|
|
||||||
|
|
||||||
<DebuggerStepThrough()>
|
|
||||||
Private Function TestCanConnect() As Boolean
|
|
||||||
Return TestCanConnect(CurrentConnectionString)
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Private Function TestCanConnect(pConnectionString As String) As Boolean
|
|
||||||
Try
|
|
||||||
Logger.Debug("Testing connection to [{0}]", MaskConnectionString(pConnectionString))
|
|
||||||
|
|
||||||
Dim oDecryptedConnectionString = DecryptConnectionString(pConnectionString)
|
|
||||||
Dim oConnection As New SqlConnection(oDecryptedConnectionString)
|
|
||||||
OpenSQLConnection(oConnection)
|
|
||||||
oConnection.Close()
|
|
||||||
Return True
|
|
||||||
Catch ex As Exception
|
|
||||||
Logger.Error(ex)
|
|
||||||
Return False
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' This Function intentionally has no try..catch block to have any errors caught outside
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="Connection"></param>
|
|
||||||
''' <returns></returns>
|
|
||||||
Private Function OpenSQLConnection(Connection As SqlConnection) As SqlConnection
|
|
||||||
If Connection.State = ConnectionState.Closed Then
|
|
||||||
Connection.Open()
|
|
||||||
End If
|
|
||||||
|
|
||||||
Return Connection
|
|
||||||
End Function
|
|
||||||
|
|
||||||
<DebuggerStepThrough()>
|
|
||||||
Private Function GetSQLConnection() As SqlConnection
|
|
||||||
Return GetConnection(CurrentConnectionString)
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Private Function GetConnection(pConnectionString As String) As SqlConnection
|
|
||||||
Try
|
|
||||||
Dim oConnection As New SqlConnection(pConnectionString)
|
|
||||||
oConnection = OpenSQLConnection(oConnection)
|
|
||||||
|
|
||||||
Dim oMaskedConnectionString = MaskConnectionString(pConnectionString)
|
|
||||||
Logger.Debug("The Following Connection is open: {0}", oMaskedConnectionString)
|
|
||||||
|
|
||||||
Return oConnection
|
|
||||||
Catch ex As Exception
|
|
||||||
Logger.Error(ex)
|
|
||||||
|
|
||||||
Return Nothing
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
<DebuggerStepThrough()>
|
|
||||||
Private Function MaskConnectionString(pConnectionString As String) As String
|
|
||||||
Try
|
|
||||||
If pConnectionString Is Nothing OrElse pConnectionString.Length = 0 Then
|
|
||||||
Logger.Warn("Connection String is empty!")
|
|
||||||
Throw New ArgumentNullException("pConnectionString")
|
|
||||||
End If
|
|
||||||
|
|
||||||
Dim oBuilder As New SqlConnectionStringBuilder() With {.ConnectionString = pConnectionString}
|
|
||||||
Dim oConnectionString = pConnectionString.Replace(oBuilder.Password, "XXXXX")
|
|
||||||
Return oConnectionString
|
|
||||||
Catch ex As Exception
|
|
||||||
Logger.Error(ex)
|
|
||||||
Return "Invalid ConnectionString"
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
'<DebuggerStepThrough()>
|
|
||||||
Public Function GetDatatable(SqlCommand As String) As DataTable Implements IDatabase.GetDatatable
|
|
||||||
Return GetDatatable(SqlCommand, QueryTimeout)
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Returns a datatable for a sql-statement
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="SqlCommand">sqlcommand for datatable (select XYZ from TableORView)</param>
|
|
||||||
''' <returns>Returns a datatable</returns>
|
|
||||||
Public Function GetDatatable(SqlCommand As String, Timeout As Integer) As DataTable Implements IDatabase.GetDatatable
|
|
||||||
Using oSqlConnection = GetSQLConnection()
|
|
||||||
Return GetDatatableWithConnectionObject(SqlCommand, oSqlConnection, TransactionMode.WithTransaction, Nothing, Timeout)
|
|
||||||
End Using
|
|
||||||
End Function
|
|
||||||
|
|
||||||
'<DebuggerStepThrough()>
|
|
||||||
Public Function GetDatatable(SqlCommand As String, Transaction As SqlTransaction, Optional Timeout As Integer = Constants.DEFAULT_TIMEOUT) As DataTable
|
|
||||||
Using oSqlConnection = GetSQLConnection()
|
|
||||||
Return GetDatatableWithConnectionObject(SqlCommand, oSqlConnection, TransactionMode.ExternalTransaction, Transaction, Timeout)
|
|
||||||
End Using
|
|
||||||
End Function
|
|
||||||
|
|
||||||
'<DebuggerStepThrough()>
|
|
||||||
Public Async Function GetDatatableAsync(SqlCommand As String, Optional Timeout As Integer = Constants.DEFAULT_TIMEOUT) As Task(Of DataTable)
|
|
||||||
Return Await Task.Run(Function() GetDatatable(SqlCommand, Timeout))
|
|
||||||
End Function
|
|
||||||
|
|
||||||
'<DebuggerStepThrough()>
|
|
||||||
Public Function GetDatatableWithConnection(SqlCommand As String, pConnectionString As String, Optional Timeout As Integer = Constants.DEFAULT_TIMEOUT) As DataTable
|
|
||||||
Using oConnection = GetConnection(pConnectionString)
|
|
||||||
Return GetDatatableWithConnectionObject(SqlCommand, oConnection, Timeout:=Timeout)
|
|
||||||
End Using
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Public Function GetDatatableWithConnectionObject(SqlCommand As String, SqlConnection As SqlConnection,
|
|
||||||
Optional TransactionMode As TransactionMode = TransactionMode.WithTransaction,
|
|
||||||
Optional Transaction As SqlTransaction = Nothing,
|
|
||||||
Optional Timeout As Integer = Constants.DEFAULT_TIMEOUT) As DataTable
|
|
||||||
Dim oTransaction As SqlTransaction = MaybeGetTransaction(SqlConnection, TransactionMode, Transaction)
|
|
||||||
Dim oTable As New DataTable() With {.TableName = Constants.DEFAULT_TABLE}
|
|
||||||
|
|
||||||
Try
|
|
||||||
Dim oAdapter As New SqlDataAdapter(New SqlCommand With {
|
|
||||||
.CommandText = SqlCommand,
|
|
||||||
.Connection = SqlConnection,
|
|
||||||
.Transaction = oTransaction,
|
|
||||||
.CommandTimeout = Timeout
|
|
||||||
})
|
|
||||||
|
|
||||||
Logger.Debug("GetDatatableWithConnectionObject: Running Query [{0}]", SqlCommand)
|
|
||||||
|
|
||||||
oAdapter.Fill(oTable)
|
|
||||||
Catch ex As Exception
|
|
||||||
Logger.Error(ex)
|
|
||||||
Logger.Warn("GetDatatableWithConnectionObject: Error in GetDatatableWithConnection while executing command: [{0}]", SqlCommand)
|
|
||||||
Throw ex
|
|
||||||
Finally
|
|
||||||
MaybeCommitTransaction(oTransaction, TransactionMode)
|
|
||||||
End Try
|
|
||||||
|
|
||||||
Return oTable
|
|
||||||
End Function
|
|
||||||
|
|
||||||
'<DebuggerStepThrough()>
|
|
||||||
Public Function ExecuteNonQuery(SQLCommand As String) As Boolean Implements IDatabase.ExecuteNonQuery
|
|
||||||
Using oConnection = GetSQLConnection()
|
|
||||||
Return ExecuteNonQueryWithConnectionObject(SQLCommand, oConnection, TransactionMode.WithTransaction, Nothing, QueryTimeout)
|
|
||||||
End Using
|
|
||||||
End Function
|
|
||||||
|
|
||||||
'<DebuggerStepThrough()>
|
|
||||||
Public Function ExecuteNonQuery(SQLCommand As String, Timeout As Integer) As Boolean Implements IDatabase.ExecuteNonQuery
|
|
||||||
Using oConnection = GetSQLConnection()
|
|
||||||
Return ExecuteNonQueryWithConnectionObject(SQLCommand, oConnection, TransactionMode.WithTransaction, Nothing, Timeout)
|
|
||||||
End Using
|
|
||||||
End Function
|
|
||||||
|
|
||||||
'<DebuggerStepThrough()>
|
|
||||||
Public Function ExecuteNonQuery(SQLCommand As String, Transaction As SqlTransaction, Optional Timeout As Integer = Constants.DEFAULT_TIMEOUT) As Boolean
|
|
||||||
Using oConnection = GetSQLConnection()
|
|
||||||
Return ExecuteNonQueryWithConnectionObject(SQLCommand, Transaction.Connection, TransactionMode.ExternalTransaction, Transaction, Timeout)
|
|
||||||
End Using
|
|
||||||
End Function
|
|
||||||
|
|
||||||
'<DebuggerStepThrough()>
|
|
||||||
Public Async Function ExecuteNonQueryAsync(SQLCommand As String, Optional Timeout As Integer = Constants.DEFAULT_TIMEOUT) As Task(Of Boolean)
|
|
||||||
Return Await Task.Run(Function() ExecuteNonQuery(SQLCommand, Timeout))
|
|
||||||
End Function
|
|
||||||
|
|
||||||
'<DebuggerStepThrough()>
|
|
||||||
Public Function ExecuteNonQueryWithConnection(pSQLCommand As String, ConnString As String, Optional Timeout As Integer = Constants.DEFAULT_TIMEOUT) As Boolean
|
|
||||||
Using oConnection = GetConnection(ConnString)
|
|
||||||
Return ExecuteNonQueryWithConnectionObject(pSQLCommand, oConnection, TransactionMode.WithTransaction, Nothing, Timeout)
|
|
||||||
End Using
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Public Function ExecuteNonQueryWithConnectionObject(SqlCommand As String, SqlConnection As SqlConnection,
|
|
||||||
Optional TransactionMode As TransactionMode = TransactionMode.WithTransaction,
|
|
||||||
Optional Transaction As SqlTransaction = Nothing,
|
|
||||||
Optional Timeout As Integer = Constants.DEFAULT_TIMEOUT) As Boolean
|
|
||||||
Dim oTransaction As SqlTransaction = MaybeGetTransaction(SqlConnection, TransactionMode, Transaction)
|
|
||||||
|
|
||||||
Try
|
|
||||||
Logger.Debug("ExecuteNonQueryWithConnectionObject: Running Command [{0}]", SqlCommand)
|
|
||||||
|
|
||||||
Using oSQLCOmmand = SqlConnection.CreateCommand()
|
|
||||||
oSQLCOmmand.CommandText = SqlCommand
|
|
||||||
oSQLCOmmand.CommandTimeout = Timeout
|
|
||||||
oSQLCOmmand.Transaction = oTransaction
|
|
||||||
oSQLCOmmand.ExecuteNonQuery()
|
|
||||||
End Using
|
|
||||||
|
|
||||||
Return True
|
|
||||||
Catch ex As Exception
|
|
||||||
Logger.Error(ex)
|
|
||||||
Logger.Warn("ExecuteNonQueryWithConnectionObject: Error in ExecuteNonQueryWithConnectionObject while executing command: [{0}]-[{1}]", SqlCommand, SqlConnection.ConnectionString)
|
|
||||||
Return False
|
|
||||||
Finally
|
|
||||||
MaybeCommitTransaction(oTransaction, TransactionMode)
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
'<DebuggerStepThrough()>
|
|
||||||
Public Function GetScalarValue(SQLQuery As String) As Object Implements IDatabase.GetScalarValue
|
|
||||||
Using oConnection As SqlConnection = GetSQLConnection()
|
|
||||||
Return GetScalarValueWithConnectionObject(SQLQuery, oConnection)
|
|
||||||
End Using
|
|
||||||
End Function
|
|
||||||
|
|
||||||
'<DebuggerStepThrough()>
|
|
||||||
Public Function GetScalarValue(SQLCommand As String, Timeout As Integer) As Object Implements IDatabase.GetScalarValue
|
|
||||||
Using oConnection = GetSQLConnection()
|
|
||||||
Return GetScalarValueWithConnectionObject(SQLCommand, oConnection, TransactionMode.WithTransaction, Nothing, Timeout)
|
|
||||||
End Using
|
|
||||||
End Function
|
|
||||||
|
|
||||||
'<DebuggerStepThrough()>
|
|
||||||
Public Function GetScalarValue(SQLCommand As String, Transaction As SqlTransaction, Optional Timeout As Integer = Constants.DEFAULT_TIMEOUT) As Object
|
|
||||||
Using oConnection = GetSQLConnection()
|
|
||||||
Return GetScalarValueWithConnectionObject(SQLCommand, oConnection, TransactionMode.ExternalTransaction, Transaction, Timeout)
|
|
||||||
End Using
|
|
||||||
End Function
|
|
||||||
|
|
||||||
'<DebuggerStepThrough()>
|
|
||||||
Public Async Function GetScalarValueAsync(SQLQuery As String, Optional Timeout As Integer = Constants.DEFAULT_TIMEOUT) As Task(Of Object)
|
|
||||||
Return Await Task.Run(Function() GetScalarValue(SQLQuery, Timeout))
|
|
||||||
End Function
|
|
||||||
|
|
||||||
'<DebuggerStepThrough()>
|
|
||||||
Public Function GetScalarValueWithConnection(SQLCommand As String, pConnectionString As String, Optional Timeout As Integer = Constants.DEFAULT_TIMEOUT) As Object
|
|
||||||
Using oConnection = GetConnection(pConnectionString)
|
|
||||||
Return GetScalarValueWithConnectionObject(SQLCommand, oConnection, TransactionMode.WithTransaction, Nothing, Timeout)
|
|
||||||
End Using
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Public Function GetScalarValueWithConnectionObject(SqlCommand As String, SqlConnection As SqlConnection,
|
|
||||||
Optional TransactionMode As TransactionMode = TransactionMode.WithTransaction,
|
|
||||||
Optional Transaction As SqlTransaction = Nothing,
|
|
||||||
Optional Timeout As Integer = Constants.DEFAULT_TIMEOUT) As Object
|
|
||||||
|
|
||||||
Dim oTransaction As SqlTransaction = MaybeGetTransaction(SqlConnection, TransactionMode, Transaction)
|
|
||||||
Dim oResult As Object = Nothing
|
|
||||||
|
|
||||||
Try
|
|
||||||
Using oSQLCOmmand = SqlConnection.CreateCommand()
|
|
||||||
oSQLCOmmand.CommandText = SqlCommand
|
|
||||||
oSQLCOmmand.CommandTimeout = Timeout
|
|
||||||
oSQLCOmmand.Transaction = oTransaction
|
|
||||||
|
|
||||||
oResult = oSQLCOmmand.ExecuteScalar()
|
|
||||||
End Using
|
|
||||||
Catch ex As Exception
|
|
||||||
Logger.Error(ex)
|
|
||||||
Logger.Warn("GetDatatableWithConnectionObject: Error in GetDatatableWithConnection while executing command: [{0}]", SqlCommand)
|
|
||||||
Finally
|
|
||||||
MaybeCommitTransaction(oTransaction, TransactionMode)
|
|
||||||
End Try
|
|
||||||
|
|
||||||
Return oResult
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Public Function GetScalarValue(SQLCommand As SqlCommand, OutputParameter As String, Timeout As Integer) As Object
|
|
||||||
Try
|
|
||||||
If TestCanConnect() = False Then
|
|
||||||
Return Nothing
|
|
||||||
End If
|
|
||||||
|
|
||||||
Logger.Debug("GetScalarValue: Running Query [{0}]", SQLCommand)
|
|
||||||
|
|
||||||
If SQLCommand.CommandText.Contains(" ") Then
|
|
||||||
SQLCommand.CommandType = CommandType.Text
|
|
||||||
Else
|
|
||||||
SQLCommand.CommandType = CommandType.StoredProcedure
|
|
||||||
End If
|
|
||||||
|
|
||||||
Using oConnection As SqlConnection = GetSQLConnection()
|
|
||||||
|
|
||||||
SQLCommand.Connection = oConnection
|
|
||||||
SQLCommand.Parameters(OutputParameter).Direction = ParameterDirection.Output
|
|
||||||
SQLCommand.CommandTimeout = Timeout
|
|
||||||
SQLCommand.ExecuteNonQuery()
|
|
||||||
oConnection.Close()
|
|
||||||
|
|
||||||
Return SQLCommand.Parameters(OutputParameter).Value
|
|
||||||
End Using
|
|
||||||
Catch ex As Exception
|
|
||||||
Logger.Error(ex)
|
|
||||||
Logger.Warn($"GetScalarValue failed SQLCommand [{SQLCommand}]")
|
|
||||||
|
|
||||||
Return Nothing
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
'<DebuggerStepThrough()>
|
|
||||||
Public Function GetScalarValue(SQLCommand As SqlCommand, OutputParameter As String) As Object
|
|
||||||
Return GetScalarValue(SQLCommand, OutputParameter, QueryTimeout)
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Executes the passed sql-statement in asyncmode
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="SqlCommand">the sql statement</param>
|
|
||||||
''' <param name="commandtimeout">Optional Timeout</param>
|
|
||||||
''' <remarks></remarks>
|
|
||||||
Public Sub NewExecuteNonQueryAsync(SqlCommand As String, Optional commandtimeout As Integer = Constants.DEFAULT_TIMEOUT)
|
|
||||||
Logger.Debug("NewExecuteNonQueryAsync: Running Query [{0}]", SqlCommand)
|
|
||||||
|
|
||||||
Try
|
|
||||||
Dim oCallback As New AsyncCallback(AddressOf NewExecuteNonQueryAsync_Callback)
|
|
||||||
|
|
||||||
Using oConnection As SqlConnection = GetSQLConnection()
|
|
||||||
Using oSQLCOmmand = oConnection.CreateCommand()
|
|
||||||
oSQLCOmmand.CommandText = SqlCommand
|
|
||||||
oSQLCOmmand.CommandTimeout = commandtimeout
|
|
||||||
oSQLCOmmand.BeginExecuteNonQuery(oCallback, oSQLCOmmand)
|
|
||||||
End Using
|
|
||||||
End Using
|
|
||||||
Catch ex As Exception
|
|
||||||
Logger.Error(ex)
|
|
||||||
Logger.Warn($"NewExecuteNonQueryAsync failed SQLCommand [{SqlCommand}]")
|
|
||||||
|
|
||||||
End Try
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
'<DebuggerStepThrough()>
|
|
||||||
Private Sub NewExecuteNonQueryAsync_Callback(ByVal result As IAsyncResult)
|
|
||||||
Dim command As SqlCommand = CType(result.AsyncState, SqlCommand)
|
|
||||||
Dim res = command.EndExecuteNonQuery(result)
|
|
||||||
Logger.Info("Finished executing Async database operation: {0}", command.CommandText)
|
|
||||||
End Sub
|
|
||||||
End Class
|
|
||||||
@ -1,179 +0,0 @@
|
|||||||
Imports System.Data.Odbc
|
|
||||||
Imports DigitalData.Modules.Logging
|
|
||||||
|
|
||||||
Public Class ODBC
|
|
||||||
Private _Logger As Logger
|
|
||||||
Private _LogConfig As LogConfig
|
|
||||||
|
|
||||||
Private _connectionDatasource As String
|
|
||||||
Private _connectionUsername As String
|
|
||||||
Private _connectionPassword As String
|
|
||||||
Private _connectionString As String
|
|
||||||
|
|
||||||
Public Sub New(LogConfig As LogConfig, Datasource As String, User As String, Password As String)
|
|
||||||
Try
|
|
||||||
_LogConfig = LogConfig
|
|
||||||
_Logger = _LogConfig.GetLogger()
|
|
||||||
|
|
||||||
_connectionDatasource = Datasource
|
|
||||||
_connectionPassword = Password
|
|
||||||
_connectionUsername = User
|
|
||||||
_connectionString = GetConnectionString(Datasource, User, Password)
|
|
||||||
|
|
||||||
_Logger.Debug("Connecting to database..")
|
|
||||||
|
|
||||||
' Test the connection
|
|
||||||
Dim oConnection = GetConnection()
|
|
||||||
|
|
||||||
If oConnection Is Nothing Then
|
|
||||||
Throw New Exceptions.DatabaseException()
|
|
||||||
End If
|
|
||||||
|
|
||||||
' If initial connection was successfully, close it
|
|
||||||
oConnection.Close()
|
|
||||||
|
|
||||||
_Logger.Debug("Connection sucessfully established!")
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex)
|
|
||||||
End Try
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Public Function GetConnection() As OdbcConnection
|
|
||||||
Try
|
|
||||||
Dim oConnection As New OdbcConnection(_connectionString)
|
|
||||||
oConnection.Open()
|
|
||||||
|
|
||||||
Return oConnection
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex)
|
|
||||||
Return Nothing
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Public Function GetConnectionString(Datasource As String, User As String, Password As String) As Object
|
|
||||||
Return $"DSN={Datasource};UID={User};PWD={Password}"
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Executes a non-query command.
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="SqlQuery">The command to execute</param>
|
|
||||||
''' <param name="Connection">The Firebird connection to use</param>
|
|
||||||
''' <returns>True, if command was executed sucessfully. Otherwise false.</returns>
|
|
||||||
Public Function ExecuteNonQueryWithConnection(SqlQuery As String, Connection As OdbcConnection) As Object
|
|
||||||
_Logger.Debug("Fetching Non-Query: {0}", SqlQuery)
|
|
||||||
|
|
||||||
Dim oResult As Object
|
|
||||||
|
|
||||||
If Connection Is Nothing Then
|
|
||||||
_Logger.Warn("Connection is nothing!")
|
|
||||||
Return Nothing
|
|
||||||
End If
|
|
||||||
|
|
||||||
Try
|
|
||||||
Dim oCommand As New OdbcCommand(SqlQuery, Connection)
|
|
||||||
oResult = oCommand.ExecuteNonQuery()
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex, $"Error in ExecuteNonQueryWithConnection while executing command: '{SqlQuery}'")
|
|
||||||
Throw ex
|
|
||||||
End Try
|
|
||||||
|
|
||||||
Return oResult
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Executes a non-query command.
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="SqlCommand">The command to execute</param>
|
|
||||||
''' <returns>True, if command was executed sucessfully. Otherwise false.</returns>
|
|
||||||
Public Function ExecuteNonQuery(SqlCommand As String) As Boolean
|
|
||||||
Dim oConnection As OdbcConnection = GetConnection()
|
|
||||||
Dim oScalarValue As Object = ExecuteNonQueryWithConnection(SqlCommand, oConnection)
|
|
||||||
oConnection.Close()
|
|
||||||
|
|
||||||
Return oScalarValue
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Executes a sql query resulting in a scalar value.
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="SqlQuery">The query to execute</param>
|
|
||||||
''' <param name="Connection">The Firebird connection to use</param>
|
|
||||||
''' <returns>The scalar value if the command was executed successfully. Nothing otherwise.</returns>
|
|
||||||
Public Function GetScalarValueWithConnection(SqlQuery As String, Connection As OdbcConnection) As Object
|
|
||||||
_Logger.Debug("Fetching Datatable: {0}", SqlQuery)
|
|
||||||
|
|
||||||
Dim oResult As Object
|
|
||||||
|
|
||||||
If Connection Is Nothing Then
|
|
||||||
_Logger.Warn("Connection is nothing!")
|
|
||||||
Return Nothing
|
|
||||||
End If
|
|
||||||
|
|
||||||
Try
|
|
||||||
Dim oCommand As New OdbcCommand(SqlQuery, Connection)
|
|
||||||
oResult = oCommand.ExecuteScalar()
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex, $"Error in GetDatatableWithConnection while executing command: '{SqlQuery}'")
|
|
||||||
Throw ex
|
|
||||||
End Try
|
|
||||||
|
|
||||||
Return oResult
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Executes a sql query resulting in a table of values.
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="SqlQuery">The query to execute</param>
|
|
||||||
''' <returns>A datatable containing the results if the command was executed successfully. Nothing otherwise.</returns>
|
|
||||||
Public Function GetScalarValue(SqlQuery As String) As Object
|
|
||||||
Dim oConnection As OdbcConnection = GetConnection()
|
|
||||||
Dim oDatatable As DataTable = GetDatatableWithConnection(SqlQuery, oConnection)
|
|
||||||
oConnection.Close()
|
|
||||||
|
|
||||||
Return oDatatable
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Executes a sql query resulting in a table of values.
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="SqlQuery">The query to execute</param>
|
|
||||||
''' <param name="Connection">The Firebird connection to use</param>
|
|
||||||
''' <returns>A datatable containing the results if the command was executed successfully. Nothing otherwise.</returns>
|
|
||||||
Public Function GetDatatableWithConnection(SqlQuery As String, Connection As OdbcConnection) As DataTable
|
|
||||||
_Logger.Debug("Fetching Datatable: {0}", SqlQuery)
|
|
||||||
|
|
||||||
Dim oDatatable As New DataTable() With {
|
|
||||||
.TableName = "DDRESULT"
|
|
||||||
}
|
|
||||||
|
|
||||||
If Connection Is Nothing Then
|
|
||||||
_Logger.Warn("Connection is nothing!")
|
|
||||||
Return Nothing
|
|
||||||
End If
|
|
||||||
|
|
||||||
Try
|
|
||||||
|
|
||||||
Dim oAdapter As New OdbcDataAdapter(SqlQuery, Connection)
|
|
||||||
oAdapter.Fill(oDatatable)
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex, $"Error in GetDatatableWithConnection while executing command: '{SqlQuery}'")
|
|
||||||
Throw ex
|
|
||||||
End Try
|
|
||||||
|
|
||||||
Return oDatatable
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Executes a sql query resulting in a table of values.
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="SqlQuery">The query to execute</param>
|
|
||||||
''' <returns>A datatable containing the results if the command was executed successfully. Nothing otherwise.</returns>
|
|
||||||
Public Function GetDatatable(SqlQuery As String) As DataTable
|
|
||||||
Dim oConnection As OdbcConnection = GetConnection()
|
|
||||||
Dim oDatatable As DataTable = GetDatatableWithConnection(SqlQuery, oConnection)
|
|
||||||
oConnection.Close()
|
|
||||||
|
|
||||||
Return oDatatable
|
|
||||||
End Function
|
|
||||||
End Class
|
|
||||||
@ -1,253 +0,0 @@
|
|||||||
Imports DigitalData.Modules.Encryption
|
|
||||||
Imports DigitalData.Modules.Logging
|
|
||||||
Imports Oracle.ManagedDataAccess.Client
|
|
||||||
|
|
||||||
Public Class Oracle
|
|
||||||
Implements IDatabase
|
|
||||||
|
|
||||||
Public Property DBInitialized As Boolean = False Implements IDatabase.DBInitialized
|
|
||||||
Public Property CurrentConnectionString As String = "" Implements IDatabase.CurrentConnectionString
|
|
||||||
|
|
||||||
Private ReadOnly _Timeout As Integer
|
|
||||||
Private ReadOnly _Logger As Logger
|
|
||||||
|
|
||||||
Public Sub New(LogConfig As LogConfig, ConnectionString As String, Optional Timeout As Integer = 120)
|
|
||||||
_Timeout = Timeout
|
|
||||||
_Logger = LogConfig.GetLogger()
|
|
||||||
|
|
||||||
ConnectionString = ConnectionString
|
|
||||||
DBInitialized = TestCanConnect(ConnectionString)
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Public Sub New(LogConfig As LogConfig, Server As String, Database As String, UserId As String, Password As String, Optional Timeout As Integer = 120)
|
|
||||||
_Timeout = Timeout
|
|
||||||
_Logger = LogConfig.GetLogger()
|
|
||||||
|
|
||||||
CurrentConnectionString = GetConnectionString(Server, Database, UserId, Password)
|
|
||||||
DBInitialized = TestCanConnect(CurrentConnectionString)
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Private Function TestCanConnect(ConnectionString As String) As Boolean
|
|
||||||
Try
|
|
||||||
Dim oSQLconnect As New OracleConnection
|
|
||||||
oSQLconnect.ConnectionString = ConnectionString
|
|
||||||
oSQLconnect.Open()
|
|
||||||
oSQLconnect.Close()
|
|
||||||
Return True
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex)
|
|
||||||
Return False
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Public Shared Function GetConnectionString(Server As String, Database As String, UserId As String, Password As String) As String
|
|
||||||
Dim oConnectionString = $"Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={Server})(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME={Database})));User Id={UserId};Password={Password};"
|
|
||||||
Return oConnectionString
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Encrypts a connection string password.
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="ConnectionString">A connection string with a plain-text password</param>
|
|
||||||
''' <returns>The connection string with the password encrypted.</returns>
|
|
||||||
<DebuggerStepThrough()>
|
|
||||||
Public Shared Function EncryptConnectionString(ConnectionString As String) As String
|
|
||||||
Dim oEncryption As New EncryptionLegacy()
|
|
||||||
Dim oBuilder As New OracleConnectionStringBuilder() With {.ConnectionString = ConnectionString}
|
|
||||||
Dim oEncryptedPassword = oEncryption.EncryptData(oBuilder.Password)
|
|
||||||
oBuilder.Password = oEncryptedPassword
|
|
||||||
|
|
||||||
Return oBuilder.ToString()
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Decrypts a connection string password.
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="ConnectionString">A connection string with a encrypted password</param>
|
|
||||||
''' <returns>The connection string with the password decrypted.</returns>
|
|
||||||
<DebuggerStepThrough()>
|
|
||||||
Public Shared Function DecryptConnectionString(ConnectionString As String) As String
|
|
||||||
Dim oEncryption As New EncryptionLegacy()
|
|
||||||
Dim oBuilder As New OracleConnectionStringBuilder() With {.ConnectionString = ConnectionString}
|
|
||||||
Dim oDecryptedPassword = oEncryption.DecryptData(oBuilder.Password)
|
|
||||||
oBuilder.Password = oDecryptedPassword
|
|
||||||
|
|
||||||
Return oBuilder.ToString()
|
|
||||||
End Function
|
|
||||||
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Executes the passed sql-statement
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="executeStatement">the sql statement</param>
|
|
||||||
''' <returns>Returns true if properly executed, else false</returns>
|
|
||||||
Public Function NewExecutenonQuery(executeStatement As String) As Boolean
|
|
||||||
Try
|
|
||||||
Dim oSQLconnect As New OracleConnection
|
|
||||||
Dim oSQLCOmmand As OracleCommand
|
|
||||||
oSQLconnect.ConnectionString = CurrentConnectionString
|
|
||||||
oSQLconnect.Open()
|
|
||||||
oSQLCOmmand = oSQLconnect.CreateCommand()
|
|
||||||
oSQLCOmmand.CommandText = executeStatement
|
|
||||||
oSQLCOmmand.CommandTimeout = _Timeout
|
|
||||||
oSQLCOmmand.ExecuteNonQuery()
|
|
||||||
oSQLCOmmand.Dispose()
|
|
||||||
oSQLconnect.Close()
|
|
||||||
Return True
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex)
|
|
||||||
_Logger.Debug("executeStatement: " & executeStatement)
|
|
||||||
Return False
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Executes the passed sql-statement as Scalar
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="executeStatement">the sql statement</param>
|
|
||||||
''' <returns>Returns the scalarvalue</returns>
|
|
||||||
Public Function NewExecuteScalar(executeStatement As String)
|
|
||||||
Dim result
|
|
||||||
Try
|
|
||||||
Dim oSQLconnect As New OracleConnection
|
|
||||||
Dim oSQLCOmmand As OracleCommand
|
|
||||||
oSQLconnect.ConnectionString = CurrentConnectionString
|
|
||||||
oSQLconnect.Open()
|
|
||||||
oSQLCOmmand = oSQLconnect.CreateCommand()
|
|
||||||
oSQLCOmmand.CommandText = executeStatement
|
|
||||||
oSQLCOmmand.CommandTimeout = _Timeout
|
|
||||||
result = oSQLCOmmand.ExecuteScalar()
|
|
||||||
oSQLCOmmand.Dispose()
|
|
||||||
oSQLconnect.Close()
|
|
||||||
Return result
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex)
|
|
||||||
_Logger.Debug("executeStatement: " & executeStatement)
|
|
||||||
Throw ex
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Public Function GetDatatable(pSQLCommand As String, pTimeout As Integer) As DataTable Implements IDatabase.GetDatatable
|
|
||||||
Try
|
|
||||||
Using oConnection = GetConnection(CurrentConnectionString)
|
|
||||||
Dim oSQLCommand As OracleCommand
|
|
||||||
oSQLCommand = oConnection.CreateCommand()
|
|
||||||
oSQLCommand.CommandText = pSQLCommand
|
|
||||||
oSQLCommand.CommandTimeout = pTimeout
|
|
||||||
|
|
||||||
Dim oAdapter As OracleDataAdapter = New OracleDataAdapter(oSQLCommand)
|
|
||||||
Dim oTable As DataTable = New DataTable()
|
|
||||||
|
|
||||||
_Logger.Debug("GetDatatable: Running Query [{0}]", oSQLCommand)
|
|
||||||
|
|
||||||
oAdapter.Fill(oTable)
|
|
||||||
|
|
||||||
Return oTable
|
|
||||||
End Using
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex)
|
|
||||||
_Logger.Warn("GetDatatable: Error in GetDatatable while executing command: [{0}]", pSQLCommand)
|
|
||||||
Return Nothing
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Private Function GetDatatable(pSQLCommand As String) As DataTable Implements IDatabase.GetDatatable
|
|
||||||
Return GetDatatable(pSQLCommand, _Timeout)
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Public Function ExecuteNonQuery(pSQLCommand As String, pTimeout As Integer) As Boolean Implements IDatabase.ExecuteNonQuery
|
|
||||||
Try
|
|
||||||
Using oConnection = GetConnection(CurrentConnectionString)
|
|
||||||
Dim oSQLCOmmand As OracleCommand
|
|
||||||
oSQLCOmmand = oConnection.CreateCommand()
|
|
||||||
oSQLCOmmand.CommandText = pSQLCommand
|
|
||||||
oSQLCOmmand.CommandTimeout = pTimeout
|
|
||||||
|
|
||||||
|
|
||||||
_Logger.Debug("ExecuteNonQuery: Running Query [{0}]", oSQLCOmmand)
|
|
||||||
oSQLCOmmand.ExecuteNonQuery()
|
|
||||||
oSQLCOmmand.Dispose()
|
|
||||||
Return True
|
|
||||||
End Using
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex)
|
|
||||||
_Logger.Warn("ExecuteNonQuery: Error in ExecuteNonQuery while executing command: [{0}]", pSQLCommand)
|
|
||||||
Return False
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Public Function ExecuteNonQuery(pSQLCommand As String) As Boolean Implements IDatabase.ExecuteNonQuery
|
|
||||||
Return ExecuteNonQuery(pSQLCommand, _Timeout)
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Public Function GetScalarValue(pSQLCommand As String, pTimeout As Integer) As Object Implements IDatabase.GetScalarValue
|
|
||||||
Dim result
|
|
||||||
Try
|
|
||||||
Using oConnection = GetConnection(CurrentConnectionString)
|
|
||||||
Dim oSQLCOmmand As OracleCommand
|
|
||||||
oSQLCOmmand = oConnection.CreateCommand()
|
|
||||||
oSQLCOmmand.CommandText = pSQLCommand
|
|
||||||
oSQLCOmmand.CommandTimeout = pTimeout
|
|
||||||
|
|
||||||
_Logger.Debug("GetScalarValue: Running Query [{0}]", oSQLCOmmand)
|
|
||||||
result = oSQLCOmmand.ExecuteScalar()
|
|
||||||
|
|
||||||
Return result
|
|
||||||
End Using
|
|
||||||
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex)
|
|
||||||
_Logger.Warn("GetScalarValue: Error in GetScalarValue while executing command: [{0}]", pSQLCommand)
|
|
||||||
Throw ex
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Public Function GetScalarValue(pSQLCommand As String) As Object Implements IDatabase.GetScalarValue
|
|
||||||
Return GetScalarValue(pSQLCommand, _Timeout)
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Private Function GetConnection(ConnectionString As String) As OracleConnection
|
|
||||||
Try
|
|
||||||
Dim oConnection As New OracleConnection(ConnectionString)
|
|
||||||
oConnection = OpenSQLConnection(oConnection)
|
|
||||||
|
|
||||||
Dim oMaskedConnectionString = MaskConnectionString(ConnectionString)
|
|
||||||
_Logger.Debug("The Following Connection is open: {0}", oMaskedConnectionString)
|
|
||||||
|
|
||||||
Return oConnection
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex)
|
|
||||||
|
|
||||||
Return Nothing
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' This Function intentionally has no try..catch block to have any errors caught outside
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="Connection"></param>
|
|
||||||
''' <returns></returns>
|
|
||||||
Private Function OpenSQLConnection(Connection As OracleConnection) As OracleConnection
|
|
||||||
If Connection.State = ConnectionState.Closed Then
|
|
||||||
Connection.Open()
|
|
||||||
End If
|
|
||||||
|
|
||||||
Return Connection
|
|
||||||
End Function
|
|
||||||
|
|
||||||
<DebuggerStepThrough()>
|
|
||||||
Private Function MaskConnectionString(ConnectionString As String) As String
|
|
||||||
Try
|
|
||||||
If ConnectionString Is Nothing OrElse ConnectionString.Length = 0 Then
|
|
||||||
Throw New ArgumentNullException("ConnectionString")
|
|
||||||
End If
|
|
||||||
|
|
||||||
Dim oBuilder As New OracleConnectionStringBuilder() With {.ConnectionString = ConnectionString}
|
|
||||||
Dim oConnectionString = ConnectionString.Replace(oBuilder.Password, "XXXXX")
|
|
||||||
Return oConnectionString
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex)
|
|
||||||
Return "Invalid ConnectionString"
|
|
||||||
End Try
|
|
||||||
End Function
|
|
||||||
End Class
|
|
||||||
@ -1,23 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<configuration>
|
|
||||||
<configSections>
|
|
||||||
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
|
|
||||||
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
|
|
||||||
</configSections>
|
|
||||||
<entityFramework>
|
|
||||||
<defaultConnectionFactory type="EntityFramework.Firebird.FbConnectionFactory, EntityFramework.Firebird" />
|
|
||||||
<providers>
|
|
||||||
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
|
|
||||||
<provider invariantName="FirebirdSql.Data.FirebirdClient" type="EntityFramework.Firebird.FbProviderServices, EntityFramework.Firebird" />
|
|
||||||
</providers>
|
|
||||||
</entityFramework>
|
|
||||||
|
|
||||||
<runtime>
|
|
||||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
|
||||||
<dependentAssembly>
|
|
||||||
<assemblyIdentity name="FirebirdSql.Data.FirebirdClient" publicKeyToken="3750abcc3150b00c" culture="neutral" />
|
|
||||||
<bindingRedirect oldVersion="0.0.0.0-7.5.0.0" newVersion="7.5.0.0" />
|
|
||||||
</dependentAssembly>
|
|
||||||
</assemblyBinding>
|
|
||||||
</runtime>
|
|
||||||
</configuration>
|
|
||||||
@ -1,20 +0,0 @@
|
|||||||
Public Class ConnectionString
|
|
||||||
Public Enum ConnectionStringType
|
|
||||||
MSSQLServer
|
|
||||||
ODBC
|
|
||||||
Oracle
|
|
||||||
End Enum
|
|
||||||
|
|
||||||
Public Shared Function GetConnectionStringType(pConnectionString As String) As ConnectionStringType
|
|
||||||
' This variable only exists to shorten the if-conditions
|
|
||||||
Dim c = pConnectionString
|
|
||||||
|
|
||||||
If (c.Contains("Server=") Or c.Contains("Data Source=")) And (c.Contains("Database=") Or c.Contains("Initial Catalog=")) Then
|
|
||||||
Return ConnectionStringType.MSSQLServer
|
|
||||||
ElseIf (c.Contains("dsn=")) Then
|
|
||||||
Return ConnectionStringType.ODBC
|
|
||||||
Else
|
|
||||||
Return ConnectionStringType.Oracle
|
|
||||||
End If
|
|
||||||
End Function
|
|
||||||
End Class
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
Public Class Constants
|
|
||||||
Public Const PROVIDER_MSSQL = "MS-SQL"
|
|
||||||
Public Const PROVIDER_ORACLE = "ORACLE"
|
|
||||||
Public Const PROVIDER_ODBC = "ODBC"
|
|
||||||
|
|
||||||
Public Const DEFAULT_TIMEOUT = 120
|
|
||||||
Public Const DEFAULT_TABLE = "DDRESULT"
|
|
||||||
End Class
|
|
||||||
@ -1,162 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.props" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.props')" />
|
|
||||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
|
||||||
<ProjectGuid>{EAF0EA75-5FA7-485D-89C7-B2D843B03A96}</ProjectGuid>
|
|
||||||
<OutputType>Library</OutputType>
|
|
||||||
<RootNamespace>DigitalData.Modules.Database</RootNamespace>
|
|
||||||
<AssemblyName>DigitalData.Modules.Database</AssemblyName>
|
|
||||||
<FileAlignment>512</FileAlignment>
|
|
||||||
<MyType>Windows</MyType>
|
|
||||||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
|
||||||
<NuGetPackageImportStamp>
|
|
||||||
</NuGetPackageImportStamp>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
|
||||||
<DebugSymbols>true</DebugSymbols>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<DefineDebug>true</DefineDebug>
|
|
||||||
<DefineTrace>true</DefineTrace>
|
|
||||||
<OutputPath>bin\Debug\</OutputPath>
|
|
||||||
<DocumentationFile>DigitalData.Modules.Database.xml</DocumentationFile>
|
|
||||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
|
||||||
<DebugType>pdbonly</DebugType>
|
|
||||||
<DefineDebug>false</DefineDebug>
|
|
||||||
<DefineTrace>true</DefineTrace>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<OutputPath>bin\Release\</OutputPath>
|
|
||||||
<DocumentationFile>DigitalData.Modules.Database.xml</DocumentationFile>
|
|
||||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionExplicit>On</OptionExplicit>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionCompare>Binary</OptionCompare>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionStrict>Off</OptionStrict>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionInfer>On</OptionInfer>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<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>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="EntityFramework.Firebird, Version=6.4.0.0, Culture=neutral, PublicKeyToken=42d22d092898e5f8, processorArchitecture=MSIL">
|
|
||||||
<HintPath>..\packages\EntityFramework.Firebird.6.4.0\lib\net452\EntityFramework.Firebird.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
|
|
||||||
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="FirebirdSql.Data.FirebirdClient, Version=7.5.0.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c, processorArchitecture=MSIL">
|
|
||||||
<HintPath>..\packages\FirebirdSql.Data.FirebirdClient.7.5.0\lib\net452\FirebirdSql.Data.FirebirdClient.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="Microsoft.CSharp" />
|
|
||||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
|
||||||
<HintPath>..\packages\NLog.4.7.10\lib\net45\NLog.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="Oracle.ManagedDataAccess">
|
|
||||||
<HintPath>P:\Visual Studio Projekte\Bibliotheken\Oracle.ManagedDataAccess.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="System" />
|
|
||||||
<Reference Include="System.ComponentModel.DataAnnotations" />
|
|
||||||
<Reference Include="System.Configuration" />
|
|
||||||
<Reference Include="System.Data" />
|
|
||||||
<Reference Include="System.IO.Compression" />
|
|
||||||
<Reference Include="System.Runtime.Serialization" />
|
|
||||||
<Reference Include="System.ServiceModel" />
|
|
||||||
<Reference Include="System.Transactions" />
|
|
||||||
<Reference Include="System.Xml" />
|
|
||||||
<Reference Include="System.Core" />
|
|
||||||
<Reference Include="System.Xml.Linq" />
|
|
||||||
<Reference Include="System.Data.DataSetExtensions" />
|
|
||||||
<Reference Include="System.Net.Http" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Import Include="Microsoft.VisualBasic" />
|
|
||||||
<Import Include="System" />
|
|
||||||
<Import Include="System.Collections" />
|
|
||||||
<Import Include="System.Collections.Generic" />
|
|
||||||
<Import Include="System.Data" />
|
|
||||||
<Import Include="System.Diagnostics" />
|
|
||||||
<Import Include="System.Linq" />
|
|
||||||
<Import Include="System.Xml.Linq" />
|
|
||||||
<Import Include="System.Threading.Tasks" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="ConnectionString.vb" />
|
|
||||||
<Compile Include="Constants.vb" />
|
|
||||||
<Compile Include="Dispatcher.vb" />
|
|
||||||
<Compile Include="Exceptions.vb" />
|
|
||||||
<Compile Include="Adapters\Firebird.vb" />
|
|
||||||
<Compile Include="IDatabase.vb" />
|
|
||||||
<Compile Include="Adapters\ODBC.vb" />
|
|
||||||
<Compile Include="Adapters\Oracle.vb" />
|
|
||||||
<Compile Include="Adapters\MSSQLServer.vb" />
|
|
||||||
<Compile Include="My Project\AssemblyInfo.vb" />
|
|
||||||
<Compile Include="My Project\Application.Designer.vb">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DependentUpon>Application.myapp</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="My Project\Resources.Designer.vb">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DesignTime>True</DesignTime>
|
|
||||||
<DependentUpon>Resources.resx</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="My Project\Settings.Designer.vb">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DependentUpon>Settings.settings</DependentUpon>
|
|
||||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="TableCache.vb" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<EmbeddedResource Include="My Project\Resources.resx">
|
|
||||||
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
|
|
||||||
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
|
|
||||||
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
|
||||||
<SubType>Designer</SubType>
|
|
||||||
</EmbeddedResource>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="App.config">
|
|
||||||
<SubType>Designer</SubType>
|
|
||||||
</None>
|
|
||||||
<None Include="My Project\Application.myapp">
|
|
||||||
<Generator>MyApplicationCodeGenerator</Generator>
|
|
||||||
<LastGenOutput>Application.Designer.vb</LastGenOutput>
|
|
||||||
</None>
|
|
||||||
<None Include="My Project\Settings.settings">
|
|
||||||
<Generator>SettingsSingleFileGenerator</Generator>
|
|
||||||
<CustomToolNamespace>My</CustomToolNamespace>
|
|
||||||
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
|
|
||||||
</None>
|
|
||||||
<None Include="packages.config" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\Encryption\Encryption.vbproj">
|
|
||||||
<Project>{8a8f20fc-c46e-41ac-bee7-218366cfff99}</Project>
|
|
||||||
<Name>Encryption</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\Modules.Logging\Logging.vbproj">
|
|
||||||
<Project>{903b2d7d-3b80-4be9-8713-7447b704e1b0}</Project>
|
|
||||||
<Name>Logging</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
|
||||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
|
||||||
<PropertyGroup>
|
|
||||||
<ErrorText>Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}".</ErrorText>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.props'))" />
|
|
||||||
<Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.targets'))" />
|
|
||||||
</Target>
|
|
||||||
<Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.targets" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" />
|
|
||||||
</Project>
|
|
||||||
@ -1,89 +0,0 @@
|
|||||||
Imports DigitalData.Modules.Base
|
|
||||||
Imports DigitalData.Modules.Logging
|
|
||||||
|
|
||||||
Public Class Dispatcher
|
|
||||||
Public ReadOnly Property Connections As New List(Of DispatcherConnection)
|
|
||||||
|
|
||||||
Public ReadOnly Logger As Logger
|
|
||||||
Public ReadOnly LogConfig As LogConfig
|
|
||||||
|
|
||||||
Public Sub New(pLogConfig As LogConfig, pConnections As List(Of DispatcherConnection))
|
|
||||||
LogConfig = pLogConfig
|
|
||||||
Logger = pLogConfig.GetLogger()
|
|
||||||
Connections = pConnections
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Public Function GetDatatable(pSQLCommand As String, pConnectionId As Integer) As DataTable
|
|
||||||
Dim oAdapter As IDatabase = GetAdapterClass(pConnectionId)
|
|
||||||
Return oAdapter.GetDatatable(pSQLCommand)
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Public Function ExectueNonQuery(pSQLCommand As String, pConnectionId As Integer) As Boolean
|
|
||||||
Dim oAdapter As IDatabase = GetAdapterClass(pConnectionId)
|
|
||||||
Return oAdapter.ExecuteNonQuery(pSQLCommand)
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Public Function GetScalarValue(pSQLCommand As String, pConnectionId As Integer) As Object
|
|
||||||
Dim oAdapter As IDatabase = GetAdapterClass(pConnectionId)
|
|
||||||
Return oAdapter.GetScalarValue(pSQLCommand)
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Private Function GetConnection(pConnectionId As Integer) As DispatcherConnection
|
|
||||||
Dim oConnection As DispatcherConnection = Connections.
|
|
||||||
Where(Function(conn) conn.Id = pConnectionId).
|
|
||||||
FirstOrDefault()
|
|
||||||
|
|
||||||
If oConnection IsNot Nothing Then
|
|
||||||
Logger.Debug("Resolved ConnectionId [{0}] into Connection [{1}]", pConnectionId, oConnection.Name)
|
|
||||||
End If
|
|
||||||
|
|
||||||
Return oConnection
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Private Function GetAdapterClass(pConnectionId As Integer) As IDatabase
|
|
||||||
Dim oConnection = GetConnection(pConnectionId)
|
|
||||||
Dim oArgs As New List(Of Object) From {LogConfig, oConnection.ConnectionString, Constants.DEFAULT_TIMEOUT}
|
|
||||||
Logger.Debug("Creating database adapter object for type [{0}]", ConnectionType.MSSQL)
|
|
||||||
|
|
||||||
' TODO: Cache Database instances to avoid constructing them for every call
|
|
||||||
|
|
||||||
Select Case oConnection.ConnectionType
|
|
||||||
Case ConnectionType.MSSQL
|
|
||||||
Return New MSSQLServer(LogConfig, oConnection.ConnectionString, Constants.DEFAULT_TIMEOUT)
|
|
||||||
|
|
||||||
Case ConnectionType.Oracle
|
|
||||||
Return New Oracle(LogConfig, oConnection.ConnectionString, Constants.DEFAULT_TIMEOUT)
|
|
||||||
|
|
||||||
Case ConnectionType.Firebird
|
|
||||||
Dim oBuilder As New FirebirdSql.Data.FirebirdClient.FbConnectionStringBuilder(oConnection.ConnectionString)
|
|
||||||
Return New Firebird(LogConfig, oBuilder.DataSource, oBuilder.Database, oBuilder.UserID, oBuilder.Password)
|
|
||||||
|
|
||||||
Case ConnectionType.ODBC
|
|
||||||
'Dim oBuilder As New Data.Odbc.OdbcConnectionStringBuilder(pConnection.ConnectionString)
|
|
||||||
'Return New ODBC(LogConfig)
|
|
||||||
Return Nothing
|
|
||||||
|
|
||||||
Case Else
|
|
||||||
Return Nothing
|
|
||||||
End Select
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Public Enum ConnectionType
|
|
||||||
MSSQL
|
|
||||||
Oracle
|
|
||||||
ODBC
|
|
||||||
Firebird
|
|
||||||
End Enum
|
|
||||||
|
|
||||||
Public Class DispatcherOptions
|
|
||||||
Public Property QueryTimeout As Integer = Constants.DEFAULT_TIMEOUT
|
|
||||||
End Class
|
|
||||||
|
|
||||||
Public Class DispatcherConnection
|
|
||||||
Public Property Id As Integer
|
|
||||||
Public Property Name As String
|
|
||||||
Public Property ConnectionString As String
|
|
||||||
Public Property ConnectionType As ConnectionType
|
|
||||||
End Class
|
|
||||||
End Class
|
|
||||||
|
|
||||||
@ -1,18 +0,0 @@
|
|||||||
Public Class Exceptions
|
|
||||||
|
|
||||||
Public Class DatabaseException
|
|
||||||
Inherits Exception
|
|
||||||
|
|
||||||
Public Sub New()
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Public Sub New(message As String)
|
|
||||||
MyBase.New(message)
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
Public Sub New(message As String, innerException As Exception)
|
|
||||||
MyBase.New(message, innerException)
|
|
||||||
End Sub
|
|
||||||
End Class
|
|
||||||
|
|
||||||
End Class
|
|
||||||
@ -1,18 +0,0 @@
|
|||||||
Imports System.Data.Common
|
|
||||||
|
|
||||||
Public Interface IDatabase
|
|
||||||
''' <summary>
|
|
||||||
''' Returns true if the initial connection to the configured database was successful.
|
|
||||||
''' </summary>
|
|
||||||
Property DBInitialized As Boolean
|
|
||||||
Property CurrentConnectionString As String
|
|
||||||
|
|
||||||
Function GetDatatable(SqlCommand As String, Timeout As Integer) As DataTable
|
|
||||||
Function GetDatatable(SqlCommand As String) As DataTable
|
|
||||||
|
|
||||||
Function ExecuteNonQuery(SQLCommand As String, Timeout As Integer) As Boolean
|
|
||||||
Function ExecuteNonQuery(SQLCommand As String) As Boolean
|
|
||||||
|
|
||||||
Function GetScalarValue(SQLQuery As String, Timeout As Integer) As Object
|
|
||||||
Function GetScalarValue(SQLQuery As String) As Object
|
|
||||||
End Interface
|
|
||||||
13
Modules.Database/My Project/Application.Designer.vb
generated
13
Modules.Database/My Project/Application.Designer.vb
generated
@ -1,13 +0,0 @@
|
|||||||
'------------------------------------------------------------------------------
|
|
||||||
' <auto-generated>
|
|
||||||
' Dieser Code wurde von einem Tool generiert.
|
|
||||||
' Laufzeitversion:4.0.30319.42000
|
|
||||||
'
|
|
||||||
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
|
|
||||||
' der Code erneut generiert wird.
|
|
||||||
' </auto-generated>
|
|
||||||
'------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Option Strict On
|
|
||||||
Option Explicit On
|
|
||||||
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
|
||||||
<MySubMain>false</MySubMain>
|
|
||||||
<SingleInstance>false</SingleInstance>
|
|
||||||
<ShutdownMode>0</ShutdownMode>
|
|
||||||
<EnableVisualStyles>true</EnableVisualStyles>
|
|
||||||
<AuthenticationMode>0</AuthenticationMode>
|
|
||||||
<ApplicationType>1</ApplicationType>
|
|
||||||
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
|
|
||||||
</MyApplicationData>
|
|
||||||
@ -1,35 +0,0 @@
|
|||||||
Imports System
|
|
||||||
Imports System.Reflection
|
|
||||||
Imports System.Runtime.InteropServices
|
|
||||||
|
|
||||||
' Allgemeine Informationen über eine Assembly werden über die folgenden
|
|
||||||
' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
|
|
||||||
' die einer Assembly zugeordnet sind.
|
|
||||||
|
|
||||||
' Werte der Assemblyattribute überprüfen
|
|
||||||
|
|
||||||
<Assembly: AssemblyTitle("Modules.Database")>
|
|
||||||
<Assembly: AssemblyDescription("")>
|
|
||||||
<Assembly: AssemblyCompany("Digital Data")>
|
|
||||||
<Assembly: AssemblyProduct("Modules.Database")>
|
|
||||||
<Assembly: AssemblyCopyright("Copyright © 2022")>
|
|
||||||
<Assembly: AssemblyTrademark("2.2.7.3")>
|
|
||||||
|
|
||||||
<Assembly: ComVisible(False)>
|
|
||||||
|
|
||||||
'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird.
|
|
||||||
<Assembly: Guid("b5cdfd4f-609f-41e1-adf0-663de9636ff5")>
|
|
||||||
|
|
||||||
' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
|
|
||||||
'
|
|
||||||
' Hauptversion
|
|
||||||
' Nebenversion
|
|
||||||
' Buildnummer
|
|
||||||
' Revision
|
|
||||||
'
|
|
||||||
' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
|
|
||||||
' übernehmen, indem Sie "*" eingeben:
|
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("2.2.7.3")>
|
|
||||||
<Assembly: AssemblyFileVersion("2.2.7.3")>
|
|
||||||
63
Modules.Database/My Project/Resources.Designer.vb
generated
63
Modules.Database/My Project/Resources.Designer.vb
generated
@ -1,63 +0,0 @@
|
|||||||
'------------------------------------------------------------------------------
|
|
||||||
' <auto-generated>
|
|
||||||
' Dieser Code wurde von einem Tool generiert.
|
|
||||||
' Laufzeitversion:4.0.30319.42000
|
|
||||||
'
|
|
||||||
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
|
|
||||||
' der Code erneut generiert wird.
|
|
||||||
' </auto-generated>
|
|
||||||
'------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Option Strict On
|
|
||||||
Option Explicit On
|
|
||||||
|
|
||||||
Imports System
|
|
||||||
|
|
||||||
Namespace My.Resources
|
|
||||||
|
|
||||||
'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert
|
|
||||||
'-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert.
|
|
||||||
'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
|
|
||||||
'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu.
|
|
||||||
'''<summary>
|
|
||||||
''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
|
|
||||||
'''</summary>
|
|
||||||
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0"), _
|
|
||||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
|
||||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
|
||||||
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
|
|
||||||
Friend Module Resources
|
|
||||||
|
|
||||||
Private resourceMan As Global.System.Resources.ResourceManager
|
|
||||||
|
|
||||||
Private resourceCulture As Global.System.Globalization.CultureInfo
|
|
||||||
|
|
||||||
'''<summary>
|
|
||||||
''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
|
|
||||||
'''</summary>
|
|
||||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
|
|
||||||
Get
|
|
||||||
If Object.ReferenceEquals(resourceMan, Nothing) Then
|
|
||||||
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.Modules.Database.Resources", GetType(Resources).Assembly)
|
|
||||||
resourceMan = temp
|
|
||||||
End If
|
|
||||||
Return resourceMan
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
|
|
||||||
'''<summary>
|
|
||||||
''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
|
|
||||||
''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden.
|
|
||||||
'''</summary>
|
|
||||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Friend Property Culture() As Global.System.Globalization.CultureInfo
|
|
||||||
Get
|
|
||||||
Return resourceCulture
|
|
||||||
End Get
|
|
||||||
Set
|
|
||||||
resourceCulture = value
|
|
||||||
End Set
|
|
||||||
End Property
|
|
||||||
End Module
|
|
||||||
End Namespace
|
|
||||||
@ -1,117 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
</root>
|
|
||||||
73
Modules.Database/My Project/Settings.Designer.vb
generated
73
Modules.Database/My Project/Settings.Designer.vb
generated
@ -1,73 +0,0 @@
|
|||||||
'------------------------------------------------------------------------------
|
|
||||||
' <auto-generated>
|
|
||||||
' Dieser Code wurde von einem Tool generiert.
|
|
||||||
' Laufzeitversion:4.0.30319.42000
|
|
||||||
'
|
|
||||||
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
|
|
||||||
' der Code erneut generiert wird.
|
|
||||||
' </auto-generated>
|
|
||||||
'------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Option Strict On
|
|
||||||
Option Explicit On
|
|
||||||
|
|
||||||
|
|
||||||
Namespace My
|
|
||||||
|
|
||||||
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
|
||||||
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.7.0.0"), _
|
|
||||||
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Partial Friend NotInheritable Class MySettings
|
|
||||||
Inherits Global.System.Configuration.ApplicationSettingsBase
|
|
||||||
|
|
||||||
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
|
|
||||||
|
|
||||||
#Region "Automatische My.Settings-Speicherfunktion"
|
|
||||||
#If _MyType = "WindowsForms" Then
|
|
||||||
Private Shared addedHandler As Boolean
|
|
||||||
|
|
||||||
Private Shared addedHandlerLockObject As New Object
|
|
||||||
|
|
||||||
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
|
|
||||||
If My.Application.SaveMySettingsOnExit Then
|
|
||||||
My.Settings.Save()
|
|
||||||
End If
|
|
||||||
End Sub
|
|
||||||
#End If
|
|
||||||
#End Region
|
|
||||||
|
|
||||||
Public Shared ReadOnly Property [Default]() As MySettings
|
|
||||||
Get
|
|
||||||
|
|
||||||
#If _MyType = "WindowsForms" Then
|
|
||||||
If Not addedHandler Then
|
|
||||||
SyncLock addedHandlerLockObject
|
|
||||||
If Not addedHandler Then
|
|
||||||
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
|
|
||||||
addedHandler = True
|
|
||||||
End If
|
|
||||||
End SyncLock
|
|
||||||
End If
|
|
||||||
#End If
|
|
||||||
Return defaultInstance
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
End Class
|
|
||||||
End Namespace
|
|
||||||
|
|
||||||
Namespace My
|
|
||||||
|
|
||||||
<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _
|
|
||||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
|
||||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
|
|
||||||
Friend Module MySettingsProperty
|
|
||||||
|
|
||||||
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
|
|
||||||
Friend ReadOnly Property Settings() As Global.DigitalData.Modules.Database.My.MySettings
|
|
||||||
Get
|
|
||||||
Return Global.DigitalData.Modules.Database.My.MySettings.Default
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
End Module
|
|
||||||
End Namespace
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
<?xml version='1.0' encoding='utf-8'?>
|
|
||||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
|
|
||||||
<Profiles>
|
|
||||||
<Profile Name="(Default)" />
|
|
||||||
</Profiles>
|
|
||||||
<Settings />
|
|
||||||
</SettingsFile>
|
|
||||||
@ -1,17 +0,0 @@
|
|||||||
Public Class TableCache
|
|
||||||
Private Items As New Dictionary(Of String, DataTable)
|
|
||||||
|
|
||||||
Public Function [Get](SQLCommand As String)
|
|
||||||
Dim oKey As String = SQLCommand.ToUpper
|
|
||||||
If Items.ContainsKey(oKey) Then
|
|
||||||
Return Items.Item(oKey)
|
|
||||||
Else
|
|
||||||
|
|
||||||
End If
|
|
||||||
End Function
|
|
||||||
|
|
||||||
Private Function SaveTable()
|
|
||||||
|
|
||||||
End Function
|
|
||||||
|
|
||||||
End Class
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<packages>
|
|
||||||
<package id="EntityFramework" version="6.4.4" targetFramework="net461" />
|
|
||||||
<package id="EntityFramework.Firebird" version="6.4.0" targetFramework="net461" />
|
|
||||||
<package id="FirebirdSql.Data.FirebirdClient" version="7.5.0" targetFramework="net461" />
|
|
||||||
<package id="NLog" version="4.7.10" targetFramework="net461" />
|
|
||||||
</packages>
|
|
||||||
@ -1,138 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<Import Project="..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.props" Condition="Exists('..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.props')" />
|
|
||||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
|
||||||
<ProjectGuid>{16857A4E-2609-47E6-9C35-7669D64DD040}</ProjectGuid>
|
|
||||||
<OutputType>Library</OutputType>
|
|
||||||
<RootNamespace>EDMI.File.Test</RootNamespace>
|
|
||||||
<AssemblyName>EDMI.File.Test</AssemblyName>
|
|
||||||
<FileAlignment>512</FileAlignment>
|
|
||||||
<MyType>Windows</MyType>
|
|
||||||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
|
||||||
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
|
|
||||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
|
|
||||||
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
|
||||||
<ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages</ReferencePath>
|
|
||||||
<IsCodedUITest>False</IsCodedUITest>
|
|
||||||
<TestProjectType>UnitTest</TestProjectType>
|
|
||||||
<NuGetPackageImportStamp>
|
|
||||||
</NuGetPackageImportStamp>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
|
||||||
<DebugSymbols>true</DebugSymbols>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<DefineDebug>true</DefineDebug>
|
|
||||||
<DefineTrace>true</DefineTrace>
|
|
||||||
<OutputPath>bin\Debug\</OutputPath>
|
|
||||||
<DocumentationFile>EDMI.File.Test.xml</DocumentationFile>
|
|
||||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
|
||||||
<DebugType>pdbonly</DebugType>
|
|
||||||
<DefineDebug>false</DefineDebug>
|
|
||||||
<DefineTrace>true</DefineTrace>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<OutputPath>bin\Release\</OutputPath>
|
|
||||||
<DocumentationFile>EDMI.File.Test.xml</DocumentationFile>
|
|
||||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionExplicit>On</OptionExplicit>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionCompare>Binary</OptionCompare>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionStrict>Off</OptionStrict>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionInfer>On</OptionInfer>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
|
||||||
<HintPath>..\packages\MSTest.TestFramework.2.1.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
|
||||||
<HintPath>..\packages\MSTest.TestFramework.2.1.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="System" />
|
|
||||||
<Reference Include="System.Data" />
|
|
||||||
<Reference Include="System.Xml" />
|
|
||||||
<Reference Include="System.Core" />
|
|
||||||
<Reference Include="System.Xml.Linq" />
|
|
||||||
<Reference Include="System.Data.DataSetExtensions" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Import Include="Microsoft.VisualBasic" />
|
|
||||||
<Import Include="System" />
|
|
||||||
<Import Include="System.Collections" />
|
|
||||||
<Import Include="System.Collections.Generic" />
|
|
||||||
<Import Include="System.Data" />
|
|
||||||
<Import Include="System.Diagnostics" />
|
|
||||||
<Import Include="System.Linq" />
|
|
||||||
<Import Include="System.Xml.Linq" />
|
|
||||||
<Import Include="System.Threading.Tasks" />
|
|
||||||
<Import Include="Microsoft.VisualStudio.TestTools.UnitTesting" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="PathTest.vb" />
|
|
||||||
<Compile Include="My Project\AssemblyInfo.vb" />
|
|
||||||
<Compile Include="My Project\Application.Designer.vb">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DependentUpon>Application.myapp</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="My Project\Resources.Designer.vb">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DesignTime>True</DesignTime>
|
|
||||||
<DependentUpon>Resources.resx</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="My Project\Settings.Designer.vb">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DependentUpon>Settings.settings</DependentUpon>
|
|
||||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
|
||||||
</Compile>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<EmbeddedResource Include="My Project\Resources.resx">
|
|
||||||
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
|
|
||||||
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
|
|
||||||
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
|
||||||
<SubType>Designer</SubType>
|
|
||||||
</EmbeddedResource>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="My Project\Application.myapp">
|
|
||||||
<Generator>MyApplicationCodeGenerator</Generator>
|
|
||||||
<LastGenOutput>Application.Designer.vb</LastGenOutput>
|
|
||||||
</None>
|
|
||||||
<None Include="My Project\Settings.settings">
|
|
||||||
<Generator>SettingsSingleFileGenerator</Generator>
|
|
||||||
<CustomToolNamespace>My</CustomToolNamespace>
|
|
||||||
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
|
|
||||||
</None>
|
|
||||||
<None Include="packages.config" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\Modules.EDMI.File\EDMI.File.vbproj">
|
|
||||||
<Project>{1477032d-7a02-4c5f-b026-a7117da4bc6b}</Project>
|
|
||||||
<Name>EDMI.File</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
<ProjectReference Include="..\Modules.Logging\Logging.vbproj">
|
|
||||||
<Project>{903B2D7D-3B80-4BE9-8713-7447B704E1B0}</Project>
|
|
||||||
<Name>Logging</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
|
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
|
||||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
|
||||||
<PropertyGroup>
|
|
||||||
<ErrorText>Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}".</ErrorText>
|
|
||||||
</PropertyGroup>
|
|
||||||
<Error Condition="!Exists('..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.props'))" />
|
|
||||||
<Error Condition="!Exists('..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.targets'))" />
|
|
||||||
</Target>
|
|
||||||
<Import Project="..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.targets" Condition="Exists('..\packages\MSTest.TestAdapter.2.1.2\build\net45\MSTest.TestAdapter.targets')" />
|
|
||||||
</Project>
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
'------------------------------------------------------------------------------
|
|
||||||
' <auto-generated>
|
|
||||||
' This code was generated by a tool.
|
|
||||||
' Runtime Version:4.0.30319.42000
|
|
||||||
'
|
|
||||||
' Changes to this file may cause incorrect behavior and will be lost if
|
|
||||||
' the code is regenerated.
|
|
||||||
' </auto-generated>
|
|
||||||
'------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Option Strict On
|
|
||||||
Option Explicit On
|
|
||||||
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
|
||||||
<MySubMain>false</MySubMain>
|
|
||||||
<SingleInstance>false</SingleInstance>
|
|
||||||
<ShutdownMode>0</ShutdownMode>
|
|
||||||
<EnableVisualStyles>true</EnableVisualStyles>
|
|
||||||
<AuthenticationMode>0</AuthenticationMode>
|
|
||||||
<ApplicationType>1</ApplicationType>
|
|
||||||
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
|
|
||||||
</MyApplicationData>
|
|
||||||
@ -1,18 +0,0 @@
|
|||||||
Imports System
|
|
||||||
Imports System.Reflection
|
|
||||||
Imports System.Runtime.InteropServices
|
|
||||||
|
|
||||||
<Assembly: AssemblyTitle("EDMI.File.Test")>
|
|
||||||
<Assembly: AssemblyDescription("")>
|
|
||||||
<Assembly: AssemblyCompany("")>
|
|
||||||
<Assembly: AssemblyProduct("EDMI.File.Test")>
|
|
||||||
<Assembly: AssemblyCopyright("Copyright © 2020")>
|
|
||||||
<Assembly: AssemblyTrademark("")>
|
|
||||||
|
|
||||||
<Assembly: ComVisible(False)>
|
|
||||||
|
|
||||||
<Assembly: Guid("a6f8dbf8-5ba9-478d-a230-1aca3ed6379c")>
|
|
||||||
|
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
|
||||||
<Assembly: AssemblyVersion("1.0.0.0")>
|
|
||||||
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
|
||||||
@ -1,62 +0,0 @@
|
|||||||
'------------------------------------------------------------------------------
|
|
||||||
' <auto-generated>
|
|
||||||
' This code was generated by a tool.
|
|
||||||
' Runtime Version:4.0.30319.42000
|
|
||||||
'
|
|
||||||
' Changes to this file may cause incorrect behavior and will be lost if
|
|
||||||
' the code is regenerated.
|
|
||||||
' </auto-generated>
|
|
||||||
'------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Option Strict On
|
|
||||||
Option Explicit On
|
|
||||||
|
|
||||||
|
|
||||||
Namespace My.Resources
|
|
||||||
|
|
||||||
'This class was auto-generated by the StronglyTypedResourceBuilder
|
|
||||||
'class via a tool like ResGen or Visual Studio.
|
|
||||||
'To add or remove a member, edit your .ResX file then rerun ResGen
|
|
||||||
'with the /str option, or rebuild your VS project.
|
|
||||||
'''<summary>
|
|
||||||
''' A strongly-typed resource class, for looking up localized strings, etc.
|
|
||||||
'''</summary>
|
|
||||||
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"), _
|
|
||||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
|
||||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
|
||||||
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
|
|
||||||
Friend Module Resources
|
|
||||||
|
|
||||||
Private resourceMan As Global.System.Resources.ResourceManager
|
|
||||||
|
|
||||||
Private resourceCulture As Global.System.Globalization.CultureInfo
|
|
||||||
|
|
||||||
'''<summary>
|
|
||||||
''' Returns the cached ResourceManager instance used by this class.
|
|
||||||
'''</summary>
|
|
||||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
|
|
||||||
Get
|
|
||||||
If Object.ReferenceEquals(resourceMan, Nothing) Then
|
|
||||||
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("EDMI.File.Test.Resources", GetType(Resources).Assembly)
|
|
||||||
resourceMan = temp
|
|
||||||
End If
|
|
||||||
Return resourceMan
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
|
|
||||||
'''<summary>
|
|
||||||
''' Overrides the current thread's CurrentUICulture property for all
|
|
||||||
''' resource lookups using this strongly typed resource class.
|
|
||||||
'''</summary>
|
|
||||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Friend Property Culture() As Global.System.Globalization.CultureInfo
|
|
||||||
Get
|
|
||||||
Return resourceCulture
|
|
||||||
End Get
|
|
||||||
Set(ByVal value As Global.System.Globalization.CultureInfo)
|
|
||||||
resourceCulture = value
|
|
||||||
End Set
|
|
||||||
End Property
|
|
||||||
End Module
|
|
||||||
End Namespace
|
|
||||||
@ -1,117 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
</root>
|
|
||||||
@ -1,73 +0,0 @@
|
|||||||
'------------------------------------------------------------------------------
|
|
||||||
' <auto-generated>
|
|
||||||
' This code was generated by a tool.
|
|
||||||
' Runtime Version:4.0.30319.42000
|
|
||||||
'
|
|
||||||
' Changes to this file may cause incorrect behavior and will be lost if
|
|
||||||
' the code is regenerated.
|
|
||||||
' </auto-generated>
|
|
||||||
'------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Option Strict On
|
|
||||||
Option Explicit On
|
|
||||||
|
|
||||||
|
|
||||||
Namespace My
|
|
||||||
|
|
||||||
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
|
||||||
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0"), _
|
|
||||||
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Partial Friend NotInheritable Class MySettings
|
|
||||||
Inherits Global.System.Configuration.ApplicationSettingsBase
|
|
||||||
|
|
||||||
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings)
|
|
||||||
|
|
||||||
#Region "My.Settings Auto-Save Functionality"
|
|
||||||
#If _MyType = "WindowsForms" Then
|
|
||||||
Private Shared addedHandler As Boolean
|
|
||||||
|
|
||||||
Private Shared addedHandlerLockObject As New Object
|
|
||||||
|
|
||||||
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
|
|
||||||
If My.Application.SaveMySettingsOnExit Then
|
|
||||||
My.Settings.Save()
|
|
||||||
End If
|
|
||||||
End Sub
|
|
||||||
#End If
|
|
||||||
#End Region
|
|
||||||
|
|
||||||
Public Shared ReadOnly Property [Default]() As MySettings
|
|
||||||
Get
|
|
||||||
|
|
||||||
#If _MyType = "WindowsForms" Then
|
|
||||||
If Not addedHandler Then
|
|
||||||
SyncLock addedHandlerLockObject
|
|
||||||
If Not addedHandler Then
|
|
||||||
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
|
|
||||||
addedHandler = True
|
|
||||||
End If
|
|
||||||
End SyncLock
|
|
||||||
End If
|
|
||||||
#End If
|
|
||||||
Return defaultInstance
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
End Class
|
|
||||||
End Namespace
|
|
||||||
|
|
||||||
Namespace My
|
|
||||||
|
|
||||||
<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _
|
|
||||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
|
||||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
|
|
||||||
Friend Module MySettingsProperty
|
|
||||||
|
|
||||||
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
|
|
||||||
Friend ReadOnly Property Settings() As Global.EDMI.File.Test.My.MySettings
|
|
||||||
Get
|
|
||||||
Return Global.EDMI.File.Test.My.MySettings.Default
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
End Module
|
|
||||||
End Namespace
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
<?xml version='1.0' encoding='utf-8'?>
|
|
||||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
|
|
||||||
<Profiles>
|
|
||||||
<Profile Name="(Default)" />
|
|
||||||
</Profiles>
|
|
||||||
<Settings />
|
|
||||||
</SettingsFile>
|
|
||||||
@ -1,22 +0,0 @@
|
|||||||
Imports System.Text
|
|
||||||
Imports DigitalData.Modules.Logging
|
|
||||||
Imports Microsoft.VisualStudio.TestTools.UnitTesting
|
|
||||||
Imports DigitalData.Modules.EDMI
|
|
||||||
|
|
||||||
<TestClass()> Public Class PathTest
|
|
||||||
|
|
||||||
'<TestMethod()> Public Sub TestMethod1()
|
|
||||||
' Dim oLogConfig As New LogConfig(LogConfig.PathType.Temp)
|
|
||||||
' Dim oTempPath = System.IO.Path.GetTempPath()
|
|
||||||
' Dim oPath As New DigitalData.Modules.EDMI.File.Path(oLogConfig, oTempPath)
|
|
||||||
' Dim oNow As DateTime = DateTime.Now
|
|
||||||
' Dim oYear = oNow.Year
|
|
||||||
' Dim oMonth = oNow.Month.ToString.PadLeft(2, "0")
|
|
||||||
' Dim oDay = oNow.Day.ToString.PadLeft(2, "0")
|
|
||||||
|
|
||||||
|
|
||||||
' Assert.AreEqual(oPath.GetFullPath("TestDocumentType"), $"{oTempPath}EDMI\Active\TestDocumentType\{oYear}\{oMonth}\{oDay}")
|
|
||||||
' Assert.AreEqual(oPath.GetArchivePath("TestDocumentType"), $"{oTempPath}EDMI\Archive\TestDocumentType\{oYear}\{oMonth}\{oDay}")
|
|
||||||
'End Sub
|
|
||||||
|
|
||||||
End Class
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<packages>
|
|
||||||
<package id="MSTest.TestAdapter" version="2.1.2" targetFramework="net472" />
|
|
||||||
<package id="MSTest.TestFramework" version="2.1.2" targetFramework="net472" />
|
|
||||||
</packages>
|
|
||||||
@ -1,39 +0,0 @@
|
|||||||
Imports System.IO
|
|
||||||
Imports DigitalData.Modules.Logging
|
|
||||||
|
|
||||||
Public Class Archive
|
|
||||||
Private ReadOnly _LogConfig As LogConfig
|
|
||||||
Private ReadOnly _Logger As Logger
|
|
||||||
|
|
||||||
Public Sub New(LogConfig As LogConfig)
|
|
||||||
_LogConfig = LogConfig
|
|
||||||
_Logger = LogConfig.GetLogger()
|
|
||||||
End Sub
|
|
||||||
|
|
||||||
''' <summary>
|
|
||||||
''' Sets a retention-period for a give file path by setting the file attributes LastAccessTime and ReadOnly
|
|
||||||
''' </summary>
|
|
||||||
''' <param name="FilePath"></param>
|
|
||||||
''' <param name="RetentionTimeInDays">If greater than 0, sets this plus the current date as LastAccessTime</param>
|
|
||||||
''' <param name="[ReadOnly]">If true, sets ReadOnly Attribute</param>
|
|
||||||
Public Sub SetRetention(FilePath As String, RetentionTimeInDays As Integer, [ReadOnly] As Boolean)
|
|
||||||
Try
|
|
||||||
If RetentionTimeInDays > 0 Then
|
|
||||||
_Logger.Info("Setting LastAccessTime for file [{0}]", FilePath)
|
|
||||||
IO.File.SetLastAccessTime(FilePath, Date.Now.AddDays(RetentionTimeInDays))
|
|
||||||
End If
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex)
|
|
||||||
End Try
|
|
||||||
|
|
||||||
Try
|
|
||||||
If [ReadOnly] Then
|
|
||||||
_Logger.Info("Setting ReadOnly Attribute for file [{0}]", FilePath)
|
|
||||||
Dim oAttributes = IO.File.GetAttributes(FilePath) Or FileAttributes.ReadOnly
|
|
||||||
IO.File.SetAttributes(FilePath, oAttributes)
|
|
||||||
End If
|
|
||||||
Catch ex As Exception
|
|
||||||
_Logger.Error(ex)
|
|
||||||
End Try
|
|
||||||
End Sub
|
|
||||||
End Class
|
|
||||||
@ -1,121 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
|
||||||
<PropertyGroup>
|
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
|
||||||
<ProjectGuid>{1477032D-7A02-4C5F-B026-A7117DA4BC6B}</ProjectGuid>
|
|
||||||
<OutputType>Library</OutputType>
|
|
||||||
<RootNamespace>DigitalData.Modules.EDMI.File</RootNamespace>
|
|
||||||
<AssemblyName>DigitalData.Modules.EDMI.File</AssemblyName>
|
|
||||||
<FileAlignment>512</FileAlignment>
|
|
||||||
<MyType>Windows</MyType>
|
|
||||||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
|
||||||
<Deterministic>true</Deterministic>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
|
||||||
<DebugSymbols>true</DebugSymbols>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<DefineDebug>true</DefineDebug>
|
|
||||||
<DefineTrace>true</DefineTrace>
|
|
||||||
<OutputPath>bin\Debug\</OutputPath>
|
|
||||||
<DocumentationFile>DigitalData.Modules.EDMI.File.xml</DocumentationFile>
|
|
||||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
|
||||||
<DebugType>pdbonly</DebugType>
|
|
||||||
<DefineDebug>false</DefineDebug>
|
|
||||||
<DefineTrace>true</DefineTrace>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<OutputPath>bin\Release\</OutputPath>
|
|
||||||
<DocumentationFile>DigitalData.Modules.EDMI.File.xml</DocumentationFile>
|
|
||||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionExplicit>On</OptionExplicit>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionCompare>Binary</OptionCompare>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionStrict>Off</OptionStrict>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup>
|
|
||||||
<OptionInfer>On</OptionInfer>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Reference Include="Microsoft.CSharp" />
|
|
||||||
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
|
|
||||||
<HintPath>..\packages\NLog.4.7.10\lib\net45\NLog.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="System" />
|
|
||||||
<Reference Include="System.Configuration" />
|
|
||||||
<Reference Include="System.Data" />
|
|
||||||
<Reference Include="System.IO.Compression" />
|
|
||||||
<Reference Include="System.Runtime.Serialization" />
|
|
||||||
<Reference Include="System.ServiceModel" />
|
|
||||||
<Reference Include="System.Transactions" />
|
|
||||||
<Reference Include="System.Xml" />
|
|
||||||
<Reference Include="System.Core" />
|
|
||||||
<Reference Include="System.Xml.Linq" />
|
|
||||||
<Reference Include="System.Data.DataSetExtensions" />
|
|
||||||
<Reference Include="System.Net.Http" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Import Include="Microsoft.VisualBasic" />
|
|
||||||
<Import Include="System" />
|
|
||||||
<Import Include="System.Collections" />
|
|
||||||
<Import Include="System.Collections.Generic" />
|
|
||||||
<Import Include="System.Data" />
|
|
||||||
<Import Include="System.Diagnostics" />
|
|
||||||
<Import Include="System.Linq" />
|
|
||||||
<Import Include="System.Xml.Linq" />
|
|
||||||
<Import Include="System.Threading.Tasks" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="Archive.vb" />
|
|
||||||
<Compile Include="My Project\AssemblyInfo.vb" />
|
|
||||||
<Compile Include="My Project\Application.Designer.vb">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DependentUpon>Application.myapp</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="My Project\Resources.Designer.vb">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DesignTime>True</DesignTime>
|
|
||||||
<DependentUpon>Resources.resx</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="My Project\Settings.Designer.vb">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DependentUpon>Settings.settings</DependentUpon>
|
|
||||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
|
||||||
</Compile>
|
|
||||||
<Compile Include="Path.vb" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<EmbeddedResource Include="My Project\Resources.resx">
|
|
||||||
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
|
|
||||||
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
|
|
||||||
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
|
||||||
<SubType>Designer</SubType>
|
|
||||||
</EmbeddedResource>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="My Project\Application.myapp">
|
|
||||||
<Generator>MyApplicationCodeGenerator</Generator>
|
|
||||||
<LastGenOutput>Application.Designer.vb</LastGenOutput>
|
|
||||||
</None>
|
|
||||||
<None Include="My Project\Settings.settings">
|
|
||||||
<Generator>SettingsSingleFileGenerator</Generator>
|
|
||||||
<CustomToolNamespace>My</CustomToolNamespace>
|
|
||||||
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
|
|
||||||
</None>
|
|
||||||
<None Include="packages.config" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\Modules.Logging\Logging.vbproj">
|
|
||||||
<Project>{903B2D7D-3B80-4BE9-8713-7447B704E1B0}</Project>
|
|
||||||
<Name>Logging</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
|
||||||
</Project>
|
|
||||||
13
Modules.EDMI.File/My Project/Application.Designer.vb
generated
13
Modules.EDMI.File/My Project/Application.Designer.vb
generated
@ -1,13 +0,0 @@
|
|||||||
'------------------------------------------------------------------------------
|
|
||||||
' <auto-generated>
|
|
||||||
' Dieser Code wurde von einem Tool generiert.
|
|
||||||
' Laufzeitversion:4.0.30319.42000
|
|
||||||
'
|
|
||||||
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
|
|
||||||
' der Code erneut generiert wird.
|
|
||||||
' </auto-generated>
|
|
||||||
'------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Option Strict On
|
|
||||||
Option Explicit On
|
|
||||||
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
|
||||||
<MySubMain>false</MySubMain>
|
|
||||||
<SingleInstance>false</SingleInstance>
|
|
||||||
<ShutdownMode>0</ShutdownMode>
|
|
||||||
<EnableVisualStyles>true</EnableVisualStyles>
|
|
||||||
<AuthenticationMode>0</AuthenticationMode>
|
|
||||||
<ApplicationType>1</ApplicationType>
|
|
||||||
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
|
|
||||||
</MyApplicationData>
|
|
||||||
@ -1,35 +0,0 @@
|
|||||||
Imports System
|
|
||||||
Imports System.Reflection
|
|
||||||
Imports System.Runtime.InteropServices
|
|
||||||
|
|
||||||
' Allgemeine Informationen über eine Assembly werden über die folgenden
|
|
||||||
' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
|
|
||||||
' die einer Assembly zugeordnet sind.
|
|
||||||
|
|
||||||
' Werte der Assemblyattribute überprüfen
|
|
||||||
|
|
||||||
<Assembly: AssemblyTitle("EDMI.File")>
|
|
||||||
<Assembly: AssemblyDescription("")>
|
|
||||||
<Assembly: AssemblyCompany("")>
|
|
||||||
<Assembly: AssemblyProduct("EDMI.File")>
|
|
||||||
<Assembly: AssemblyCopyright("Copyright © 2020")>
|
|
||||||
<Assembly: AssemblyTrademark("")>
|
|
||||||
|
|
||||||
<Assembly: ComVisible(False)>
|
|
||||||
|
|
||||||
'Die folgende GUID wird für die typelib-ID verwendet, wenn dieses Projekt für COM verfügbar gemacht wird.
|
|
||||||
<Assembly: Guid("2a4f6a80-e6e0-4764-ba6e-91484bda887f")>
|
|
||||||
|
|
||||||
' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
|
|
||||||
'
|
|
||||||
' Hauptversion
|
|
||||||
' Nebenversion
|
|
||||||
' Buildnummer
|
|
||||||
' Revision
|
|
||||||
'
|
|
||||||
' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
|
|
||||||
' indem Sie "*" wie unten gezeigt eingeben:
|
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("1.0.0.0")>
|
|
||||||
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
|
||||||
63
Modules.EDMI.File/My Project/Resources.Designer.vb
generated
63
Modules.EDMI.File/My Project/Resources.Designer.vb
generated
@ -1,63 +0,0 @@
|
|||||||
'------------------------------------------------------------------------------
|
|
||||||
' <auto-generated>
|
|
||||||
' Dieser Code wurde von einem Tool generiert.
|
|
||||||
' Laufzeitversion:4.0.30319.42000
|
|
||||||
'
|
|
||||||
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
|
|
||||||
' der Code erneut generiert wird.
|
|
||||||
' </auto-generated>
|
|
||||||
'------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Option Strict On
|
|
||||||
Option Explicit On
|
|
||||||
|
|
||||||
Imports System
|
|
||||||
|
|
||||||
Namespace My.Resources
|
|
||||||
|
|
||||||
'Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert
|
|
||||||
'-Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert.
|
|
||||||
'Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
|
|
||||||
'mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu.
|
|
||||||
'''<summary>
|
|
||||||
''' Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
|
|
||||||
'''</summary>
|
|
||||||
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0"), _
|
|
||||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
|
||||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
|
||||||
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
|
|
||||||
Friend Module Resources
|
|
||||||
|
|
||||||
Private resourceMan As Global.System.Resources.ResourceManager
|
|
||||||
|
|
||||||
Private resourceCulture As Global.System.Globalization.CultureInfo
|
|
||||||
|
|
||||||
'''<summary>
|
|
||||||
''' Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
|
|
||||||
'''</summary>
|
|
||||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
|
|
||||||
Get
|
|
||||||
If Object.ReferenceEquals(resourceMan, Nothing) Then
|
|
||||||
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("DigitalData.Modules.EDMI.File.Resources", GetType(Resources).Assembly)
|
|
||||||
resourceMan = temp
|
|
||||||
End If
|
|
||||||
Return resourceMan
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
|
|
||||||
'''<summary>
|
|
||||||
''' Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
|
|
||||||
''' Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden.
|
|
||||||
'''</summary>
|
|
||||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
|
||||||
Friend Property Culture() As Global.System.Globalization.CultureInfo
|
|
||||||
Get
|
|
||||||
Return resourceCulture
|
|
||||||
End Get
|
|
||||||
Set
|
|
||||||
resourceCulture = value
|
|
||||||
End Set
|
|
||||||
End Property
|
|
||||||
End Module
|
|
||||||
End Namespace
|
|
||||||
@ -1,117 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
</root>
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user