This commit is contained in:
Digital Data - Marlon Schreiber
2017-11-27 14:27:40 +01:00
commit f2e7c6fc6b
157 changed files with 179956 additions and 0 deletions

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="windream_Result_Handler.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1" />
</startup>
<applicationSettings>
<windream_Result_Handler.My.MySettings>
<setting name="SQliteConnection" serializeAs="String">
<value>D:\Programme\Digital Data\DD Windream Result Handler\Database\wdResultHandler.db3</value>
</setting>
</windream_Result_Handler.My.MySettings>
</applicationSettings>
</configuration>

View File

@@ -0,0 +1,204 @@
Imports System.IO
Public Class ClassLogger
Private Shared DateiSpeicherort As String = Nothing
Private Shared DateiPrefix As String = ""
Private Shared Datei As IO.File = Nothing
Private Shared Dateiname As String = ""
Private Shared StreamWriter As IO.StreamWriter = Nothing
Private Shared HasInformedAboutError As Boolean = False
' eine Art Konstruktor
Public Shared Sub Init(ByVal speicherort As String, Optional ByVal prefix As String = "", Optional ByVal appendFile As Boolean = True)
ClassLogger.DateiSpeicherort = speicherort
' wenn ein Prfix gesetzt wurde
If Not prefix = "" Then
' initialisiert das Prefix
ClassLogger.SetPrefix(prefix)
End If
Dim str As String = ClassLogger.DateiSpeicherort & "\" & ClassLogger.DateiPrefix & System.DateTime.Now.ToString("yyyy_MM_dd") & ".txt"
Dim anz As Integer = 1
Do While File.Exists(str)
Dim info As New FileInfo(str)
Dim length As Long = info.Length
If length > 5000000 Then
str = IO.Path.GetDirectoryName(str)
str = str & "\" & ClassLogger.DateiPrefix & System.DateTime.Now.ToString("yyyy_MM_dd") & "(" & anz.ToString & ").txt"
anz = anz + 1
Else
Exit Do
End If
Loop
ClassLogger.Dateiname = str
If Not appendFile Then
' der Versuch die Datei zu löschen
'Try
' My.Computer.FileSystem.DeleteFile(ClassNILogger.Dateiname, FileIO.UIOption.OnlyErrorDialogs, FileIO.RecycleOption.DeletePermanently)
'Catch ex As Exception
' ' bei Fehler besteht kein Schreibrecht auf die Datei oder Datei existiert nicht
' ' ALSO: alles Okay soweit
'End Try
My.Computer.FileSystem.WriteAllText(ClassLogger.Dateiname, "Neu erstellt - appendfile", False)
End If
' testen ob sich die Datei öffnen und beschreiben lässt
'ClassNILogger.CheckIsLogWritable()
End Sub
' legt den Speicherort fest
Public Shared Sub SetSpeicherort()
Dim f As New IO.DirectoryInfo(My.Application.Info.DirectoryPath & "\Log")
If f.Exists = False Then
IO.Directory.CreateDirectory(My.Application.Info.DirectoryPath & "\Log")
End If
ClassLogger.DateiSpeicherort = My.Application.Info.DirectoryPath & "\Log\"
End Sub
' legt das Prefix für den Dateinamen fest
Public Shared Sub SetPrefix(ByVal prefix As String)
ClassLogger.DateiPrefix = prefix
End Sub
Public Shared Sub Add(ByVal text As String, ByVal _error As Boolean, Optional ByVal Funktion As String = "")
If ClassLogger.OpenFile Then
Try
Dim msg As String
If _error = True And Funktion <> "" Then
msg = ">> Achtung Fehler in Funktion '" & Funktion & "'" & vbNewLine
ElseIf _error = True Then
msg = ">> Achtung Fehler:" & vbNewLine
End If
msg &= text
ClassLogger.StreamWriter.WriteLine(msg)
ClassLogger.CloseFile()
Catch e As Exception
ClassLogger.WriteErrorMessage()
End Try
Else
ClassLogger.WriteErrorMessage()
End If
End Sub
Public Shared Sub AddDetailLog(ByVal text As String)
If ClassLogger.OpenFile Then
Try
If clsSQLITE.konf_logerrorsonly = False Then
ClassLogger.StreamWriter.WriteLine("*" & text)
ClassLogger.CloseFile()
End If
Catch e As Exception
ClassLogger.WriteErrorMessage()
End Try
Else
ClassLogger.WriteErrorMessage()
End If
End Sub
' öffnet eine Datei zum Schreiben
Private Shared Function OpenFile()
Try
' wenn ein Speicherort festgelegt wurde
If Not ClassLogger.DateiSpeicherort = Nothing Then
' den Dateienamen definieren
Dim dateiname As String = ClassLogger.Dateiname
' Datei anlegen wenn noch nicht vorhanden
My.Computer.FileSystem.WriteAllText(dateiname, String.Empty, True)
' die Datei zum Schreiben öffnen
ClassLogger.StreamWriter = New IO.StreamWriter(dateiname, True, System.Text.Encoding.UTF8)
End If
' wenn die Datei erfolgreich geöffnet wurde
If ClassLogger.StreamWriter IsNot Nothing Then
Return True
Else
Return False
End If
Catch ex As Exception
Return False
End Try
End Function
' öffnet eine Datei zum Schreiben
Private Shared Function OpenFile(ByVal DateiSpeicherort As String, ByVal DateiPrefix As String)
Try
' wenn ein Speicherort festgelegt wurde
If Not DateiSpeicherort = Nothing And ClassLogger.CheckIsLogWritable() Then
' den Dateienamen definieren
Dim dateiname As String = ClassLogger.Dateiname
' Datei anlegen wenn noch nicht vorhanden
My.Computer.FileSystem.WriteAllText(dateiname, String.Empty, True)
' die Datei zum Schreiben öffnen
ClassLogger.StreamWriter = New IO.StreamWriter(dateiname, True, System.Text.Encoding.UTF8)
End If
' wenn die Datei erfolgreich geöffnet wurde
If ClassLogger.StreamWriter IsNot Nothing Then
Return True
Else
Return False
End If
Catch ex As Exception
Return False
End Try
End Function
' schliesst die geöffnete Datei
Private Shared Sub CloseFile()
' wenn eine Datei geöffnet ist
If ClassLogger.StreamWriter IsNot Nothing Then
' die Datei schliessen
ClassLogger.StreamWriter.Close()
ClassLogger.StreamWriter = Nothing
End If
End Sub
Public Shared Function CheckIsLogWritable()
If ClassLogger.OpenFile Then
Try
ClassLogger.CloseFile()
Catch e As Exception
ClassLogger.WriteErrorMessage()
Return False
End Try
Else
ClassLogger.WriteErrorMessage()
Return False
End If
Return True
End Function
Public Shared Function CheckIsLogWritable(ByVal vDateiSpeicherort As String, ByVal vDateiPrefix As String)
If ClassLogger.OpenFile(vDateiSpeicherort, vDateiPrefix) Then
Try
ClassLogger.CloseFile()
Catch e As Exception
ClassLogger.WriteErrorMessage()
Return False
End Try
Else
ClassLogger.WriteErrorMessage()
Return False
End If
Return True
End Function
Private Shared Sub WriteErrorMessage()
If Not ClassLogger.HasInformedAboutError Then
clsSQLITE.Execute_non_Query("INSERT INTO TBLOG (MODUL,MESSAGE) VALUES ('MAIN','" & "Fehler beim Öffnen der Logdatei - Keine Schreibrechte im Verzeichnis? Es wird keine Logdatei angelegt oder beschrieben.")
'MsgBox("Beim Öffnen der Logdatei ist ein Fehler aufgetreten. Bitte stellen Sie sicher das Sie sowohl über entsprechende Schreibrechte im Verzeichnis, als auch über ausreichend Speicherplatz zum Speichern der Logdatei verfügen." & _
' vbNewLine & vbNewLine & "Es wird keine Logdatei angelegt oder beschrieben." & vbNewLine & vbNewLine & "Im folgenden werden Sie über Fehler, den Log betreffend nicht weiter informiert, um den Ablauf des Dateiimporters nicht zu stören.", _
' MsgBoxStyle.Information, "Fehler beim Öffnen der Logdatei")
ClassLogger.HasInformedAboutError = True
End If
End Sub
End Class

View File

@@ -0,0 +1,13 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:4.0.30319.34011
'
' 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

View File

@@ -0,0 +1,10 @@
<?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>3</ApplicationType>
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
</MyApplicationData>

View File

@@ -0,0 +1,35 @@
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 mit einer Assembly verknüpft sind.
' Die Werte der Assemblyattribute überprüfen
<Assembly: AssemblyTitle("windream-Result-Handler")>
<Assembly: AssemblyDescription("")>
<Assembly: AssemblyCompany("")>
<Assembly: AssemblyProduct("windream-Result-Handler")>
<Assembly: AssemblyCopyright("Copyright © 2014")>
<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("a2a36944-71fc-4152-9e2a-c06a95aa4b5d")>
' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
'
' Hauptversion
' Nebenversion
' Buildnummer
' Revision
'
' Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.0.0.0")>
<Assembly: AssemblyFileVersion("1.0.0.0")>

View File

@@ -0,0 +1,62 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:4.0.30319.34011
'
' 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("windream_Result_Handler.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

View File

@@ -0,0 +1,117 @@
<?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>

View File

@@ -0,0 +1,83 @@
'------------------------------------------------------------------------------
' <auto-generated>
' Dieser Code wurde von einem Tool generiert.
' Laufzeitversion:4.0.30319.34014
'
' Ä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", "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 "Funktion zum automatischen Speichern von My.Settings"
#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
<Global.System.Configuration.ApplicationScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("D:\Programme\Digital Data\DD Windream Result Handler\Database\wdResultHandler.db3"& _
"")> _
Public ReadOnly Property SQliteConnection() As String
Get
Return CType(Me("SQliteConnection"),String)
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.windream_Result_Handler.My.MySettings
Get
Return Global.windream_Result_Handler.My.MySettings.Default
End Get
End Property
End Module
End Namespace

View File

@@ -0,0 +1,9 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="My" GeneratedClassName="MySettings" UseMySettingsClassName="true">
<Profiles />
<Settings>
<Setting Name="SQliteConnection" Roaming="true" Type="System.String" Scope="Application">
<Value Profile="(Default)">D:\Programme\Digital Data\DD Windream Result Handler\Database\wdResultHandler.db3</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@@ -0,0 +1,648 @@
'------------------------------------------------------------------------------
' <auto-generated>
' Dieser Code wurde von einem Tool generiert.
' Laufzeitversion:4.0.30319.34014
'
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
' der Code erneut generiert wird.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict Off
Option Explicit On
'''<summary>
'''Represents a strongly typed in-memory cache of data.
'''</summary>
<Global.System.Serializable(), _
Global.System.ComponentModel.DesignerCategoryAttribute("code"), _
Global.System.ComponentModel.ToolboxItem(true), _
Global.System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema"), _
Global.System.Xml.Serialization.XmlRootAttribute("MyDataset"), _
Global.System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")> _
Partial Public Class MyDataset
Inherits Global.System.Data.DataSet
Private tableTBVEKTOR_INDEX As TBVEKTOR_INDEXDataTable
Private _schemaSerializationMode As Global.System.Data.SchemaSerializationMode = Global.System.Data.SchemaSerializationMode.IncludeSchema
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Sub New()
MyBase.New()
Me.BeginInit()
Me.InitClass()
Dim schemaChangedHandler As Global.System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged
AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler
AddHandler MyBase.Relations.CollectionChanged, schemaChangedHandler
Me.EndInit()
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Protected Sub New(ByVal info As Global.System.Runtime.Serialization.SerializationInfo, ByVal context As Global.System.Runtime.Serialization.StreamingContext)
MyBase.New(info, context, False)
If (Me.IsBinarySerialized(info, context) = True) Then
Me.InitVars(False)
Dim schemaChangedHandler1 As Global.System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged
AddHandler Me.Tables.CollectionChanged, schemaChangedHandler1
AddHandler Me.Relations.CollectionChanged, schemaChangedHandler1
Return
End If
Dim strSchema As String = CType(info.GetValue("XmlSchema", GetType(String)), String)
If (Me.DetermineSchemaSerializationMode(info, context) = Global.System.Data.SchemaSerializationMode.IncludeSchema) Then
Dim ds As Global.System.Data.DataSet = New Global.System.Data.DataSet()
ds.ReadXmlSchema(New Global.System.Xml.XmlTextReader(New Global.System.IO.StringReader(strSchema)))
If (Not (ds.Tables("TBVEKTOR_INDEX")) Is Nothing) Then
MyBase.Tables.Add(New TBVEKTOR_INDEXDataTable(ds.Tables("TBVEKTOR_INDEX")))
End If
Me.DataSetName = ds.DataSetName
Me.Prefix = ds.Prefix
Me.Namespace = ds.Namespace
Me.Locale = ds.Locale
Me.CaseSensitive = ds.CaseSensitive
Me.EnforceConstraints = ds.EnforceConstraints
Me.Merge(ds, False, Global.System.Data.MissingSchemaAction.Add)
Me.InitVars()
Else
Me.ReadXmlSchema(New Global.System.Xml.XmlTextReader(New Global.System.IO.StringReader(strSchema)))
End If
Me.GetSerializationData(info, context)
Dim schemaChangedHandler As Global.System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged
AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler
AddHandler Me.Relations.CollectionChanged, schemaChangedHandler
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0"), _
Global.System.ComponentModel.Browsable(False), _
Global.System.ComponentModel.DesignerSerializationVisibility(Global.System.ComponentModel.DesignerSerializationVisibility.Content)> _
Public ReadOnly Property TBVEKTOR_INDEX() As TBVEKTOR_INDEXDataTable
Get
Return Me.tableTBVEKTOR_INDEX
End Get
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0"), _
Global.System.ComponentModel.BrowsableAttribute(True), _
Global.System.ComponentModel.DesignerSerializationVisibilityAttribute(Global.System.ComponentModel.DesignerSerializationVisibility.Visible)> _
Public Overrides Property SchemaSerializationMode() As Global.System.Data.SchemaSerializationMode
Get
Return Me._schemaSerializationMode
End Get
Set(value As Global.System.Data.SchemaSerializationMode)
Me._schemaSerializationMode = value
End Set
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0"), _
Global.System.ComponentModel.DesignerSerializationVisibilityAttribute(Global.System.ComponentModel.DesignerSerializationVisibility.Hidden)> _
Public Shadows ReadOnly Property Tables() As Global.System.Data.DataTableCollection
Get
Return MyBase.Tables
End Get
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0"), _
Global.System.ComponentModel.DesignerSerializationVisibilityAttribute(Global.System.ComponentModel.DesignerSerializationVisibility.Hidden)> _
Public Shadows ReadOnly Property Relations() As Global.System.Data.DataRelationCollection
Get
Return MyBase.Relations
End Get
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Protected Overrides Sub InitializeDerivedDataSet()
Me.BeginInit()
Me.InitClass()
Me.EndInit()
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Overrides Function Clone() As Global.System.Data.DataSet
Dim cln As MyDataset = CType(MyBase.Clone, MyDataset)
cln.InitVars()
cln.SchemaSerializationMode = Me.SchemaSerializationMode
Return cln
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Protected Overrides Function ShouldSerializeTables() As Boolean
Return False
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Protected Overrides Function ShouldSerializeRelations() As Boolean
Return False
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Protected Overrides Sub ReadXmlSerializable(ByVal reader As Global.System.Xml.XmlReader)
If (Me.DetermineSchemaSerializationMode(reader) = Global.System.Data.SchemaSerializationMode.IncludeSchema) Then
Me.Reset()
Dim ds As Global.System.Data.DataSet = New Global.System.Data.DataSet()
ds.ReadXml(reader)
If (Not (ds.Tables("TBVEKTOR_INDEX")) Is Nothing) Then
MyBase.Tables.Add(New TBVEKTOR_INDEXDataTable(ds.Tables("TBVEKTOR_INDEX")))
End If
Me.DataSetName = ds.DataSetName
Me.Prefix = ds.Prefix
Me.Namespace = ds.Namespace
Me.Locale = ds.Locale
Me.CaseSensitive = ds.CaseSensitive
Me.EnforceConstraints = ds.EnforceConstraints
Me.Merge(ds, False, Global.System.Data.MissingSchemaAction.Add)
Me.InitVars()
Else
Me.ReadXml(reader)
Me.InitVars()
End If
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Protected Overrides Function GetSchemaSerializable() As Global.System.Xml.Schema.XmlSchema
Dim stream As Global.System.IO.MemoryStream = New Global.System.IO.MemoryStream()
Me.WriteXmlSchema(New Global.System.Xml.XmlTextWriter(stream, Nothing))
stream.Position = 0
Return Global.System.Xml.Schema.XmlSchema.Read(New Global.System.Xml.XmlTextReader(stream), Nothing)
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Friend Overloads Sub InitVars()
Me.InitVars(True)
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Friend Overloads Sub InitVars(ByVal initTable As Boolean)
Me.tableTBVEKTOR_INDEX = CType(MyBase.Tables("TBVEKTOR_INDEX"), TBVEKTOR_INDEXDataTable)
If (initTable = True) Then
If (Not (Me.tableTBVEKTOR_INDEX) Is Nothing) Then
Me.tableTBVEKTOR_INDEX.InitVars()
End If
End If
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Private Sub InitClass()
Me.DataSetName = "MyDataset"
Me.Prefix = ""
Me.Namespace = "http://tempuri.org/MyDataset.xsd"
Me.EnforceConstraints = True
Me.SchemaSerializationMode = Global.System.Data.SchemaSerializationMode.IncludeSchema
Me.tableTBVEKTOR_INDEX = New TBVEKTOR_INDEXDataTable()
MyBase.Tables.Add(Me.tableTBVEKTOR_INDEX)
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Private Function ShouldSerializeTBVEKTOR_INDEX() As Boolean
Return False
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Private Sub SchemaChanged(ByVal sender As Object, ByVal e As Global.System.ComponentModel.CollectionChangeEventArgs)
If (e.Action = Global.System.ComponentModel.CollectionChangeAction.Remove) Then
Me.InitVars()
End If
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Shared Function GetTypedDataSetSchema(ByVal xs As Global.System.Xml.Schema.XmlSchemaSet) As Global.System.Xml.Schema.XmlSchemaComplexType
Dim ds As MyDataset = New MyDataset()
Dim type As Global.System.Xml.Schema.XmlSchemaComplexType = New Global.System.Xml.Schema.XmlSchemaComplexType()
Dim sequence As Global.System.Xml.Schema.XmlSchemaSequence = New Global.System.Xml.Schema.XmlSchemaSequence()
Dim any As Global.System.Xml.Schema.XmlSchemaAny = New Global.System.Xml.Schema.XmlSchemaAny()
any.Namespace = ds.Namespace
sequence.Items.Add(any)
type.Particle = sequence
Dim dsSchema As Global.System.Xml.Schema.XmlSchema = ds.GetSchemaSerializable
If xs.Contains(dsSchema.TargetNamespace) Then
Dim s1 As Global.System.IO.MemoryStream = New Global.System.IO.MemoryStream()
Dim s2 As Global.System.IO.MemoryStream = New Global.System.IO.MemoryStream()
Try
Dim schema As Global.System.Xml.Schema.XmlSchema = Nothing
dsSchema.Write(s1)
Dim schemas As Global.System.Collections.IEnumerator = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator
Do While schemas.MoveNext
schema = CType(schemas.Current, Global.System.Xml.Schema.XmlSchema)
s2.SetLength(0)
schema.Write(s2)
If (s1.Length = s2.Length) Then
s1.Position = 0
s2.Position = 0
Do While ((s1.Position <> s1.Length) _
AndAlso (s1.ReadByte = s2.ReadByte))
Loop
If (s1.Position = s1.Length) Then
Return type
End If
End If
Loop
Finally
If (Not (s1) Is Nothing) Then
s1.Close()
End If
If (Not (s2) Is Nothing) Then
s2.Close()
End If
End Try
End If
xs.Add(dsSchema)
Return type
End Function
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Delegate Sub TBVEKTOR_INDEXRowChangeEventHandler(ByVal sender As Object, ByVal e As TBVEKTOR_INDEXRowChangeEvent)
'''<summary>
'''Represents the strongly named DataTable class.
'''</summary>
<Global.System.Serializable(), _
Global.System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")> _
Partial Public Class TBVEKTOR_INDEXDataTable
Inherits Global.System.Data.TypedTableBase(Of TBVEKTOR_INDEXRow)
Private columnIndexname As Global.System.Data.DataColumn
Private columnValue As Global.System.Data.DataColumn
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Sub New()
MyBase.New()
Me.TableName = "TBVEKTOR_INDEX"
Me.BeginInit()
Me.InitClass()
Me.EndInit()
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Friend Sub New(ByVal table As Global.System.Data.DataTable)
MyBase.New()
Me.TableName = table.TableName
If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then
Me.CaseSensitive = table.CaseSensitive
End If
If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then
Me.Locale = table.Locale
End If
If (table.Namespace <> table.DataSet.Namespace) Then
Me.Namespace = table.Namespace
End If
Me.Prefix = table.Prefix
Me.MinimumCapacity = table.MinimumCapacity
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Protected Sub New(ByVal info As Global.System.Runtime.Serialization.SerializationInfo, ByVal context As Global.System.Runtime.Serialization.StreamingContext)
MyBase.New(info, context)
Me.InitVars()
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public ReadOnly Property IndexnameColumn() As Global.System.Data.DataColumn
Get
Return Me.columnIndexname
End Get
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public ReadOnly Property ValueColumn() As Global.System.Data.DataColumn
Get
Return Me.columnValue
End Get
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0"), _
Global.System.ComponentModel.Browsable(False)> _
Public ReadOnly Property Count() As Integer
Get
Return Me.Rows.Count
End Get
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Default Public ReadOnly Property Item(ByVal index As Integer) As TBVEKTOR_INDEXRow
Get
Return CType(Me.Rows(index), TBVEKTOR_INDEXRow)
End Get
End Property
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Event TBVEKTOR_INDEXRowChanging As TBVEKTOR_INDEXRowChangeEventHandler
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Event TBVEKTOR_INDEXRowChanged As TBVEKTOR_INDEXRowChangeEventHandler
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Event TBVEKTOR_INDEXRowDeleting As TBVEKTOR_INDEXRowChangeEventHandler
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Event TBVEKTOR_INDEXRowDeleted As TBVEKTOR_INDEXRowChangeEventHandler
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Overloads Sub AddTBVEKTOR_INDEXRow(ByVal row As TBVEKTOR_INDEXRow)
Me.Rows.Add(row)
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Overloads Function AddTBVEKTOR_INDEXRow(ByVal Indexname As String, ByVal Value As String) As TBVEKTOR_INDEXRow
Dim rowTBVEKTOR_INDEXRow As TBVEKTOR_INDEXRow = CType(Me.NewRow, TBVEKTOR_INDEXRow)
Dim columnValuesArray() As Object = New Object() {Indexname, Value}
rowTBVEKTOR_INDEXRow.ItemArray = columnValuesArray
Me.Rows.Add(rowTBVEKTOR_INDEXRow)
Return rowTBVEKTOR_INDEXRow
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Overrides Function Clone() As Global.System.Data.DataTable
Dim cln As TBVEKTOR_INDEXDataTable = CType(MyBase.Clone, TBVEKTOR_INDEXDataTable)
cln.InitVars()
Return cln
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Protected Overrides Function CreateInstance() As Global.System.Data.DataTable
Return New TBVEKTOR_INDEXDataTable()
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Friend Sub InitVars()
Me.columnIndexname = MyBase.Columns("Indexname")
Me.columnValue = MyBase.Columns("Value")
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Private Sub InitClass()
Me.columnIndexname = New Global.System.Data.DataColumn("Indexname", GetType(String), Nothing, Global.System.Data.MappingType.Element)
MyBase.Columns.Add(Me.columnIndexname)
Me.columnValue = New Global.System.Data.DataColumn("Value", GetType(String), Nothing, Global.System.Data.MappingType.Element)
MyBase.Columns.Add(Me.columnValue)
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Function NewTBVEKTOR_INDEXRow() As TBVEKTOR_INDEXRow
Return CType(Me.NewRow, TBVEKTOR_INDEXRow)
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Protected Overrides Function NewRowFromBuilder(ByVal builder As Global.System.Data.DataRowBuilder) As Global.System.Data.DataRow
Return New TBVEKTOR_INDEXRow(builder)
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Protected Overrides Function GetRowType() As Global.System.Type
Return GetType(TBVEKTOR_INDEXRow)
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Protected Overrides Sub OnRowChanged(ByVal e As Global.System.Data.DataRowChangeEventArgs)
MyBase.OnRowChanged(e)
If (Not (Me.TBVEKTOR_INDEXRowChangedEvent) Is Nothing) Then
RaiseEvent TBVEKTOR_INDEXRowChanged(Me, New TBVEKTOR_INDEXRowChangeEvent(CType(e.Row, TBVEKTOR_INDEXRow), e.Action))
End If
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Protected Overrides Sub OnRowChanging(ByVal e As Global.System.Data.DataRowChangeEventArgs)
MyBase.OnRowChanging(e)
If (Not (Me.TBVEKTOR_INDEXRowChangingEvent) Is Nothing) Then
RaiseEvent TBVEKTOR_INDEXRowChanging(Me, New TBVEKTOR_INDEXRowChangeEvent(CType(e.Row, TBVEKTOR_INDEXRow), e.Action))
End If
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Protected Overrides Sub OnRowDeleted(ByVal e As Global.System.Data.DataRowChangeEventArgs)
MyBase.OnRowDeleted(e)
If (Not (Me.TBVEKTOR_INDEXRowDeletedEvent) Is Nothing) Then
RaiseEvent TBVEKTOR_INDEXRowDeleted(Me, New TBVEKTOR_INDEXRowChangeEvent(CType(e.Row, TBVEKTOR_INDEXRow), e.Action))
End If
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Protected Overrides Sub OnRowDeleting(ByVal e As Global.System.Data.DataRowChangeEventArgs)
MyBase.OnRowDeleting(e)
If (Not (Me.TBVEKTOR_INDEXRowDeletingEvent) Is Nothing) Then
RaiseEvent TBVEKTOR_INDEXRowDeleting(Me, New TBVEKTOR_INDEXRowChangeEvent(CType(e.Row, TBVEKTOR_INDEXRow), e.Action))
End If
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Sub RemoveTBVEKTOR_INDEXRow(ByVal row As TBVEKTOR_INDEXRow)
Me.Rows.Remove(row)
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Shared Function GetTypedTableSchema(ByVal xs As Global.System.Xml.Schema.XmlSchemaSet) As Global.System.Xml.Schema.XmlSchemaComplexType
Dim type As Global.System.Xml.Schema.XmlSchemaComplexType = New Global.System.Xml.Schema.XmlSchemaComplexType()
Dim sequence As Global.System.Xml.Schema.XmlSchemaSequence = New Global.System.Xml.Schema.XmlSchemaSequence()
Dim ds As MyDataset = New MyDataset()
Dim any1 As Global.System.Xml.Schema.XmlSchemaAny = New Global.System.Xml.Schema.XmlSchemaAny()
any1.Namespace = "http://www.w3.org/2001/XMLSchema"
any1.MinOccurs = New Decimal(0)
any1.MaxOccurs = Decimal.MaxValue
any1.ProcessContents = Global.System.Xml.Schema.XmlSchemaContentProcessing.Lax
sequence.Items.Add(any1)
Dim any2 As Global.System.Xml.Schema.XmlSchemaAny = New Global.System.Xml.Schema.XmlSchemaAny()
any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"
any2.MinOccurs = New Decimal(1)
any2.ProcessContents = Global.System.Xml.Schema.XmlSchemaContentProcessing.Lax
sequence.Items.Add(any2)
Dim attribute1 As Global.System.Xml.Schema.XmlSchemaAttribute = New Global.System.Xml.Schema.XmlSchemaAttribute()
attribute1.Name = "namespace"
attribute1.FixedValue = ds.Namespace
type.Attributes.Add(attribute1)
Dim attribute2 As Global.System.Xml.Schema.XmlSchemaAttribute = New Global.System.Xml.Schema.XmlSchemaAttribute()
attribute2.Name = "tableTypeName"
attribute2.FixedValue = "TBVEKTOR_INDEXDataTable"
type.Attributes.Add(attribute2)
type.Particle = sequence
Dim dsSchema As Global.System.Xml.Schema.XmlSchema = ds.GetSchemaSerializable
If xs.Contains(dsSchema.TargetNamespace) Then
Dim s1 As Global.System.IO.MemoryStream = New Global.System.IO.MemoryStream()
Dim s2 As Global.System.IO.MemoryStream = New Global.System.IO.MemoryStream()
Try
Dim schema As Global.System.Xml.Schema.XmlSchema = Nothing
dsSchema.Write(s1)
Dim schemas As Global.System.Collections.IEnumerator = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator
Do While schemas.MoveNext
schema = CType(schemas.Current, Global.System.Xml.Schema.XmlSchema)
s2.SetLength(0)
schema.Write(s2)
If (s1.Length = s2.Length) Then
s1.Position = 0
s2.Position = 0
Do While ((s1.Position <> s1.Length) _
AndAlso (s1.ReadByte = s2.ReadByte))
Loop
If (s1.Position = s1.Length) Then
Return type
End If
End If
Loop
Finally
If (Not (s1) Is Nothing) Then
s1.Close()
End If
If (Not (s2) Is Nothing) Then
s2.Close()
End If
End Try
End If
xs.Add(dsSchema)
Return type
End Function
End Class
'''<summary>
'''Represents strongly named DataRow class.
'''</summary>
Partial Public Class TBVEKTOR_INDEXRow
Inherits Global.System.Data.DataRow
Private tableTBVEKTOR_INDEX As TBVEKTOR_INDEXDataTable
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Friend Sub New(ByVal rb As Global.System.Data.DataRowBuilder)
MyBase.New(rb)
Me.tableTBVEKTOR_INDEX = CType(Me.Table, TBVEKTOR_INDEXDataTable)
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Property Indexname() As String
Get
Try
Return CType(Me(Me.tableTBVEKTOR_INDEX.IndexnameColumn), String)
Catch e As Global.System.InvalidCastException
Throw New Global.System.Data.StrongTypingException("Der Wert für Spalte Indexname in Tabelle TBVEKTOR_INDEX ist DBNull.", e)
End Try
End Get
Set(value As String)
Me(Me.tableTBVEKTOR_INDEX.IndexnameColumn) = value
End Set
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Property Value() As String
Get
Try
Return CType(Me(Me.tableTBVEKTOR_INDEX.ValueColumn), String)
Catch e As Global.System.InvalidCastException
Throw New Global.System.Data.StrongTypingException("Der Wert für Spalte Value in Tabelle TBVEKTOR_INDEX ist DBNull.", e)
End Try
End Get
Set(value As String)
Me(Me.tableTBVEKTOR_INDEX.ValueColumn) = value
End Set
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Function IsIndexnameNull() As Boolean
Return Me.IsNull(Me.tableTBVEKTOR_INDEX.IndexnameColumn)
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Sub SetIndexnameNull()
Me(Me.tableTBVEKTOR_INDEX.IndexnameColumn) = Global.System.Convert.DBNull
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Function IsValueNull() As Boolean
Return Me.IsNull(Me.tableTBVEKTOR_INDEX.ValueColumn)
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Sub SetValueNull()
Me(Me.tableTBVEKTOR_INDEX.ValueColumn) = Global.System.Convert.DBNull
End Sub
End Class
'''<summary>
'''Row event argument class
'''</summary>
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Class TBVEKTOR_INDEXRowChangeEvent
Inherits Global.System.EventArgs
Private eventRow As TBVEKTOR_INDEXRow
Private eventAction As Global.System.Data.DataRowAction
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Sub New(ByVal row As TBVEKTOR_INDEXRow, ByVal action As Global.System.Data.DataRowAction)
MyBase.New()
Me.eventRow = row
Me.eventAction = action
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public ReadOnly Property Row() As TBVEKTOR_INDEXRow
Get
Return Me.eventRow
End Get
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public ReadOnly Property Action() As Global.System.Data.DataRowAction
Get
Return Me.eventAction
End Get
End Property
End Class
End Class

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
This code was generated by a tool.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DataSetUISetting Version="1.00" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TableUISettings />
</DataSetUISetting>

View File

@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="MyDataset" targetNamespace="http://tempuri.org/MyDataset.xsd" xmlns:mstns="http://tempuri.org/MyDataset.xsd" xmlns="http://tempuri.org/MyDataset.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:msprop="urn:schemas-microsoft-com:xml-msprop" attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:annotation>
<xs:appinfo source="urn:schemas-microsoft-com:xml-msdatasource">
<DataSource DefaultConnectionIndex="0" FunctionsComponentName="QueriesTableAdapter" Modifier="AutoLayout, AnsiClass, Class, Public" SchemaSerializationMode="IncludeSchema" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<Connections />
<Tables />
<Sources />
</DataSource>
</xs:appinfo>
</xs:annotation>
<xs:element name="MyDataset" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:EnableTableAdapterManager="true" msprop:Generator_DataSetName="MyDataset" msprop:Generator_UserDSName="MyDataset">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="TBVEKTOR_INDEX" msprop:Generator_TableClassName="TBVEKTOR_INDEXDataTable" msprop:Generator_TableVarName="tableTBVEKTOR_INDEX" msprop:Generator_TablePropName="TBVEKTOR_INDEX" msprop:Generator_RowDeletingName="TBVEKTOR_INDEXRowDeleting" msprop:Generator_RowChangingName="TBVEKTOR_INDEXRowChanging" msprop:Generator_RowEvHandlerName="TBVEKTOR_INDEXRowChangeEventHandler" msprop:Generator_RowDeletedName="TBVEKTOR_INDEXRowDeleted" msprop:Generator_UserTableName="TBVEKTOR_INDEX" msprop:Generator_RowChangedName="TBVEKTOR_INDEXRowChanged" msprop:Generator_RowEvArgName="TBVEKTOR_INDEXRowChangeEvent" msprop:Generator_RowClassName="TBVEKTOR_INDEXRow">
<xs:complexType>
<xs:sequence>
<xs:element name="Indexname" msprop:Generator_ColumnVarNameInTable="columnIndexname" msprop:Generator_ColumnPropNameInRow="Indexname" msprop:Generator_ColumnPropNameInTable="IndexnameColumn" msprop:Generator_UserColumnName="Indexname" type="xs:string" minOccurs="0" />
<xs:element name="Value" msprop:Generator_ColumnVarNameInTable="columnValue" msprop:Generator_ColumnPropNameInRow="Value" msprop:Generator_ColumnPropNameInTable="ValueColumn" msprop:Generator_UserColumnName="Value" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
This code was generated by a tool to store the dataset designer's layout information.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="0" ViewPortY="0" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<Shapes>
<Shape ID="DesignTable:TBVEKTOR_INDEX" ZOrder="1" X="701" Y="298" Height="67" Width="171" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="63" />
</Shapes>
<Connectors />
</DiagramLayout>

View File

@@ -0,0 +1,47 @@
<System.ComponentModel.RunInstaller(True)> Partial Class ProjectInstaller
Inherits System.Configuration.Install.Installer
'Installer überschreibt den Löschvorgang zum Bereinigen der Komponentenliste.
<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 Komponenten-Designer benötigt.
Private components As System.ComponentModel.IContainer
'Hinweis: Die folgende Prozedur ist für den Komponenten-Designer erforderlich.
'Das Bearbeiten ist mit dem Komponenten-Designer möglich.
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.ServiceProcessInstaller1 = New System.ServiceProcess.ServiceProcessInstaller()
Me.ServiceInstaller1 = New System.ServiceProcess.ServiceInstaller()
'
'ServiceProcessInstaller1
'
Me.ServiceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalSystem
Me.ServiceProcessInstaller1.Password = Nothing
Me.ServiceProcessInstaller1.Username = Nothing
'
'ServiceInstaller1
'
Me.ServiceInstaller1.Description = "Führt windream Suchen aus und verarbeitet die gefundenen Dateien nach PRofilangab" & _
"e"
Me.ServiceInstaller1.ServiceName = "DDwindreamResultHandler"
'
'ProjectInstaller
'
Me.Installers.AddRange(New System.Configuration.Install.Installer() {Me.ServiceProcessInstaller1, Me.ServiceInstaller1})
End Sub
Friend WithEvents ServiceProcessInstaller1 As System.ServiceProcess.ServiceProcessInstaller
Friend WithEvents ServiceInstaller1 As System.ServiceProcess.ServiceInstaller
End Class

View File

@@ -0,0 +1,129 @@
<?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>
<metadata name="ServiceProcessInstaller1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 56</value>
</metadata>
<metadata name="ServiceInstaller1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>197, 17</value>
</metadata>
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
</root>

View File

@@ -0,0 +1,16 @@
Imports System.ComponentModel
Imports System.Configuration.Install
Public Class ProjectInstaller
Public Sub New()
MyBase.New()
'Dieser Aufruf ist für den Komponenten-Designer erforderlich.
InitializeComponent()
'Initialisierungscode nach dem Aufruf von InitializeComponent hinzufügen
End Sub
End Class

View File

@@ -0,0 +1,49 @@
Imports System.ServiceProcess
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Service1
Inherits System.ServiceProcess.ServiceBase
'UserService ü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
' Der Haupteinstiegspunkt für den Prozess
<MTAThread()> _
<System.Diagnostics.DebuggerNonUserCode()> _
Shared Sub Main()
Dim ServicesToRun() As System.ServiceProcess.ServiceBase
' Innerhalb eines Prozesses können mehrere NT-Dienste ausgeführt werden. Um einen
' weiteren Dienst zu diesem Prozess hinzuzufügen, ändern Sie die folgende Zeile,
' um ein zweites Dienstobjekt zu erstellen. Zum Beispiel
'
' ServicesToRun = New System.ServiceProcess.ServiceBase () {New Service1, New MySecondUserService}
'
ServicesToRun = New System.ServiceProcess.ServiceBase() {New Service1}
System.ServiceProcess.ServiceBase.Run(ServicesToRun)
End Sub
'Wird vom Komponenten-Designer benötigt.
Private components As System.ComponentModel.IContainer
' Hinweis: Die folgende Prozedur ist für den Komponenten-Designer erforderlich.
' Das Bearbeiten ist mit dem Komponenten-Designer möglich.
' Das Bearbeiten mit dem Code-Editor ist nicht möglich.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
components = New System.ComponentModel.Container()
Me.ServiceName = "Service1"
End Sub
End Class

View File

@@ -0,0 +1,140 @@
Imports System.IO
Imports System.Collections.ObjectModel
Imports System.ComponentModel
Imports System.Data.SQLite
Public Class Service1
#Region "+++++ Variablen +++++"
Public Shared _windream As New clsWindream_allgemein
Public Shared threadRunner As BackgroundWorker
Public Shared WDLaufwerk As String
Public Shared _PROFIL_ID As Integer
Dim _INTERVALL As Integer
'Variablen für Dateiimporter
#End Region
#Region "+++++ Start Stop Events +++++"
Protected Overrides Sub OnStart(ByVal args() As String)
' Code zum Starten des Dienstes hier einfügen. Diese Methode sollte Vorgänge
' ausführen, damit der Dienst gestartet werden kann.
' Code zum Starten des Dienstes hier einfügen.
Init()
End Sub
Sub Init()
Try
ClassLogger.Init(My.Application.Info.DirectoryPath & "\Log", "logService_")
ClassLogger.Add(" ", False)
ClassLogger.Add("## WindreamResultHandler Init-Phase - " & Now & " ## ", False)
If My.Settings.SQliteConnection = String.Empty Then
ClassLogger.Add("Achtung: Es wurde noch kein Datenbank-ConnectionString hinterlegt.", True)
Exit Sub
Else
If clsSQLITE.Init = False Then
ClassLogger.Add("Achtung: Es konnte keine Verbindung zur Datenbank '" & My.Settings.SQliteConnection & "' hergestellt werden!", True)
Exit Sub
Else
'### Thread für Durchlauf generieren
Service1.threadRunner = New BackgroundWorker()
Service1.threadRunner.WorkerReportsProgress = True
Service1.threadRunner.WorkerSupportsCancellation = True
AddHandler threadRunner.DoWork, AddressOf RUN_THREAD
AddHandler threadRunner.RunWorkerCompleted, AddressOf Thread_Completed
'### Den Timer generieren
Dim Timer_Durchlauf As New System.Timers.Timer()
'Das Event hinterlegen welches bei "Tick" ausgelöst wird
AddHandler Timer_Durchlauf.Elapsed, AddressOf Thread_Run
' Set the Interval
Timer_Durchlauf.Interval = clsSQLITE.konf_intervall * 60000
ClassLogger.Add("- Timer - Intervall: " & clsSQLITE.konf_intervall & " Minuten", False)
Timer_Durchlauf.Enabled = True
ClassLogger.Add("- Timer gestartet", False)
' Und den Durchlauf das erste Mal starten
threadRunner.RunWorkerAsync()
End If
End If
Catch ex As Exception
ClassLogger.Add(ex.Message, True, "Service Init")
End Try
End Sub
Public Shared Sub Thread_Run()
If Not threadRunner.IsBusy Then
threadRunner.RunWorkerAsync()
End If
End Sub
Protected Overrides Sub OnStop()
' Hier Code zum Ausführen erforderlicher Löschvorgänge zum Beenden des Dienstes einfügen.
' Hier Code zum Ausführen erforderlicher Löschvorgänge zum Beenden des Dienstes einfügen.
ClassLogger.Add("", False)
ClassLogger.Add("## WindreamResultHandler wurde gestoppt - " & Now & " ## ", False)
ClassLogger.Add("", False)
End Sub
Public Shared Sub RUN_THREAD(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs)
Try
ClassLogger.Init(My.Application.Info.DirectoryPath & "\Log", "logService_")
ClassLogger.Add("", False)
ClassLogger.Add("## Start Durchlauf WindreamResultHandler - " & Now & " ## ", False)
ClassLogger.Add("", False)
'windream initialisieren
If _windream.Init() = True Then
'Zur sicherheit die DB nochmal initialiseren
If clsSQLITE.Init() = True Then
Dim DT As DataTable = clsSQLITE.Return_Datatable("SELECT GUID FROM TBPROFIL WHERE AKTIV = 1 order by REIHENFOLGE")
For Each DR As DataRow In DT.Rows
_PROFIL_ID = CInt(DR.Item("GUID"))
'Und nun das Profil durchlaufen
If clsProfil.Init(_PROFIL_ID) = True Then
clsProfil.Profil_Durchlauf()
End If
Next
clsSQLITE.Execute_non_Query("UPDATE TBKONFIGURATION SET LAST_TICK = DATETIME ('now' , 'localtime') WHERE GUID = 1")
End If
End If
Catch ex As Exception
ClassLogger.Add(ex.Message, True, "RUN_THREAD")
End Try
End Sub
#End Region
#Region "*** BackgroundWorker DI und NI beenden und Abbrechen ***"
Private Shared Sub Thread_Completed(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) 'Handles threadDateiimport.RunWorkerCompleted
' This event fires when the DoWork event completes
Try
Dim result As String = ""
If e.Cancelled Then
ClassLogger.Add("## Der Dateiimport wurde durch den Anwender abgebrochen", False)
ElseIf e.Error IsNot Nothing Then
ClassLogger.Add("Fehler bei Durchlauf. Der Vorgang wird abgebrochen.", True, "Thread_Completed")
ClassLogger.Add(e.Error.Message, True, "Thread_Completed")
End If
'If DI_Verzeichnisloeschen Then
' Try
' My.Computer.FileSystem.DeleteDirectory(DI_Quellordner, FileIO.DeleteDirectoryOption.ThrowIfDirectoryNonEmpty)
' Catch ex As Exception
' ClassLogger.Add("ACHTUNG: Der Vorgang wurde abgeschlossen. Das Quellverzeichnis konnte jedoch nicht gelöscht werden, da sich in dem Ordner noch Dateien/Verzeichnisse befinden.", False)
' End Try
'End If
Catch ex As Exception
ClassLogger.Add(ex.Message, True, "Thread_Completed")
End Try
End Sub
Public Shared Function Thread_Abbrechen()
Try
If Service1.threadRunner.IsBusy Then
Service1.threadRunner.CancelAsync()
End If
Return True
Catch ex As Exception
ClassLogger.Add(ex.Message, True, "Thread_Abbrechen")
Return False
End Try
End Function
#End Region
End Class

View File

@@ -0,0 +1,11 @@
Namespace My
'Diese Klasse ermöglicht die Behandlung bestimmter Ereignisse der Einstellungsklasse:
' Das SettingChanging-Ereignis wird ausgelöst, bevor der Wert einer Einstellung geändert wird.
' Das PropertyChanged-Ereignis wird ausgelöst, nachdem der Wert einer Einstellung geändert wurde.
' Das SettingsLoaded-Ereignis wird ausgelöst, nachdem die Einstellungswerte geladen wurden.
' Das SettingsSaving-Ereignis wird ausgelöst, bevor die Einstellungswerte gespeichert werden.
Partial Friend NotInheritable Class MySettings
End Class
End Namespace

View File

@@ -0,0 +1,84 @@
Imports WINDREAMLib
Imports System.IO
Public Class clsDateiverarbeitung
#Region "***** Variablen *****"
Public Shared _windream As New clsWindream_allgemein
Public Shared pr_Profilname, pr_Objekttyp, pr_wdSuche, WDLaufwerk As String
Public Shared pr_GUID As Integer
Public Shared pr_DTPROFIL_REGELN As DataTable
Private email As New clsEmail
Public Shared CriticalError As Boolean = False
Private Shared regel_TYP, regel_INDEX_NAME, regel_QUELLE1, regel_FROM1, regel_FROM2 As String
Private Shared Indexe() As String = Nothing ' zum Speichern der Indexe
Private Shared NI_Values() As String = Nothing ' zum Speichern der Werte
Private Shared WD_aktivesDokument As WMObject
#End Region
Public Shared Function InitProfilData()
Try
pr_Profilname = Nothing
pr_Objekttyp = Nothing
pr_wdSuche = Nothing
pr_DTPROFIL_REGELN = Nothing
' Profildaten der Klasse mitteilen
pr_Profilname = clsProfil._Profilname
pr_Objekttyp = clsProfil._profObjekttyp
pr_wdSuche = clsProfil._profwdSuche
pr_GUID = clsProfil._profGUID
WDLaufwerk = Service1.WDLaufwerk
Return True
Catch ex As Exception
ClassLogger.Add(ex.Message, True, "cls_DV.InitProfilData")
Return False
End Try
End Function
'Kopiert die übergebene Datei in den Zielpfad
Public Shared Function Export_File(WDDatei As WMObject, Zielpfad As String)
Try
ClassLogger.Add(">> Verarbeitung von Dokument: " & WDDatei.aName, "clsDV Export_File")
'Die Quelle zusammensetzen
Dim Quelle As String = IO.Path.GetDirectoryName(WDLaufwerk & ":" & WDDatei.aPath & "\" & WDDatei.aName)
ClassLogger.AddDetailLog("* Quell-Dokument Dokuments: " & Quelle)
'Das eigentliche kopieren
File.Copy(Quelle, Zielpfad & "\" & WDDatei.aName)
Return True
Catch ex As Exception
'bei einem Fehler einen Eintrag in der Logdatei machen
ClassLogger.Add("Unvorhergesehener Fehler: " & ex.Message, "clsDV Export_File", True)
Return False
End Try
End Function
Public Shared Function SetSingle_Index(ByVal _value As Object, ByVal _dok As WINDREAMLib.WMObject, ByVal _Indexname As String)
'Überprüfen ob Validierung bereits gesetzt wurde?
Dim akt_Value = _dok.GetVariableValue(_Indexname)
If akt_Value <> _value Then
Dim arrIndex() As String = Nothing
Dim arrValue() As String = Nothing
'Nun die Datei indexieren
arrIndex = Nothing
arrValue = Nothing
ReDim Preserve arrIndex(0)
ReDim Preserve arrValue(0)
arrIndex(0) = _Indexname
arrValue(0) = _value.ToString
clsWindream_Index.RunIndexing(_dok, arrIndex, arrValue, pr_Profilname, pr_Objekttyp)
Else
'Validation muß nicht angepasst werden
ClassLogger.AddDetailLog(" - Indexvalue identisch")
End If
End Function
End Class

View File

@@ -0,0 +1,75 @@
Imports System.Net.Mail
Public Class clsEmail
Private Shared MailAktiv As Boolean = False
Private Shared MailSSL As Boolean = False
Private Shared MailEmpfaenger, MailFrom, MAilSMTP, MailUser, MailUser_PW As String
Public Shared Function Init()
Try
Dim DT As DataTable = clsSQLITE.Return_Datatable("select * from TBKONFIGURATION where GUID = 1 and EMAIL_AKTIV = 1")
If DT.Rows.Count = 1 Then
For Each row As DataRow In DT.Rows
MailEmpfaenger = row.Item("EMAIL_EMP")
MailFrom = row.Item("EMAIL_ABS")
MAilSMTP = row.Item("EMAIL_SMTP")
MailSSL = row.Item("EMAIL_SSL")
MailUser = row.Item("EMAIL_USER")
MailUser_PW = row.Item("EMAIL_USER_PW")
MailAktiv = True
Exit For
Next
Else
MailAktiv = False
End If
Return True
Catch ex As Exception
ClassLogger.Add(ex.Message, True, "clsEmail.Init")
Return False
End Try
End Function
Public Shared Function Send_EMail(ByVal MailBetreff As String, ByVal vBody As String)
'#### E-MAIL NACHRICHT VERSENDEN
Try
Dim empfaenger As String()
If MailEmpfaenger.Contains(";") Then
empfaenger = MailEmpfaenger.Split(";")
Else
ReDim Preserve empfaenger(0)
empfaenger(0) = MailEmpfaenger
End If
'Für jeden Empfänger eine Neue Mail erzeugen
For Each _mailempfaenger As String In empfaenger
'Neue Nachricht erzeugen:
Dim message As New MailMessage(MailFrom, _mailempfaenger, MailBetreff, _
"<font face=""Arial"">" & vBody & "<br>Maschine: " & Environment.MachineName & _
"<br>Domain-Name: " & Environment.UserDomainName & "<br>" & _
"<br>Gesendet am: " & My.Computer.Clock.LocalTime.ToShortDateString & "-" & _
My.Computer.Clock.LocalTime.ToLongTimeString & "</font>")
' create and add the attachment(s) */
' Dim Attachment As Attachment = New Attachment("E:\test\Frachkostenreport.txt")
'message.Attachments.Add(Attachment)
With message
.IsBodyHtml = True
End With
'Einen SMTP Client erzeugen und Anmeldungsinformationen hinterlegen
Dim emailClient As New SmtpClient(MAilSMTP)
emailClient.EnableSsl = MailSSL
'Email mit Authentifizierung
Dim SMTPUserInfo As New System.Net.NetworkCredential(MailUser, MailUser_PW) ', My.Settings.vDomain)
emailClient.UseDefaultCredentials = False
emailClient.Credentials = SMTPUserInfo
emailClient.Port = 25
ClassLogger.Add("==> Fehler Email erfolgreich an " & _mailempfaenger & " versendet!", False)
ClassLogger.Add("==> Text: " & vBody, False)
ClassLogger.Add("", False)
'*Send the message */
emailClient.Send(message)
Return True
Next
Catch ex As Exception
ClassLogger.Add(ex.Message, True, "cls.SendEmail")
Return False
End Try
End Function
End Class

View File

@@ -0,0 +1,78 @@
Imports System.IO
Public Class clsHelper
Public Shared Function Check_Folder(path As String)
Try
If Not IO.Directory.Exists(path) Then
' Nein! Jetzt erstellen...
IO.Directory.CreateDirectory(path)
ClassLogger.Add("Folder: '" & path & "' wurde erfolgreich angelegt", False)
' Ordner wurde korrekt erstellt!
End If
Return True
Catch ex As Exception
ClassLogger.Add("In clsHelper.Check_Folder - " & ex.Message, True)
Return False
End Try
End Function
Public Shared Function Prevent_Null(value)
Select Case value.GetType.ToString
Case "System.DBNull"
Return Nothing
Case Else
Return value
End Select
End Function
Public Shared Function func_check_file_use(ByVal sub_filename) As Boolean
Dim fs As Integer = FreeFile()
Dim inuse As Boolean = False
If File.Exists(sub_filename) Then
Try
FileOpen(fs, sub_filename, OpenMode.Binary, _
OpenAccess.ReadWrite, OpenShare.LockReadWrite)
Catch
inuse = True
Finally
FileClose(fs)
End Try
End If
Return inuse
End Function
Public Shared Function file_exists(ByVal _file As String)
Try
If System.IO.File.Exists(_file) Then
Return True
Else
Return False
End If
Catch ex As Exception
ClassLogger.Add("In clsHelper.file_exists - " & ex.Message, True)
Return False
End Try
End Function
Public Shared Function Datei_Versionieren(Dateiname As String, LOG_ERR_ONLY As Boolean, modul As String)
Try
Dim version As Integer = 1
Dim extension As String = Path.GetExtension(Dateiname) 'Quelldatei.Substring(Quelldatei.LastIndexOf("."))
Dim Stammname As String = Path.GetDirectoryName(Dateiname)
Dim neuername As String = Path.GetFileNameWithoutExtension(Dateiname)
Dim endgueltigerDateiname As String = neuername & extension
'Automatische Versionierung mit Tilde + Version
Do While file_exists(Stammname & "\" & neuername & extension) = True
ClassLogger.Add(" - Datei " & endgueltigerDateiname & " ist vorhanden - Datei wird versioniert", False)
neuername = Stammname & "~" & version
endgueltigerDateiname = neuername & extension
version = version + 1
Loop
Return Stammname & "\" & neuername & extension
Catch ex As Exception
ClassLogger.Add("In clsHelper.Datei_Versionieren - " & ex.Message, True)
Return Nothing
End Try
End Function
Public Shared Function string_Contains(s As String, search As String)
Return s.ToLower.Contains(search.ToLower)
End Function
End Class

View File

@@ -0,0 +1,154 @@
Imports WINDREAMLib
Public Class clsProfil
#Region "***** Variablen *****"
Public Shared _windream As New clsWindream_allgemein
Public Shared _Profilname, _profObjekttyp, _profwdSuche, _profDay, _profRunType As String
Public Shared _profGUID As Integer
Public Shared _proflastRun As Date
Private email As New clsEmail
Private Shared CriticalError As Boolean = False
Private Shared WD_aktivesDokument As WMObject
#End Region
Public Shared Function Init(guid As Integer)
Try
Dim DT As DataTable = clsSQLITE.Return_Datatable("Select * from TBPROFIL where GUID = " & guid & " AND Running = 0")
For Each DR As DataRow In DT.Rows
_profGUID = guid
_Profilname = CStr(DR.Item("Profilname"))
' Überprüfen ob Profil aktiv oder inaktiv
If CBool(DR.Item("Aktiv")) = False Then
ClassLogger.Add("## Profil '" & _Profilname & "' ist inaktiv geschaltet", False)
ClassLogger.Add("", False)
Return 0
Else
_profObjekttyp = CStr(DR.Item("Objekttyp"))
_profwdSuche = CStr(DR.Item("WindreamSuche"))
_profDay = CStr(DR.Item("Day"))
_profRunType = CStr(DR.Item("Run"))
_proflastRun = DR.Item("Letzter_Durchlauf")
Return True
End If
Next
Catch ex As Exception
ClassLogger.Add(ex.Message, True, "Profil_Init")
Return False
End Try
End Function
'Durchlauf des Profils wird aus dem Service gestartet wenn Init = True war
Public Shared Function Profil_Durchlauf()
Try
Dim Run_Profile As Boolean = False
'Soll die Verarbeitung heute durchgeführt werden??
Dim Dayofweek As Integer = My.Computer.Clock.LocalTime.DayOfWeek
If _profDay.Substring(Dayofweek - 1, 1) = 1 Then
'Verarbeitung soll heute durchgeführt werden
ClassLogger.AddDetailLog("Verarbeitung soll heute durchgeführt werden!")
ClassLogger.AddDetailLog("_RunType: " & _profRunType)
Dim arr As String()
arr = _profRunType.Split(";")
ClassLogger.AddDetailLog("arr(1): " & arr(1).ToString)
Select Case _profRunType
Case _profRunType.Contains("TIME")
Dim Time_last As Date = clsSQLITE.konf_LASTTICK.ToShortTimeString
Dim intervall As Integer = clsSQLITE.konf_intervall / 60
Dim Time_next As Date = _proflastRun.AddMinutes(intervall)
Dim _RunTime As Date = CDate(arr(1))
Dim msg As String
msg = "Time-Angaben: " & vbNewLine
msg = msg & "Time_last: " & Time_last & vbNewLine
msg = msg & "Time_next: " & Time_next & vbNewLine
msg = msg & "ProfilTime: " & _RunTime & vbNewLine
ClassLogger.AddDetailLog(msg)
'Ist die Uhrzeit in der Range
If _RunTime.ToShortTimeString >= Time_last.ToShortTimeString And _RunTime.ToShortTimeString <= Time_next.ToShortTimeString Then
'Den Durchlauf erlauben
Run_Profile = True
End If
Case _profRunType.Contains("INTV")
'Die Differenz berechnen
Dim DiffMin As Integer = DateDiff(DateInterval.Minute, _proflastRun, Date.Now)
Dim msg As String
msg = "Minutenangaben: " & vbNewLine
msg = msg & "DiffMin: " & DiffMin & vbNewLine
msg = msg & "Intervall: " & arr(1)
ClassLogger.AddDetailLog(msg)
If DiffMin >= CInt(arr(1)) Then
'Den Durchlauf erlauben
Run_Profile = True
End If
End Select
If Run_Profile = True Then
ClassLogger.Add(">> Start des Durchlaufes für Profil '" & _Profilname & "'", False)
'den Durchlaufszeitpunkt speichern
clsSQLITE.Execute_non_Query("Update TBPROFIL SET Running = 1 AND LETZTER_DURCHLAUF = DATETIME ('now' , 'localtime') WHERE GUID = " & _profGUID)
If clsHelper.file_exists(_profwdSuche) = False Then
ClassLogger.Add("Die Windream-Suche '" & _profwdSuche & "' existiert nicht!", True, "clsProfil.Profil_Durchlauf")
'wenn die gesuchte File eine Suche ist: per MAil informierne und Indexierung abbrechen
If clsSQLITE.konf_EmailAktiv Then
clsEmail.Send_EMail("Fehler in windream-ResultHandler", "<br> >> Profilname: '" & _Profilname & "'<br> >> Die windream-Suche : " & _profwdSuche & " konnte nicht gefunden werden!" & _
"<br> >> Mögliche Fehlerursache: Das W-Laufwerk ist nicht verfügbar!")
End If
Return False
Else
' windream-Suche für Profil starten
Dim windreamSucheErgebnisse As WMObjects = _windream.GetSearchDocuments(_profwdSuche)
If windreamSucheErgebnisse.Count > 0 Then
ClassLogger.Add("- Insgesamt sollen '" & windreamSucheErgebnisse.Count & "' Dateien bearbeitet werden", True, "clsProfil.Profil_Durchlauf")
Dim DT_PROFIL_JOB As DataTable = clsSQLITE.Return_Datatable("SELECT * FROM TBPROFIL_JOB WHERE AKTIV = 1 AND PROFIL_ID = " & _profGUID & " ORDER BY REIHENFOLGE")
Dim DT_PROFIL_FILE_JOB As DataTable = clsSQLITE.Return_Datatable("SELECT * FROM TBPROFIL_FILE_JOB WHERE AKTIV = 1 AND PROFIL_ID = " & _profGUID & " ORDER BY REIHENFOLGE")
If DT_PROFIL_JOB.Rows.Count > 0 Then
If clsDateiverarbeitung.InitProfilData = True Then
For Each DR_PR_JB As DataRow In DT_PROFIL_JOB.Rows
Select Case DR_PR_JB.Item("JOB_TYP").ToString.ToUpper
Case "Create Mail Attachment".ToUpper
Case "Export HDD".ToUpper
'Für jedes Dokument in der Windream-Ergebnisliste
For Each dok As WMObject In windreamSucheErgebnisse
' aktuelles Dokument zum Export bereitstellen
If clsDateiverarbeitung.Export_File(dok, DR_PR_JB.Item("STRING1")) Then
If DT_PROFIL_FILE_JOB.Rows.Count > 0 Then
'Für jeden File-Job
For Each DR_PR_FILE_JOB As DataRow In DT_PROFIL_FILE_JOB.Rows
Select Case DR_PR_JB.Item("JOB_TYP").ToString.ToLower
Case "Set Index".ToLower
End Select
Next
End If
End If
Next
End Select
Next
End If
Else
ClassLogger.Add(">> KEINE JOBS für Profil '" & _Profilname & "' angelegt!", "clsProfil.Profil_Durchlauf", True)
End If
Else
' keine Dateien zum Importieren
ClassLogger.Add(">> Keine windream-Dokumente für Profil '" & _Profilname & "' vorhanden/gefunden.", False)
ClassLogger.Add("", False)
End If
End If
clsSQLITE.Execute_non_Query("UPDATE TBPROFIL SET Running = 0 AND LETZTER_DURCHLAUF = DATETIME ('now' , 'localtime') WHERE GUID = " & _profGUID)
End If
Else
ClassLogger.AddDetailLog("Verarbeitung für heute NICHT konfiguriert")
End If
Return True
Catch ex As Exception
ClassLogger.Add("Unvorhergesehener Fehler: " & ex.Message, True, "clsProfil.Profil_Durchlauf")
CriticalError = False
Service1.threadRunner.CancelAsync()
Return False
End Try
End Function
End Class

View File

@@ -0,0 +1,123 @@
Imports System.Data.SQLite
Public Class clsSQLITE
Private Shared db_location As String
Public Shared konf_logerrorsonly As Boolean
Public Shared konf_EmailAktiv As Boolean
Public Shared konf_intervall As Integer
Public Shared konf_WDLAUFWERK As String
Public Shared konf_LASTTICK As Date
Public Shared Function Init()
Try
db_location = "data source=" & My.Settings.SQliteConnection
Dim SQLconnect As New SQLite.SQLiteConnection()
SQLconnect.ConnectionString = db_location
SQLconnect.Open()
SQLconnect.Close()
clsSQLITE.GetGrundkonfig()
Return True
Catch ex As Exception
ClassLogger.Add(ex.Message, True, "clsSQLITE.Init")
Return False
End Try
End Function
Public Shared Function GetGrundkonfig()
Try
Dim dt As DataTable = Return_Datatable("SELECT * TBKONFIGURATION WHERE GUID = 1")
If dt.Rows.Count > 0 Then
For Each row As DataRow In dt.Rows
konf_logerrorsonly = row.Item("LOG_ERRORS_ONLY")
konf_intervall = row.Item("INTERVALL")
konf_WDLAUFWERK = row.Item("WD_LAUFWERK")
konf_EmailAktiv = row.Item("EMAIL_AKTIV")
konf_LASTTICK = row.Item("LAST_TICK")
If konf_EmailAktiv Then
clsEmail.Init()
End If
Next
End If
Return True
Catch ex As Exception
ClassLogger.Add(ex.Message, True, "GetGrundkonfig")
Return False
End Try
End Function
Public Shared Function Return_Datatable(Select_anweisung As String)
Try
Dim SQLconnect As New SQLite.SQLiteConnection()
Dim SQLcommand As SQLite.SQLiteCommand
SQLconnect.ConnectionString = db_location
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
SQLcommand.CommandText = Select_anweisung
Dim adapter1 As SQLite.SQLiteDataAdapter = New SQLite.SQLiteDataAdapter(SQLcommand)
Dim dt As DataTable = New DataTable()
adapter1.Fill(dt)
SQLconnect.Close()
Return dt
Catch ex As Exception
ClassLogger.Add(ex.Message & vbNewLine & " SQL: " & Select_anweisung, True, "clsSQLITE.Return_Datatable")
Return Nothing
End Try
End Function
Public Shared Sub Update_Command(vTabelle As String, vspalte As String, vvalue As String)
Dim update As String = "UPDATE " & vTabelle & " SET " & vspalte & " = '" & vvalue & "' WHERE GUID = 1"
Try
Dim SQLconnect As New SQLite.SQLiteConnection()
Dim SQLcommand As SQLite.SQLiteCommand
SQLconnect.ConnectionString = db_location
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
'Update Last Created Record in Foo
SQLcommand.CommandText = update
SQLcommand.ExecuteNonQuery()
SQLcommand.Dispose()
SQLconnect.Close()
Catch ex As Exception
ClassLogger.Add(ex.Message & vbNewLine & " SQL: " & update, True, "clsSQLITE.Update_Command ")
End Try
End Sub
Public Shared Function Execute_non_Query(ExecuteCMD As String)
Try
Dim SQLconnect As New SQLite.SQLiteConnection()
Dim SQLcommand As SQLite.SQLiteCommand
SQLconnect.ConnectionString = db_location
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
'Update Last Created Record in Foo
SQLcommand.CommandText = ExecuteCMD
SQLcommand.ExecuteNonQuery()
SQLcommand.Dispose()
SQLconnect.Close()
Return True
Catch ex As Exception
ClassLogger.Add(ex.Message & vbNewLine & " SQL: " & ExecuteCMD, True, "clsSQLITE.Execute_non_Query")
Return False
End Try
End Function
Public Shared Function Execute_Scalar(cmdscalar As String)
Dim result As String
Try
Dim SQLconnect As New SQLite.SQLiteConnection()
Dim SQLcommand As SQLite.SQLiteCommand
SQLconnect.ConnectionString = db_location
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
'Update Last Created Record in Foo
SQLcommand.CommandText = cmdscalar
result = clsHelper.Prevent_Null(SQLcommand.ExecuteScalar())
SQLcommand.Dispose()
SQLconnect.Close()
Return result
Catch ex As Exception
ClassLogger.Add(ex.Message & vbNewLine & " SQL: " & cmdscalar, True, "clsSQLITE.Execute_Scalar")
Return Nothing
End Try
End Function
End Class

View File

@@ -0,0 +1,719 @@
Imports WINDREAMLib
Imports WMOSRCHLib
Public Class clsWindream_Index
Inherits clsWindream_allgemein
#Region "+++++ Konstanten +++++"
Protected Const WMObjectEditModeObject = &H1F
Protected Const WMObjectStreamOpenModeReadWrite = 2
Protected Const WMEntityObjectType = 10
Protected Const WMEntityDocument = 1
Const WMObjectVariableValueTypeUndefined = 0
Const WMObjectVariableValueTypeString = 1
Const WMObjectVariableValueTypeInteger = 2
Const WMObjectVariableValueTypeFloat = 3
Const WMObjectVariableValueTypeBoolean = 4
Const WMObjectVariableValueTypeDate = 5
Const WMObjectVariableValueTypeFixedPoint = 6
Const WMObjectVariableValueTypeTimeStamp = 7
Const WMObjectVariableValueTypeCurrency = 8
Const WMObjectVariableValueTypeTime = 9
Const WMObjectVariableValueTypeVariant = 10
Const WMObjectVariableValueTypeMask = &HFFF
Const WMObjectVariableValueFlagMask = &HFFFFF000
Const WMObjectVariableValueTypeVector = &H1000
Const WMObjectVariableValueTypeFulltext = &H2000
Const WMObjectVariableValueTypeDefaultValue = &H4000
#End Region
#Region "+++++ Variablen +++++"
'Private oController = CreateObject("WMOSrch.WMQuickSearch") 'As New WMOSearchController
'Private oController As New WMOSearchController
Private oController As New WMOSearchController
'Dim srchQuick = CreateObject("WMOSrch.WMQuickSearch") 'As WMOSRCHLib.WMQuickSearch
#End Region
#Region "+++++ Allgemeine Methoden und Funktionen +++++"
Sub New()
MyBase.New()
End Sub
Private Shared Function IsNotEmpty(ByVal aValue As Object)
If aValue IsNot Nothing Then
Dim itsType As Type = aValue.GetType
If itsType Is GetType(String) Then
If Not aValue = "" Then
Return True
End If
Return False
Else
Return True
End If
Else
Return False
End If
End Function
Private Function return_type(ByVal _wert As Object)
Return _wert.GetType
End Function
Public Shared Function Run_indexing_Single(ByVal _value As String, ByVal _dok As WINDREAMLib.WMObject, ByVal _Indexname As String, dS As DataSet, profil As String, Objekttyp As String)
'Überprüfen ob Validierung bereits gesetzt wurde?
Dim aktvalue = _dok.GetVariableValue(_Indexname)
If aktvalue <> _value Then
'Validation muß angepasst werden
ClassLogger.AddDetailLog(" - " & _Indexname & " NOCH NICHT auf '" & _value.ToString & "' gesetzt")
Dim arrIndex() As String = Nothing
Dim arrValue() As String = Nothing
'Nun die Datei indexieren
arrIndex = Nothing
arrValue = Nothing
ReDim Preserve arrIndex(0)
ReDim Preserve arrValue(0)
arrIndex(0) = _Indexname
arrValue(0) = _value.ToString
clsWindream_Index.RunIndexing(_dok, arrIndex, arrValue, profil, Objekttyp)
Else
'Validation muß nicht angepasst werden
ClassLogger.AddDetailLog(" - " & _Indexname & " bereits auf '" & _value.ToString & "' gesetzt")
End If
End Function
Public Function GetIndex_Type(idxName) As String
Try
Dim oAttribute = oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, idxName)
'den Variablentyp (String, Integer, ...) auslesen
Dim vType = oAttribute.getVariableValue("dwAttrType")
Dim Type As String
Select Case (vType)
'Case WMObjectVariableValueTypeUndefined
Case WMObjectVariableValueTypeString
Type = "String"
Case WMObjectVariableValueTypeInteger
Type = "Integer"
Case WMObjectVariableValueTypeFloat
Type = "Float"
Case WMObjectVariableValueTypeFixedPoint
Type = "Point"
Case WMObjectVariableValueTypeBoolean
Type = "Boolean"
Case WMObjectVariableValueTypeDate
Type = "Date"
Case WMObjectVariableValueTypeTimeStamp
Type = "Timestamp"
Case WMObjectVariableValueTypeCurrency
Type = "Currency"
Case WMObjectVariableValueTypeTime
Type = "Time"
Case WMObjectVariableValueTypeFloat
Type = "Float"
Case WMObjectVariableValueTypeVariant
Type = "Varia´nt"
Case WMObjectVariableValueTypeFulltext
Type = "Fulltext"
Case 4097
Type = "Vektor String"
Case 4098
Type = "Vektor Numerisch"
Case 4099
Type = "Vektor Float"
Case 4101
Type = "Vektor Date"
Case 4103
Type = "Vektor DateTime"
Case 36865
Type = "Vektor Alpha"
Case Else
Type = "String Else"
End Select
Return Type
Catch ex As Exception
End Try
End Function
Public Shared Function RunIndexing_Vektor(ByVal oDocument As WMObject, ByVal Indizes As String(), ByVal aValues As String())
Try
If Indizes IsNot Nothing And aValues IsNot Nothing Then
If Not oDocument.aLocked Then
oDocument.lock()
If aValues.Length = 1 And aValues(0) = "" Then
ClassLogger.Add(" >> RunIndexing_Vektor: Indexwert ist leer/Nothing - Keine Nachindexierung", False)
Else
'Jetzt jeden Indexwert durchlaufen
Dim indexname As String
indexname = Indizes(0)
ClassLogger.AddDetailLog(" - RunIndexing_Vektor: Indexname: " & indexname)
'VEKTORFELDER, ALSO ÜBERPRÜFEN OB ERGEBNIS-ARRAY GEFÜLLT IST
ClassLogger.AddDetailLog(" - RunIndexing_Vektor: VEKTORFELD-Indexierung: Vorbereiten des Arrays")
' das entsprechende Attribut aus windream auslesen
Dim oAttribute = oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, indexname)
' den Variablentyp (String, Integer, ...) auslesen
Dim vType = oAttribute.getVariableValue("dwAttrType")
Select Case (vType)
Case 4097
ClassLogger.AddDetailLog(" - Typ des windream-Indexes: 4097 Vektor alphanumerisch")
Case 4098
ClassLogger.AddDetailLog(" - Typ des windream-Indexes: 4098 Vektor Numerisch")
Case 4099
ClassLogger.AddDetailLog(" - Typ des windream-Indexes: 4099 Vektor Kommazahl")
Case 4101
ClassLogger.AddDetailLog(" - Typ des windream-Indexes: 4101 Vektor Date")
Case 4103
ClassLogger.AddDetailLog(" - Typ des windream-Indexes: 4103 Vektor DateTime")
Case 4107
ClassLogger.AddDetailLog(" - Typ des windream-Indexes: 4107 Vektor Integer(64bit)")
Case 36865
ClassLogger.AddDetailLog(" - Typ des windream-Indexes: 36865 Vektor alphanumerisch")
End Select
Dim myArray
Dim Anzahl As Integer = aValues.Length - 1
'Vektorfeld wird mit EINEM Wert gefüllt
If Anzahl = 0 Then
ClassLogger.AddDetailLog(" - RunIndexing_Vektor: Vektorfeld wird mit EINEM Wert gefüllt ")
ReDim myArray(0)
Select Case (vType)
Case 4097
myArray(0) = CStr(aValues(0))
Case 4098
myArray(0) = CInt(aValues(0).Replace(" ", ""))
Case 4099
Dim str As String = aValues(0)
str = str.ToString.Replace(" ", "")
myArray(0) = CDbl(str.Replace(".", ","))
Case 4101
myArray(0) = CDate(aValues(0))
Case 4103
myArray(0) = aValues(0)
Case 4107
myArray(0) = Convert.ToInt64(aValues(0))
Case 36865
myArray(0) = CStr(aValues(0))
End Select
ClassLogger.AddDetailLog(" - RunIndexing_Vektor: Konvertierter Wert: " & myArray(0).ToString)
Else
ClassLogger.AddDetailLog(" - RunIndexing_Vektor: Vektorfeld wird mit MEHREREN Werten gefüllt ")
'Die Größe des Arrays festlegen
ReDim myArray(Anzahl)
Dim i1 As Integer = 0
For Each aValue As String In aValues
Select Case (vType)
Case 4107
Dim wert = aValue.Replace(" ", "")
wert = Convert.ToInt64(wert) 'ToInt64
myArray(i1) = wert
Case 4097
myArray(i1) = CStr(aValue)
Case 4098
Dim wert = aValue.Replace(" ", "")
Dim convertValue
If IsNumeric(wert) Then
Try
convertValue = CInt(wert)
Catch ex As Exception
ClassLogger.AddDetailLog(" - Wert muss in Int64 konvertiert werden")
convertValue = Convert.ToInt64(wert) 'ToInt64
End Try
Else
' ClassLoggerNI.Add(" - Indexierungswert '" & wert.ToString & "' kann nicht in Integer konvertiert werden")
Return False
End If
myArray(i1) = convertValue
Case 4099
myArray(i1) = CDbl(aValue.Replace(".", ",").Replace(" ", ""))
Case 4101
myArray(i1) = CDate(aValue)
Case 4103
myArray(i1) = aValue
Case 36865
myArray(i1) = CStr(aValue)
Case Else
myArray(i1) = CStr(aValue)
End Select
i1 += 1
Next
End If
'Jetzt die Nachindexierung für Vektor-Felder
oDocument.SetVariableValue(indexname, myArray)
ClassLogger.AddDetailLog(" - RunIndexing_Vektor: 'SetVariableValue' für VEKTOR erfolgreich")
oDocument.Save()
oDocument.unlock()
ClassLogger.AddDetailLog(" - RunIndexing_Vektor: Indexierung erfolgreich beendet (Save und Unlock durchgeführt)")
Return True
End If
Else
ClassLogger.Add(" >> RunIndexing_Vektor: Dokument ist gesperrt, Indexierung erst im nächsten Durchlauf!", True)
Return False
End If
End If
Catch ex As Exception
ClassLogger.Add("## Fehler in RunIndexing_Vektor - Fehler: " & ex.Message, True, "RunIndexingVektor")
oDocument.Save()
oDocument.unlock()
Return False
End Try
End Function
Public Shared Function RunIndexing(ByVal oDocument As WMObject, ByVal Indizes() As String, ByVal aValues() As Object, Profil As String, Objekttyp As String)
Try
If Indizes IsNot Nothing And aValues IsNot Nothing Then
If Not oDocument.aLocked Then
oDocument.lock()
Dim i As Integer = 0
Dim indexname As String
If aValues.Length = 1 And aValues(0) = "" Then
ClassLogger.AddDetailLog(" - Indexwert ist leer/Nothing - Keine Nachindexierung")
End If
' wenn der Datei noch kein Dokumenttyp zugewiesen wurde
If oDocument.aObjectType.aName <> Objekttyp Then
' ihr den entsprechenden Dokumenttyp zuweisen
oDocument.aObjectType = oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityObjectType, Objekttyp)
' WMObject.aObjectType = selectedProfile.Dokumenttyp
ClassLogger.AddDetailLog(" - Objekttyp war '" & oDocument.aObjectType.aName & "' und wurde in '" & Objekttyp & "' geändert.")
Else
ClassLogger.AddDetailLog(" - Objekttyp war bereits gesetzts")
End If
Try
oDocument.Save()
Catch ex As Exception
' wenn es einen Fehler beim speichern gab, dann konnte auch kein Dokumenttyp gesetzt werden -> es kann also auch keine
' Indexierung stattfinden und die Indexierung muss nicht fortgesetzt werden
Return False
End Try
'Jetzt jeden Indexwert durchlaufen
For Each aName As String In Indizes
indexname = aName
' das entsprechende Attribut aus windream auslesen
Dim oAttribute = oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, Indizes(i))
' den Variablentyp (String, Integer, ...) auslesen
Dim vType = oAttribute.getVariableValue("dwAttrType")
' wenn in aValues an Position i ein Wert steht
If IsNotEmpty(aValues(i)) Then
Dim _int As Boolean = False
Dim _date As Boolean = False
Dim _dbl As Boolean = False
Dim _bool As Boolean = False
'If indexname = "Tournr" Then
' MsgBox("Index: " & indexname & vbNewLine & "wert: " & aValues(i), MsgBoxStyle.Information, "Index: " & aName.ToString)
'End If
ClassLogger.AddDetailLog(" > Indexierung von Index '" & indexname & "'")
'MsgBox(oDocument.aName & vbNewLine & aValues(i) & vbNewLine & vType, MsgBoxStyle.Exclamation, "Zeile 87")
Dim value = aValues(i)
Dim convertValue
Dim vektor As Boolean = False
'Den Typ des Index-Feldes auslesen
'MsgBox(value.GetType.ToString)
Select Case (vType)
'Case WMObjectVariableValueTypeUndefined
Case WMObjectVariableValueTypeString
ClassLogger.AddDetailLog(" - Typ des windream-Indexes: WMObjectVariableValueTypeString")
convertValue = CStr(value)
Case WMObjectVariableValueTypeInteger
ClassLogger.AddDetailLog(" - Typ des windream-Indexes: WMObjectVariableValueTypeInteger")
value = value.ToString.Replace(" ", "")
If IsNumeric(value) = False Then
ClassLogger.AddDetailLog(" >> Achtung: Value '" & value & "' kann nicht in Zahl konvertiert werden!")
End If
value = value.ToString.Replace(" ", "")
convertValue = CInt(value)
_int = True
Case WMObjectVariableValueTypeFloat
ClassLogger.AddDetailLog(" - Typ des windream-Indexes: WMObjectVariableValueTypeFloat")
value = value.ToString.Replace(" ", "")
convertValue = CDbl(value)
Case WMObjectVariableValueTypeFixedPoint
ClassLogger.AddDetailLog(" - Typ des windream-Indexes: WMObjectVariableValueTypeFixedPoint")
value = value.ToString.Replace(" ", "")
convertValue = CDbl(value)
_dbl = True
Case WMObjectVariableValueTypeBoolean
ClassLogger.AddDetailLog(" - Typ des windream-Indexes: WMObjectVariableValueTypeBoolean")
convertValue = CBool(value)
_bool = True
Case WMObjectVariableValueTypeDate
ClassLogger.AddDetailLog(" - Typ des windream-Indexes: WMObjectVariableValueTypeDate")
_date = True
'Dim _date As Date = value
convertValue = value
Case WMObjectVariableValueTypeTimeStamp
ClassLogger.AddDetailLog(" - Typ des windream-Indexes: WMObjectVariableValueTypeTimeStamp")
convertValue = CDbl(value)
Case WMObjectVariableValueTypeCurrency
ClassLogger.AddDetailLog(" - Typ des windream-Indexes: WMObjectVariableValueTypeCurrency")
'Wegen currency muß ein eigenes Objekt vom typ Variant erzeugt werden
Dim aValueWrapper As System.Runtime.InteropServices.CurrencyWrapper = New System.Runtime.InteropServices.CurrencyWrapper(CDec(value))
convertValue = aValueWrapper
Case WMObjectVariableValueTypeTime
ClassLogger.AddDetailLog(" - Typ des windream-Indexes: WMObjectVariableValueTypeTime")
'If ((value)) Then
' convertValue = CDate(value)
'Else
' convertValue = ""
'End If
'Dim _date As Date = value
convertValue = convertValue '*_date.ToShortTimeString
Case WMObjectVariableValueTypeFloat
ClassLogger.AddDetailLog(" - Typ des windream-Indexes: WMObjectVariableValueTypeFloat")
convertValue = CStr(value)
Case WMObjectVariableValueTypeVariant
ClassLogger.AddDetailLog(" - Typ des windream-Indexes: WMObjectVariableValueTypeVariant")
convertValue = CStr(value)
Case WMObjectVariableValueTypeFulltext
ClassLogger.AddDetailLog(" - Typ des windream-Indexes: WMObjectVariableValueTypeFulltext")
convertValue = CStr(value)
Case 4097
ClassLogger.AddDetailLog(" - Typ des windream-Indexes: 4097 Vektor alphanumerisch")
'Vektor alphanumerisch
vektor = True
Case 4098
ClassLogger.AddDetailLog(" - Typ des windream-Indexes: 4098 Vektor Numerisch")
'Vektor Numerisch
vektor = True
Case 4099
ClassLogger.AddDetailLog(" - Typ des windream-Indexes: 4099 Vektor Kommazahl")
'Vektor Kommazahl
vektor = True
Case 4101
ClassLogger.AddDetailLog(" - Typ des windream-Indexes: 4101 Vektor Date")
'Vektor Kommazahl
vektor = True
Case 4103
ClassLogger.AddDetailLog(" - Typ des windream-Indexes: 4103 Vektor DateTime")
'Vektor DateTime
vektor = True
Case 4107
ClassLogger.AddDetailLog(" - Typ des windream-Indexes: 4107 Integer 64bit")
vektor = True
Case 36865
ClassLogger.AddDetailLog(" - Typ des windream-Indexes: 36865 Vektor alphanumerisch")
'Vektor Kommazahl
vektor = True
Case Else
ClassLogger.AddDetailLog(" - Typ des windream-Indexes konnte nicht bestimmt werden!")
ClassLogger.AddDetailLog(" - Versuch des Auslesens (vType): " & vType)
'MsgBox(vType & vbNewLine & CStr(value), MsgBoxStyle.Exclamation, "Marlon-Case Else")
convertValue = ""
End Select
If vektor = False Then
If convertValue.ToString Is Nothing = False Then
ClassLogger.AddDetailLog(" - Konvertierter Wert: '" & convertValue.ToString & "'")
End If
End If
'############################################################################################
'####################### Der eigentliche Indexierungsvorgang ################################
'############################################################################################
If vektor = False Then
If convertValue.ToString Is Nothing = False Then
ClassLogger.AddDetailLog(" - Versuch dem Dok einen Index zuzuweisen: oDocument.SetVariableValue(" & aName & ", " & convertValue & ")")
If _int = True Then
convertValue = convertValue.ToString.Replace(" ", "")
oDocument.SetVariableValue(aName, CInt(convertValue))
ElseIf _date = True Then
oDocument.SetVariableValue(aName, CDate(convertValue))
ElseIf _bool Then
oDocument.SetVariableValue(aName, CBool(convertValue))
ElseIf _dbl Then
convertValue = convertValue.ToString.Replace(" ", "")
oDocument.SetVariableValue(aName, CDbl(convertValue))
Else
oDocument.SetVariableValue(aName, convertValue)
End If
ClassLogger.Add(" >> Index '" & aName & "' wurde geschrieben", False)
ClassLogger.Add("", False)
Else
ClassLogger.Add(" >> Kein Indexwert vorhanden", False)
End If
Else
'VEKTORFELDER, ALSO ÜBERPRÜFEN OB ERGEBNIS-ARRAY GEFÜLLT IST
ClassLogger.AddDetailLog(" - VEKTORFELD: Vorbereiten des Arrays")
Dim myArray()
Dim DS As DataSet
Dim DT As DataTable
Dim DR As DataRow
' --- DataSet zuweisen
DS = New windream_Result_Handler.MyDataset
' --- Zugriff auf Tabelle
DT = DS.Tables("TBVEKTOR_INDEX")
' --- den Filter auf den Indexnamen setzen
Dim expression As String
expression = "Indexname = '" & aName.ToString & "'"
Dim foundRows() As DataRow
' Use the Select method to find all rows matching the filter.
foundRows = DT.Select(expression)
'For Each row As DataRow In DT.Rows
'MsgBox(aName & vbNewLine & row.Item("Indexname") & vbNewLine & CStr(row.Item("Wert")))
'Next
Dim Anzahl As Integer = foundRows.Count
'Vektorfeld wird mit EINEM Wert gefüllt
If Anzahl = 0 Then
ClassLogger.AddDetailLog(" - Vektorfeld wird mit EINEM Wert gefüllt ")
ReDim myArray(0)
Select Case vType
Case 36865
'Umwandeln in String
myArray(0) = CStr(value)
Case 4097
'Umwandeln in String
myArray(0) = CStr(value)
Case 4098
'Umwandeln in Integer
value = value.ToString.Replace(" ", "")
myArray(0) = CInt(value)
Case 4099
Dim Str As String = value
Str = Str.ToString.Replace(" ", "")
'Umwandeln in Double
myArray(0) = CDbl(Str.Replace(".", ","))
Case 4101
'Umwandeln in Date
myArray(0) = CDate(value)
Case 4107
myArray(0) = Convert.ToInt64(value)
Case 4103
'Umwandeln in Datum Uhrzeit
myArray(0) = value
Case Else
'Umwandeln in String
myArray(0) = CStr(value)
End Select
ClassLogger.AddDetailLog(" - Konvertierter Wert: " & myArray(0).ToString)
Else
ClassLogger.AddDetailLog(" - Vektorfeld wird mit MEHREREN Werten gefüllt ")
Select Case vType
Case 36865
'Vektortyp ALPHANUMERISCH
'Die Größe des Arrays festlegen
ReDim myArray(Anzahl - 1)
Dim i1 As Integer = 0
'Die Datatable durchlaufen und Werte für den Index in Array schreiben
For Each DR In DT.Rows
If DR.Item("Indexname") = aName.ToString Then
myArray(i1) = CStr(DR.Item("Value"))
ClassLogger.AddDetailLog(" - Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
i1 = i1 + 1
End If
Next
Case 4097
'Vektortyp ALPHANUMERISCH
'Die Größe des Arrays festlegen
ReDim myArray(Anzahl - 1)
Dim i1 As Integer = 0
'Die Datatable durchlaufen und Werte für den Index in Array schreiben
For Each DR In DT.Rows
If DR.Item("Indexname") = aName.ToString Then
myArray(i1) = CStr(DR.Item("Value"))
ClassLogger.AddDetailLog(" - Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
i1 = i1 + 1
End If
Next
Case 4107
ReDim myArray(Anzahl - 1)
Dim i1 As Integer = 0
'Die Datatable durchlaufen und Werte für den Index in Array schreiben
For Each DR In DT.Rows
If DR.Item("Indexname") = aName.ToString Then
myArray(i1) = Convert.ToInt64((DR.Item("Value")))
i1 = i1 + 1
End If
Next
Case 4098
'Vektortyp NUMERISCH
'Die Größe des Arrays festlegen
ReDim myArray(Anzahl - 1)
Dim i1 As Integer = 0
'Die Datatable durchlaufen und Werte für den Index in Array schreiben
For Each DR In DT.Rows
If DR.Item("Indexname") = aName.ToString Then
Dim v As String = DR.Item("Value").ToString.Replace(" ", "")
myArray(i1) = CInt(v)
ClassLogger.AddDetailLog(" - Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
i1 = i1 + 1
End If
Next
Case 4099
'Vektortyp FLOAT
'Die Größe des Arrays festlegen
ReDim myArray(Anzahl - 1)
Dim i1 As Integer = 0
'Die Datatable durchlaufen und Werte für den Index in Array schreiben
For Each DR In DT.Rows
If DR.Item("Indexname") = aName.ToString Then
Dim Str As String = DR.Item("Value")
Str = Str.ToString.Replace(" ", "")
myArray(i1) = CDbl(Str.Replace(".", ","))
ClassLogger.AddDetailLog(" - Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
i1 = i1 + 1
End If
Next
Case 4101
'Vektortyp DATE
'Die Größe des Arrays festlegen
ReDim myArray(Anzahl - 1)
Dim i1 As Integer = 0
'Die Datatable durchlaufen und Werte für den Index in Array schreiben
For Each DR In DT.Rows
If DR.Item("Indexname") = aName.ToString Then
Dim Str As String = DR.Item("Value")
myArray(i1) = CDate(Str.Replace(".", ","))
ClassLogger.AddDetailLog(" - Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
i1 = i1 + 1
End If
Next
Case Else
'Vektortyp ALPHANUMERISCH
'Die Größe des Arrays festlegen
ReDim myArray(Anzahl - 1)
Dim i1 As Integer = 0
'Die Datatable durchlaufen und Werte für den Index in Array schreiben
For Each DR In DT.Rows
If DR.Item("Indexname") = aName.ToString Then
myArray(i1) = CStr(DR.Item("Value"))
ClassLogger.AddDetailLog(" - Konvertierter Wert: (" & i1 & ")" & myArray(i1).ToString)
i1 = i1 + 1
End If
Next
End Select
End If
'Jetzt die Nachindexierung für Vektor-Felder
oDocument.SetVariableValue(aName, myArray)
ClassLogger.AddDetailLog(" - 'SetVariableValue' für VEKTOR erfolgreich")
End If
Else
ClassLogger.AddDetailLog(" >> Array der Indexwerte ist leer/Nothing - Keine Nachindexierung")
End If
i += 1
Next
' oDocument.LockRights()
'SetRights(WMObject, User)
oDocument.Save()
oDocument.unlock()
ClassLogger.AddDetailLog(" > Indexierung erfolgreich beendet (Save und Unlock durchgeführt)")
ClassLogger.AddDetailLog("")
Return False
Else
ClassLogger.Add(" >> Dokument ist gesperrt, Indexierung erst im nächsten Durchlauf!", False)
'oDocument.unlock()
Return True
End If
End If
Catch ex As Exception
ClassLogger.Add(ex.Message, True, "ClassSearchResult.RunIndexing")
oDocument.Save()
oDocument.unlock()
Return True
End Try
End Function
#End Region
#Region "+++++ Allgemeine Funktionen die Informationen zurückliefern +++++"
Public Function GetSearchDocuments(ByVal wdfLocation As String)
If System.IO.File.Exists(wdfLocation) Then
Try
Dim ProfileName = wdfLocation.Substring(wdfLocation.LastIndexOf("\") + 1)
Dim ProfilePath = wdfLocation.Substring(0, wdfLocation.Length - ProfileName.Length)
oController.CheckSearchProfile(wdfLocation.ToLower)
Dim suchTyp = oController.SearchProfileTargetProgID
Dim ExSettings As Object
Dim oSearch As Object
ExSettings = oController.SearchProfileExSettings
If ExSettings = 0 Then ExSettings = 7
Dim srchQuick As WMOSRCHLib.WMQuickSearch = CreateObject("WMOSrch.WMQuickSearch")
Dim srchIndex As WMOSRCHLib.WMIndexSearch = CreateObject("WMOSrch.WMIndexSearch")
Dim srchObjectType As WMOSRCHLib.WMObjectTypeSearch = CreateObject("WMOSrch.WMObjectTypeSearch")
'' Der öffentliche Member CheckSearchProfile für den Typ IWMQuickSearch7 wurde nicht gefunden. [Microsoft.VisualBasic] => GetSearchDocuments()
Select Case suchTyp.ToString.ToUpper
Case "WMOSRCH.WMQUICKSEARCH"
srchQuick.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
oConnect.LoginSession(srchQuick.WMSession)
srchQuick.ClearSearch()
srchQuick.SearchProfilePath = ProfilePath
srchQuick.LoadSearchProfile(ProfileName)
oSearch = srchQuick.GetSearch()
Case "WMOSRCH.WMINDEXSEARCH"
srchIndex.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
oConnect.LoginSession(srchIndex.WMSession)
srchIndex.ClearSearch()
srchIndex.SearchProfilePath = ProfilePath
srchIndex.LoadSearchProfile(ProfileName)
oSearch = srchIndex.GetSearch()
Case "WMOSRCH.WMOBJECTTYPESEARCH"
srchObjectType.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
oConnect.LoginSession(srchObjectType.WMSession)
srchObjectType.ClearSearch()
srchObjectType.SearchProfilePath = ProfilePath
srchObjectType.LoadSearchProfile(ProfileName)
oSearch = srchObjectType.GetSearch()
Case Else
ClassLogger.Add("KEIN GÜLTIGER WINDREAM-SUCHTYP", True, "GetSearchDocuments")
Return Nothing
End Select
Dim WMObjects As Object
WMObjects = oSearch.Execute
Return oSearch.execute
Catch ex As Exception
' bei einem Fehler einen Eintrag in der Logdatei machen
ClassLogger.Add("Unvorhergesehener Fehler: " & ex.Message, True, "GetSearchDocuments")
Return Nothing
End Try
End If
Return Nothing
End Function
''' Liefert den Wert eines Indexes als String
''' _indexname = Name des zu überprüfenden Indexfeldes
Public Function GetValueforIndex(ByVal _fullfilepath As String, _indexname As String)
Try
Const WMEntityDocument = 1
Dim IndexwertAusWindream As Object = Nothing
Dim _dok As WINDREAMLib.WMObject
_dok = Nothing
_dok = oSession.GetWMObjectByPath(WMEntityDocument, _fullfilepath) 'WINDREAMLib.WMEntity.WMEntityDocument
IndexwertAusWindream = _dok.GetVariableValue(_indexname)
Return IndexwertAusWindream.ToString
Catch ex As Exception
'MsgBox(ex.Message)
Return Nothing
End Try
End Function
#End Region
End Class

View File

@@ -0,0 +1,468 @@
Imports WINDREAMLib
Imports WINDREAMLib.WMCOMEvent
Imports WINDREAMLib.WMEntity
Imports WINDREAMLib.WMObjectEditMode
Imports WINDREAMLib.WMSearchOperator
Imports WINDREAMLib.WMSearchRelation
Imports WMOBRWSLib
Imports WMOSRCHLib
Public Class clsWindream_allgemein
#Region "+++++ Konstanten +++++"
Const DEBUG = AUS
Const AUS = 0
Const WINDREAM = 1
Const VARIABLEN = 2
#End Region
#Region "+++++ Variablen +++++"
Public Shared oConnect ' der Typ darf nicht festgelegt werden (warum auch immer... geht sonst nicht)
Public Shared oSession 'As WINDREAMLib.WMSession ' der Typ darf nicht festgelegt werden (warum auch immer... geht sonst nicht)
Public Shared oBrowser As New WMOBRWSLib.ServerBrowser
Public Shared oDokumentTypen As WINDREAMLib.WMObjects
Private Shared oController As New WMOSearchController
#End Region
#Region "+++++ Allgemeine Methoden und Funktionen +++++"
''' <summary>
''' Konstruktor für die windream-Klasse
''' </summary>
''' <remarks></remarks>
Sub New()
' wenn ein Fehler bei der Initialisierung auftrat
If Not Init() Then
' Nachricht ausgeben
ClassLogger.Add("Es trat ein Fehler bei der Initialisierung der Klasse windream auf. Bitte prüfen Sie ob der windream-Server aktiv ist und alle Dienste gestartet sind", True, "clsWindream_allgemein.Init")
' das Programm "abschießen"
Process.GetCurrentProcess.Kill()
End If
End Sub
''' <summary>
''' Initialisiert die statische Klasse (Login, Session starten, usw.)
''' </summary>
''' <returns>Liefert True wenn das Anmelden erfolgreich war, sonst False</returns>
''' <remarks></remarks>
Public Function Init() As Boolean
Try
Try
' Session-Objekt instanziieren und mit dem im Client ausgewählten Server belegen
oSession = CreateObject("Windream.WMSession", GetCurrentServer)
' Connection-Objekt instanziieren
oConnect = CreateObject("Windream.WMConnect")
'MsgBox("windrem init 'ed")
Catch ex As Exception
Return False
End Try
' wenn windream nicht angemeldet ist
If Not IsLoggedIn Then
' Art der Anmeldung an windream festlegen
' 0x0L (also 0) = Standard windream Benutzer
' WM_MODULE_ID_DOCTYPEEDITOR_LIC = ermöglicht Zugriff auf die windream Management Funktionen (Z.B. zur Verwaltung der windream Dokumententypen, Auswahllisten, etc.)
' WM_MODULE_ID_INDEXSERVICE = ermöglicht der Session die Indexierungs-Events vom windream DMS-Service zu empfangen
oConnect.ModuleID = 0
' setzt die minimal erwartete windream-Version
oConnect.MinReqVersion = "3"
' -- Impersonifizierung nur möglich mit registry-eintrag --
' oConnect.UserName "\schulung\windream"
' oConnect.Password "windream"
' Verbindung mit Session-Objekt (und dem ausgewählten Server) aufbauen
oConnect.LoginSession(oSession)
ClassLogger.AddDetailLog(" >> windream-Server: '" & GetCurrentServer & "'")
If oSession.aLoggedin = False Then
ClassLogger.Add("Es konnte keine Verbindung mit dem windream-Server hergestellt werden", True, "clswindream.Init")
Return False
End If
' AUSGABE VON SYSTEMINFORMATIONEN
' Gibt die Versionsart (Lizenztyp) also Small-Business-Edition (SBE), Small-Business-Extension (SBX)
' oder Business-Edition (BE) aus
'MsgBox("WindreamVersion: " & oSession.GetSystemInfo("WindreamVersion") & vbNewLine & "LicenceKey: " & oSession.GetSystemInfo("LicenceKey") & vbNewLine & _
' vbNewLine & "LicenceName: " & oSession.GetSystemInfo("LicenceName"))
'Dim WMCtrl As AISCONTROLDATACOMLib.AISControlData
'WMCtrl = New AISCONTROLDATACOMLib.AISControlData
'' liefert die Versionsnummer des Clients
'MsgBox(WMCtrl.WMWorkstationBuildNo)
'MsgBox(WMCtrl.W
'' liefert den Servernamen des angemeldeten windreams
'MsgBox(WMCtrl.WMServerName)
Try
oSession.SwitchEvents(WMCOMEventWMSessionNeedIndex, False)
' der Parameter WMEntityDocument definiert, dass nur Dokumenttypen und keine
' Ordnertypen ausgelesen werden
oDokumentTypen = oSession.GetWMObjectTypes(WINDREAMLib.WMEntity.WMEntityDocument)
Catch ex As Exception
Return False
End Try
End If
Return True
Catch ex As Exception
If Err.Number = -2147220985 Then
ClassLogger.Add("Die installierte windream-Version ist nicht ausreichend für den Betrieb", True, "clswindream.Init")
Else
ClassLogger.Add("Fehler beim Login an windream: " & ex.Message, True, "clswindream.Init")
End If
Return False
End Try
End Function
#End Region
#Region "+++++ Funktionen die für den Objekttyp relevate Informationen zurückliefern +++++"
''' <summary>
''' Liefert alle Objekttypen des aktuellen Servers als windream-Objekte.
''' </summary>
''' <returns>Alle Objekttypen als WMObjects-Objekt</returns>
''' <remarks></remarks>
Public Function GetObjecttypesAsObjects() As WMObjects
Try
Return oDokumentTypen
Catch ex As Exception
ClassLogger.Add("Fehler beim Auslesen der Objekttypen: " & ex.Message, True, "clswindream.GetObjecttypesAsObjects")
Return Nothing
End Try
End Function
''' <summary>
''' Liefert alle Objekttypen des aktuellen Servers als Array aus Strings.
''' </summary>
''' <returns>Array mit allen Objekttypen als Strings</returns>
''' <remarks></remarks>
Public Function GetObjecttypesAsStrings() As String()
Try
Dim objektTypenStr(oDokumentTypen.Count) As String
For i As Integer = 0 To oDokumentTypen.Count
objektTypenStr(i) = oDokumentTypen.Item(i).aName
Next
Return objektTypenStr
Catch ex As Exception
ClassLogger.Add("Fehler beim Auslesen der Objekttypen als Strin: " & ex.Message, True, "clswindream.GetObjecttypesAsStrings")
Return Nothing
End Try
End Function
''' <summary>
''' Liefert alle Indexe eines Objekttypen.
''' </summary>
''' <param name="name">Name des Objekttyps</param>
''' <returns>Array mit allen Objekttyp zugeordneten Indexen als String</returns>
''' <remarks></remarks>
Public Function GetIndicesByObjecttype(ByVal name As String) As String()
Try
Dim oObjectType As WMObject
Dim oIndexAttributes As WMObjectRelation
Dim oIndexAttribute As WMObject
Dim oIndex As WMObject
Dim oRelProperties As WMObjectRelationClass
' den Objekttyp laden
oObjectType = oSession.GetWMObjectByName(WMEntityObjectType, name)
' Beziehung zu Indizes des Objekttyp auslesen
oIndexAttributes = oObjectType.GetWMObjectRelationByName("TypeAttributes")
' Array für Indizes vorbereiten
Dim aIndexNames(oIndexAttributes.Count - 1) As String
' alle Indizes durchlaufen
For j As Integer = 0 To oIndexAttributes.Count - 1
' aktuellen Index auslesen
oIndexAttribute = oIndexAttributes.Item(j)
' Eigenschaften des Index auslesen
oRelProperties = oIndexAttribute.GetWMObjectRelationByName("Attribute")
' Index aus den Eigenschaften auslesen
oIndex = oRelProperties.Item(0)
' Indexname speichern
aIndexNames(j) = oIndex.aName
Next
' Indexarray zurückgeben
Return aIndexNames
Catch ex As Exception
ClassLogger.Add("Fehler beim Auslesen der windream-Indexe: " & ex.Message, True, "clswindream.GetIndicesByObjecttype")
Return Nothing
End Try
End Function
''' <summary>
''' Liefert einen Objekttyp als WMObject an Hand dessen Name.
''' </summary>
''' <param name="objekttypName">Name des Objekttyps</param>
''' <returns>Objekttyp als WMObject</returns>
''' <remarks></remarks>
Public Function GetObjecttypeByName(ByVal objekttypName As String) As WMObject
Try
' alle Objekttypen auslesen
Dim oObjectTypes As WMObjects = oSession.GetWMObjectTypes(WINDREAMLib.WMEntity.WMEntityDocument)
' alle Objekttypen durchlaufen und nach dem mit dem angegebenen Namen suchen
For Each oObjectType As WMObject In oObjectTypes
If oObjectType.aName = objekttypName Then
Return oObjectType
End If
Next
Return Nothing
Catch ex As Exception
ClassLogger.Add("Ein Objekttyp kopnnte nicht erstellt werden. Fehler: " & ex.Message, True, "clswindream.GetObjecttypeByName")
Return Nothing
End Try
End Function
''' <summary>
''' Überprüft ob der angegebene Index im Objekttyp existiert
''' </summary>
''' <param name="objekttyp">Name des zu durchsuchenden Objekttyps</param>
''' <param name="indexname">Name des zu suchenden Indexes</param>
''' <returns>Liefert True wenn der Index im Objekttyp existiert, sonst False</returns>
''' <remarks></remarks>
Public Function ExistIndexInObjekttyp(ByVal objekttyp As String, ByVal indexname As String) As Boolean
Try
Dim indexnamen() As String = GetIndicesByObjecttype(objekttyp)
If indexnamen Is Nothing Then Return False
For Each index As String In indexnamen
If index = indexname Then Return True
Next
Catch ex As Exception
ClassLogger.Add("Beim Prüfen ob ein Index für einen Objekttypen existiert, ist ein Fehler aufgetreten. Fehler: " & ex.Message, True, "clswindream.ExistIndexInObjekttyp")
Return False
End Try
End Function
#End Region
#Region "+++++ Allgemeine Funktionen die Informationen zurückliefern +++++"
''' <summary>
''' Liefert True wenn die windream-Session angemeldet ist und False für den Fall, dass die Session nicht eingeloggt ist.
''' </summary>
''' <returns>Anmeldestatus als Boolean</returns>
''' <remarks></remarks>
Public Function IsLoggedIn() As Boolean
Try
Return oSession.aLoggedin
Catch ex As Exception
ClassLogger.Add("Es konnte nicht erfolgreich geprüft werden, ob das Programm am windream-Server angemeldet ist. Fehler: " & ex.Message, True, "clswindream.IsLoggedIn")
End Try
Return False
End Function
''' <summary>
''' Liefert den Servernamen an dem windream aktuell angemeldet ist.
''' </summary>
''' <returns>Servername als String</returns>
''' <remarks></remarks>
Public Function GetCurrentServer() As String
Try
Return oBrowser.GetCurrentServer 'ClassWindream.oBrowser.GetCurrentServer
Catch ex As Exception
ClassLogger.Add("Der aktuell gewählte windream-Server konnte nicht ausgelesen werden. Fehler: " & ex.Message, True, "clswindream.GetCurrentServer")
End Try
Return ""
End Function
'Public Function GetSharedCurrentServer() As String
' Try
' Return ClassWindream.oBrowser.GetCurrentServer
' Catch ex As Exception
' MsgBox("Der aktuell gewählte windream-Server konnte nicht ausgelesen werden." & vbNewLine & vbNewLine & "Fehlernachricht:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Fehler beim Auslesen des windream-Servers")
' End Try
' Return ""
'End Function
'Liefert das Windream-Laufwerk des windream-Servers, in Form '[Laufwerksbuchstabe]:'. (z.B. 'W:')
'Laufwerksbuchstabe mit Doppelpunkt als String</returns>
'
'Public Function GetWindreamDriveLetter() As String
' Try
' Dim oControl As AISCONTROLDATACOMLib.AISControlData
' Dim sDrive As String = ""
' oControl = New AISCONTROLDATACOMLib.AISControlData
' sDrive = oControl.GetStringValue(&H10040003)
' Return sDrive & ":"
' Catch ex As Exception
' MsgBox("Fehlernachricht: " & ex.Message, MsgBoxStyle.Critical, "Fehler beim Auslesen des windream-Laufwerks")
' End Try
' Return ""
'End Function
''' <summary>
''' Liefert den Typen eines Indexes als Integer.
''' </summary>
''' <param name="indexname">Name des zu überprüfenden Indexfeldes</param>
''' <returns>Liefert eine Zahl, die einen Typen beschreibt</returns>
''' <remarks></remarks>
Public Function GetTypeOfIndexAsIntByName(ByVal indexname As String) As Integer
Try
Dim oAttribute = oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, indexname)
Dim vType = oAttribute.getVariableValue("dwAttrType")
Return vType
Catch ex As Exception
Return Nothing
End Try
End Function
Public Function GetValuesfromAuswahlliste(ByVal indexname As String) As Object
Try
'Dim oAttribute = oSession.GetWMObjectByName(WINDREAMLib.WMEntity.WMEntityAttribute, indexname)
'Dim vType = oAttribute.getVariableValue("vItems")
'Return vType
Dim oChoiceList = oSession.GetWMObjectByName(WMEntityChoiceList, indexname)
If Err.Number = 0 And TypeName(oChoiceList) <> "Nothing" Then
Dim Values = oChoiceList
Values = oChoiceList.GetVariableValue("vItems")
Dim anz As Integer = 0
For Each CLItem In Values
If oChoiceList.aName IsNot Nothing Then
anz += 1
End If
Next
Dim strListe(anz - 1)
Dim zahl As Integer = 0
For Each CLItem In Values
If oChoiceList.aName IsNot Nothing Then
strListe(zahl) = CLItem
zahl += 1
End If
Next
Return strListe
Else
ClassLogger.Add("Auswahlliste: " & indexname & " nicht gefunden.", True, "clswindream.GetValuesfromAuswahlliste")
Return Nothing
End If
Catch ex As Exception
ClassLogger.Add("Fehler: " & ex.Message, True, "clswindream.GetValuesfromAuswahlliste")
Return Nothing
End Try
End Function
Public Function GetSearchDocuments(ByVal wdfLocation As String)
If System.IO.File.Exists(wdfLocation) Then
Try
Dim ProfileName = wdfLocation.Substring(wdfLocation.LastIndexOf("\") + 1)
Dim ProfilePath = wdfLocation.Substring(0, wdfLocation.Length - ProfileName.Length)
oController.CheckSearchProfile(wdfLocation.ToLower)
Dim suchTyp = oController.SearchProfileTargetProgID
Dim ExSettings As Object
Dim oSearch As Object
ExSettings = oController.SearchProfileExSettings
If ExSettings = 0 Then ExSettings = 7
Dim srchQuick As WMOSRCHLib.WMQuickSearch = CreateObject("WMOSrch.WMQuickSearch")
Dim srchIndex As WMOSRCHLib.WMIndexSearch = CreateObject("WMOSrch.WMIndexSearch")
Dim srchObjectType As WMOSRCHLib.WMObjectTypeSearch = CreateObject("WMOSrch.WMObjectTypeSearch")
'' Der öffentliche Member CheckSearchProfile für den Typ IWMQuickSearch7 wurde nicht gefunden. [Microsoft.VisualBasic] => GetSearchDocuments()
Select Case suchTyp.ToString.ToUpper
Case "WMOSRCH.WMQUICKSEARCH"
srchQuick.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
oConnect.LoginSession(srchQuick.WMSession)
srchQuick.ClearSearch()
srchQuick.SearchProfilePath = ProfilePath
srchQuick.LoadSearchProfile(ProfileName)
oSearch = srchQuick.GetSearch()
Case "WMOSRCH.WMINDEXSEARCH"
srchIndex.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
oConnect.LoginSession(srchIndex.WMSession)
srchIndex.ClearSearch()
srchIndex.SearchProfilePath = ProfilePath
srchIndex.LoadSearchProfile(ProfileName)
oSearch = srchIndex.GetSearch()
Case "WMOSRCH.WMOBJECTTYPESEARCH"
srchObjectType.WMSession = CreateObject("Windream.WMSession", GetCurrentServer)
oConnect.LoginSession(srchObjectType.WMSession)
srchObjectType.ClearSearch()
srchObjectType.SearchProfilePath = ProfilePath
srchObjectType.LoadSearchProfile(ProfileName)
oSearch = srchObjectType.GetSearch()
Case Else
ClassLogger.Add("KEIN GÜLTIGER WINDREAM-SUCHTYP", True, "clswindream.GetSearchDocuments")
Return Nothing
End Select
Dim WMObjects As Object
WMObjects = oSearch.Execute
Return oSearch.execute
Catch ex As Exception
' bei einem Fehler einen Eintrag in der Logdatei machen
ClassLogger.Add(ex.Message, True, "clswindream.GetSearchDocuments")
Return Nothing
End Try
End If
Return Nothing
End Function
#End Region
End Class

View File

@@ -0,0 +1,173 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" 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>{95448D0B-00CF-4870-A90D-C39F20DD8AAB}</ProjectGuid>
<OutputType>WinExe</OutputType>
<StartupObject>windream_Result_Handler.Service1</StartupObject>
<RootNamespace>windream_Result_Handler</RootNamespace>
<AssemblyName>windream-Result-Handler</AssemblyName>
<FileAlignment>512</FileAlignment>
<MyType>Console</MyType>
<TargetFrameworkVersion>v4.5.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>windream-Result-Handler.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>windream-Result-Handler.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="Interop.WINDREAMLib">
<HintPath>..\..\..\Bibliotheken\DLL\windreamDLL\Interop.WINDREAMLib.dll</HintPath>
<EmbedInteropTypes>False</EmbedInteropTypes>
</Reference>
<Reference Include="Interop.WMOBRWSLib">
<HintPath>..\..\..\Bibliotheken\DLL\windreamDLL\Interop.WMOBRWSLib.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
<Reference Include="Interop.WMOSRCHLib">
<HintPath>..\..\..\Bibliotheken\DLL\windreamDLL\Interop.WMOSRCHLib.dll</HintPath>
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
<Reference Include="System" />
<Reference Include="System.Configuration.Install" />
<Reference Include="System.Data" />
<Reference Include="System.Data.SQLite, Version=1.0.91.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>D:\Programme\Sprachen\System.Data.SQLite 2013 64Bit\bin\System.Data.SQLite.dll</HintPath>
</Reference>
<Reference Include="System.Deployment" />
<Reference Include="System.ServiceProcess" />
<Reference Include="System.Web.Services" />
<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" />
</ItemGroup>
<ItemGroup>
<Compile Include="ClassLogger.vb" />
<Compile Include="clsWindream_Index.vb" />
<Compile Include="clsDateiverarbeitung.vb" />
<Compile Include="clsEmail.vb" />
<Compile Include="clsHelper.vb" />
<Compile Include="clsProfil.vb" />
<Compile Include="clsSQLITE.vb" />
<Compile Include="clsWindream_allgemein.vb" />
<Compile Include="My Project\Application.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Application.myapp</DependentUpon>
</Compile>
<Compile Include="MyDataset.Designer.vb">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>MyDataset.xsd</DependentUpon>
</Compile>
<Compile Include="ProjectInstaller.Designer.vb">
<DependentUpon>ProjectInstaller.vb</DependentUpon>
</Compile>
<Compile Include="ProjectInstaller.vb">
<SubType>Component</SubType>
</Compile>
<Compile Include="Service1.vb">
<SubType>Component</SubType>
</Compile>
<Compile Include="Service1.Designer.vb">
<DependentUpon>Service1.vb</DependentUpon>
</Compile>
<Compile Include="My Project\AssemblyInfo.vb" />
<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="Settings.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>
<EmbeddedResource Include="ProjectInstaller.resx">
<DependentUpon>ProjectInstaller.vb</DependentUpon>
</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" />
<None Include="MyDataset.xsc">
<DependentUpon>MyDataset.xsd</DependentUpon>
</None>
<None Include="MyDataset.xsd">
<SubType>Designer</SubType>
<Generator>MSDataSetGenerator</Generator>
<LastGenOutput>MyDataset.Designer.vb</LastGenOutput>
</None>
<None Include="MyDataset.xss">
<DependentUpon>MyDataset.xsd</DependentUpon>
</None>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>