10 Commits

Author SHA1 Message Date
Jonathan Jenne
b87030a0ff EDMIService: Version 2.3.4 2022-01-12 14:37:30 +01:00
Jonathan Jenne
c3140e0248 EDMIAPI: Version 1.3.3 2022-01-12 14:37:18 +01:00
Jonathan Jenne
eb019db60c ZooFlow: Add Working Sidebar code, inital WIP Config for Sidebar 2022-01-12 14:36:19 +01:00
Jonathan Jenne
0bcb3680b1 Base: Add NamedDatabase Enum 2022-01-12 14:35:42 +01:00
Jonathan Jenne
edd34b18a0 EDMIAPI: Improve Service an Client, Revert some changed function names 2022-01-12 14:35:18 +01:00
Jonathan Jenne
c06ccd9d04 Language: version 1.5.0 2022-01-12 10:42:35 +01:00
Jonathan Jenne
7d9beaceca Language: Add BytesToString 2022-01-12 10:41:56 +01:00
Jonathan Jenne
bdae2d5ee5 EDMIService: Version 2.3.3 2022-01-12 10:41:32 +01:00
Jonathan Jenne
f3560c60c7 EDMIService: Add GetCachedTables 2022-01-12 10:41:14 +01:00
Jonathan Jenne
3d6a012bea EDMIService/Scheduler: Log timings and memory usage for jobs 2022-01-12 10:40:18 +01:00
29 changed files with 980 additions and 545 deletions

View File

@@ -2,6 +2,10 @@
Public Property FlowForm As New FlowFormConfig
Public Property SearchForm As New SearchFormConfig
Public Property Globix As New GlobixConfig
Public Property SidebarScreen As String
Public Property SidebarOrientation As String
Public Class FlowFormConfig
Public Property Location As New Point(0, 0)
End Class

View File

@@ -0,0 +1,5 @@
DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a

View File

@@ -432,6 +432,9 @@
<EmbeddedResource Include="Administration\frmSQLDesigner.resx">
<DependentUpon>frmSQLDesigner.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmConfigBasic.resx">
<DependentUpon>frmConfigBasic.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmServiceConfig.resx">
<DependentUpon>frmServiceConfig.vb</DependentUpon>
</EmbeddedResource>

View File

@@ -1,6 +1,6 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class frmConfigBasic
Inherits System.Windows.Forms.Form
Inherits DevExpress.XtraBars.Ribbon.RibbonForm
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
<System.Diagnostics.DebuggerNonUserCode()> _
@@ -22,9 +22,133 @@ Partial Class frmConfigBasic
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
components = New System.ComponentModel.Container
Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl()
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.LayoutControl1 = New DevExpress.XtraLayout.LayoutControl()
Me.Root = New DevExpress.XtraLayout.LayoutControlGroup()
Me.cmbScreens = New DevExpress.XtraEditors.ComboBoxEdit()
Me.LayoutControlItem1 = New DevExpress.XtraLayout.LayoutControlItem()
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.LayoutControl1.SuspendLayout()
CType(Me.Root, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.cmbScreens.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'RibbonControl1
'
Me.RibbonControl1.ExpandCollapseItem.Id = 0
Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem})
Me.RibbonControl1.Location = New System.Drawing.Point(0, 0)
Me.RibbonControl1.MaxItemId = 1
Me.RibbonControl1.Name = "RibbonControl1"
Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1})
Me.RibbonControl1.Size = New System.Drawing.Size(800, 160)
Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1
'
'RibbonPage1
'
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2})
Me.RibbonPage1.Name = "RibbonPage1"
Me.RibbonPage1.Text = "RibbonPage1"
'
'RibbonPageGroup1
'
Me.RibbonPageGroup1.Name = "RibbonPageGroup1"
Me.RibbonPageGroup1.Text = "RibbonPageGroup1"
'
'RibbonPageGroup2
'
Me.RibbonPageGroup2.Name = "RibbonPageGroup2"
Me.RibbonPageGroup2.Text = "RibbonPageGroup2"
'
'RibbonStatusBar1
'
Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 428)
Me.RibbonStatusBar1.Name = "RibbonStatusBar1"
Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1
Me.RibbonStatusBar1.Size = New System.Drawing.Size(800, 22)
'
'RibbonPage2
'
Me.RibbonPage2.Name = "RibbonPage2"
Me.RibbonPage2.Text = "RibbonPage2"
'
'LayoutControl1
'
Me.LayoutControl1.Controls.Add(Me.cmbScreens)
Me.LayoutControl1.Dock = System.Windows.Forms.DockStyle.Fill
Me.LayoutControl1.Location = New System.Drawing.Point(0, 160)
Me.LayoutControl1.Name = "LayoutControl1"
Me.LayoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = New System.Drawing.Rectangle(848, 135, 650, 400)
Me.LayoutControl1.Root = Me.Root
Me.LayoutControl1.Size = New System.Drawing.Size(800, 268)
Me.LayoutControl1.TabIndex = 2
Me.LayoutControl1.Text = "LayoutControl1"
'
'Root
'
Me.Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True]
Me.Root.GroupBordersVisible = False
Me.Root.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem1})
Me.Root.Name = "Root"
Me.Root.Size = New System.Drawing.Size(800, 268)
Me.Root.TextVisible = False
'
'cmbScreens
'
Me.cmbScreens.Location = New System.Drawing.Point(125, 12)
Me.cmbScreens.MenuManager = Me.RibbonControl1
Me.cmbScreens.Name = "cmbScreens"
Me.cmbScreens.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)})
Me.cmbScreens.Size = New System.Drawing.Size(663, 20)
Me.cmbScreens.StyleController = Me.LayoutControl1
Me.cmbScreens.TabIndex = 4
'
'LayoutControlItem1
'
Me.LayoutControlItem1.Control = Me.cmbScreens
Me.LayoutControlItem1.Location = New System.Drawing.Point(0, 0)
Me.LayoutControlItem1.Name = "LayoutControlItem1"
Me.LayoutControlItem1.Size = New System.Drawing.Size(780, 248)
Me.LayoutControlItem1.TextSize = New System.Drawing.Size(101, 13)
'
'frmConfigBasic
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(800, 450)
Me.Controls.Add(Me.LayoutControl1)
Me.Controls.Add(Me.RibbonStatusBar1)
Me.Controls.Add(Me.RibbonControl1)
Me.Name = "frmConfigBasic"
Me.Ribbon = Me.RibbonControl1
Me.StatusBar = Me.RibbonStatusBar1
Me.Text = "frmConfigBasic"
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).EndInit()
Me.LayoutControl1.ResumeLayout(False)
CType(Me.Root, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.cmbScreens.Properties, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents RibbonControl1 As DevExpress.XtraBars.Ribbon.RibbonControl
Friend WithEvents RibbonPage1 As DevExpress.XtraBars.Ribbon.RibbonPage
Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents RibbonStatusBar1 As DevExpress.XtraBars.Ribbon.RibbonStatusBar
Friend WithEvents RibbonPage2 As DevExpress.XtraBars.Ribbon.RibbonPage
Friend WithEvents LayoutControl1 As DevExpress.XtraLayout.LayoutControl
Friend WithEvents cmbScreens As DevExpress.XtraEditors.ComboBoxEdit
Friend WithEvents Root As DevExpress.XtraLayout.LayoutControlGroup
Friend WithEvents LayoutControlItem1 As DevExpress.XtraLayout.LayoutControlItem
End Class

View File

@@ -0,0 +1,120 @@
<?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>
</root>

View File

@@ -1,3 +1,17 @@
Public Class frmConfigBasic
Private Sub frmConfigBasic_Load(sender As Object, e As EventArgs) Handles MyBase.Load
LoadScreens()
End Sub
Private Sub LoadScreens()
cmbScreens.Properties.Items.Clear()
For Each oScreen In Screen.AllScreens
cmbScreens.Properties.Items.Add(oScreen.DeviceName)
Next
End Sub
Private Sub cmbScreens_SelectedValueChanged(sender As Object, e As EventArgs) Handles cmbScreens.SelectedValueChanged
My.UIConfig.SidebarScreen = cmbScreens.EditValue
My.UIConfigManager.Save()
End Sub
End Class

View File

@@ -23,39 +23,39 @@ Partial Class frmConfigDatabase
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.LayoutControl1 = New DevExpress.XtraLayout.LayoutControl()
Me.btnTestConnection = New DevExpress.XtraEditors.SimpleButton()
Me.LayoutControlGroup1 = New DevExpress.XtraLayout.LayoutControlGroup()
Me.LayoutControlItem5 = New DevExpress.XtraLayout.LayoutControlItem()
Me.EmptySpaceItem2 = New DevExpress.XtraLayout.EmptySpaceItem()
Me.txtServerName = New DevExpress.XtraEditors.TextEdit()
Me.txtUserName = New DevExpress.XtraEditors.TextEdit()
Me.txtPassword = New DevExpress.XtraEditors.TextEdit()
Me.cmbDatabase = New DevExpress.XtraEditors.ComboBoxEdit()
Me.btnTestConnection = New DevExpress.XtraEditors.SimpleButton()
Me.txtConnectionString = New DevExpress.XtraEditors.TextEdit()
Me.chkWinAuth = New DevExpress.XtraEditors.CheckEdit()
Me.LayoutControlGroup1 = New DevExpress.XtraLayout.LayoutControlGroup()
Me.LayoutControlItem1 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem2 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem4 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem3 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem7 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem6 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem5 = New DevExpress.XtraLayout.LayoutControlItem()
Me.EmptySpaceItem2 = New DevExpress.XtraLayout.EmptySpaceItem()
CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.LayoutControl1.SuspendLayout()
CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem5, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.EmptySpaceItem2, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.txtServerName.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.txtUserName.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.txtPassword.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.cmbDatabase.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.txtConnectionString.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.chkWinAuth.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem4, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem3, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem7, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem6, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem5, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.EmptySpaceItem2, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'LayoutControl1
@@ -75,39 +75,6 @@ Partial Class frmConfigDatabase
Me.LayoutControl1.TabIndex = 0
Me.LayoutControl1.Text = "LayoutControl1"
'
'txtServerName
'
Me.txtServerName.Location = New System.Drawing.Point(160, 15)
Me.txtServerName.Name = "txtServerName"
Me.txtServerName.Size = New System.Drawing.Size(427, 20)
Me.txtServerName.StyleController = Me.LayoutControl1
Me.txtServerName.TabIndex = 4
'
'txtUserName
'
Me.txtUserName.Location = New System.Drawing.Point(160, 45)
Me.txtUserName.Name = "txtUserName"
Me.txtUserName.Size = New System.Drawing.Size(136, 20)
Me.txtUserName.StyleController = Me.LayoutControl1
Me.txtUserName.TabIndex = 5
'
'txtPassword
'
Me.txtPassword.Location = New System.Drawing.Point(451, 45)
Me.txtPassword.Name = "txtPassword"
Me.txtPassword.Size = New System.Drawing.Size(136, 20)
Me.txtPassword.StyleController = Me.LayoutControl1
Me.txtPassword.TabIndex = 6
'
'cmbDatabase
'
Me.cmbDatabase.Location = New System.Drawing.Point(160, 75)
Me.cmbDatabase.Name = "cmbDatabase"
Me.cmbDatabase.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)})
Me.cmbDatabase.Size = New System.Drawing.Size(427, 20)
Me.cmbDatabase.StyleController = Me.LayoutControl1
Me.cmbDatabase.TabIndex = 7
'
'btnTestConnection
'
Me.btnTestConnection.ImageOptions.SvgImage = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.actions_check4
@@ -119,12 +86,71 @@ Partial Class frmConfigDatabase
Me.btnTestConnection.TabIndex = 8
Me.btnTestConnection.Text = "Verbindung zur Datenbank herstellen"
'
'LayoutControlGroup1
'
Me.LayoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True]
Me.LayoutControlGroup1.GroupBordersVisible = False
Me.LayoutControlGroup1.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem1, Me.LayoutControlItem2, Me.LayoutControlItem4, Me.LayoutControlItem3, Me.LayoutControlItem7, Me.LayoutControlItem6, Me.LayoutControlItem5, Me.EmptySpaceItem2})
Me.LayoutControlGroup1.Name = "LayoutControlGroup1"
Me.LayoutControlGroup1.Size = New System.Drawing.Size(602, 221)
Me.LayoutControlGroup1.TextVisible = False
'
'LayoutControlItem5
'
Me.LayoutControlItem5.Control = Me.btnTestConnection
Me.LayoutControlItem5.Location = New System.Drawing.Point(291, 152)
Me.LayoutControlItem5.Name = "LayoutControlItem5"
Me.LayoutControlItem5.Size = New System.Drawing.Size(291, 49)
Me.LayoutControlItem5.TextSize = New System.Drawing.Size(0, 0)
Me.LayoutControlItem5.TextVisible = False
'
'EmptySpaceItem2
'
Me.EmptySpaceItem2.AllowHotTrack = False
Me.EmptySpaceItem2.Location = New System.Drawing.Point(0, 152)
Me.EmptySpaceItem2.Name = "EmptySpaceItem2"
Me.EmptySpaceItem2.Size = New System.Drawing.Size(291, 49)
Me.EmptySpaceItem2.TextSize = New System.Drawing.Size(0, 0)
'
'txtServerName
'
Me.txtServerName.Location = New System.Drawing.Point(169, 15)
Me.txtServerName.Name = "txtServerName"
Me.txtServerName.Size = New System.Drawing.Size(418, 20)
Me.txtServerName.StyleController = Me.LayoutControl1
Me.txtServerName.TabIndex = 4
'
'txtUserName
'
Me.txtUserName.Location = New System.Drawing.Point(169, 45)
Me.txtUserName.Name = "txtUserName"
Me.txtUserName.Size = New System.Drawing.Size(127, 20)
Me.txtUserName.StyleController = Me.LayoutControl1
Me.txtUserName.TabIndex = 5
'
'txtPassword
'
Me.txtPassword.Location = New System.Drawing.Point(460, 45)
Me.txtPassword.Name = "txtPassword"
Me.txtPassword.Size = New System.Drawing.Size(127, 20)
Me.txtPassword.StyleController = Me.LayoutControl1
Me.txtPassword.TabIndex = 6
'
'cmbDatabase
'
Me.cmbDatabase.Location = New System.Drawing.Point(169, 75)
Me.cmbDatabase.Name = "cmbDatabase"
Me.cmbDatabase.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)})
Me.cmbDatabase.Size = New System.Drawing.Size(418, 20)
Me.cmbDatabase.StyleController = Me.LayoutControl1
Me.cmbDatabase.TabIndex = 7
'
'txtConnectionString
'
Me.txtConnectionString.Location = New System.Drawing.Point(160, 137)
Me.txtConnectionString.Location = New System.Drawing.Point(169, 137)
Me.txtConnectionString.Name = "txtConnectionString"
Me.txtConnectionString.Properties.ReadOnly = True
Me.txtConnectionString.Size = New System.Drawing.Size(427, 20)
Me.txtConnectionString.Size = New System.Drawing.Size(418, 20)
Me.txtConnectionString.StyleController = Me.LayoutControl1
Me.txtConnectionString.TabIndex = 9
'
@@ -137,15 +163,6 @@ Partial Class frmConfigDatabase
Me.chkWinAuth.StyleController = Me.LayoutControl1
Me.chkWinAuth.TabIndex = 10
'
'LayoutControlGroup1
'
Me.LayoutControlGroup1.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.[True]
Me.LayoutControlGroup1.GroupBordersVisible = False
Me.LayoutControlGroup1.Items.AddRange(New DevExpress.XtraLayout.BaseLayoutItem() {Me.LayoutControlItem1, Me.LayoutControlItem2, Me.LayoutControlItem4, Me.LayoutControlItem3, Me.LayoutControlItem7, Me.LayoutControlItem6, Me.LayoutControlItem5, Me.EmptySpaceItem2})
Me.LayoutControlGroup1.Name = "LayoutControlGroup1"
Me.LayoutControlGroup1.Size = New System.Drawing.Size(602, 221)
Me.LayoutControlGroup1.TextVisible = False
'
'LayoutControlItem1
'
Me.LayoutControlItem1.Control = Me.txtServerName
@@ -206,23 +223,6 @@ Partial Class frmConfigDatabase
Me.LayoutControlItem6.Text = "Aktueller Connectionstring:"
Me.LayoutControlItem6.TextSize = New System.Drawing.Size(142, 13)
'
'LayoutControlItem5
'
Me.LayoutControlItem5.Control = Me.btnTestConnection
Me.LayoutControlItem5.Location = New System.Drawing.Point(291, 152)
Me.LayoutControlItem5.Name = "LayoutControlItem5"
Me.LayoutControlItem5.Size = New System.Drawing.Size(291, 49)
Me.LayoutControlItem5.TextSize = New System.Drawing.Size(0, 0)
Me.LayoutControlItem5.TextVisible = False
'
'EmptySpaceItem2
'
Me.EmptySpaceItem2.AllowHotTrack = False
Me.EmptySpaceItem2.Location = New System.Drawing.Point(0, 152)
Me.EmptySpaceItem2.Name = "EmptySpaceItem2"
Me.EmptySpaceItem2.Size = New System.Drawing.Size(291, 49)
Me.EmptySpaceItem2.TextSize = New System.Drawing.Size(0, 0)
'
'frmConfigDatabase
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -233,21 +233,21 @@ Partial Class frmConfigDatabase
Me.Text = "Datenbank Verbindung"
CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).EndInit()
Me.LayoutControl1.ResumeLayout(False)
CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem5, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.EmptySpaceItem2, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.txtServerName.Properties, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.txtUserName.Properties, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.txtPassword.Properties, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.cmbDatabase.Properties, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.txtConnectionString.Properties, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.chkWinAuth.Properties, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlGroup1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem4, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem3, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem7, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem6, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem5, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.EmptySpaceItem2, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
End Sub

View File

@@ -30,12 +30,9 @@ Partial Class frmFlowForm
Dim SnapOptions1 As DevExpress.Utils.Controls.SnapOptions = New DevExpress.Utils.Controls.SnapOptions()
Me.NotifyIcon = New System.Windows.Forms.NotifyIcon(Me.components)
Me.ContextMenuSystray = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.GlobixToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.TsiGlobixConfig = New System.Windows.Forms.ToolStripMenuItem()
Me.UserKonfigurationToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.DatenbankverbindungToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator()
Me.VerwaltungToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator()
Me.SucheTestToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.TestToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
@@ -43,24 +40,28 @@ Partial Class frmFlowForm
Me.ZooFlowBeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.TimerRefreshData = New System.Windows.Forms.Timer(Me.components)
Me.ToolTip1 = New System.Windows.Forms.ToolTip(Me.components)
Me.PictureBoxAbo = New System.Windows.Forms.PictureBox()
Me.PictureBoxDragDrop = New System.Windows.Forms.PictureBox()
Me.PictureBoxPM1 = New DevExpress.XtraEditors.SvgImageBox()
Me.TimerCheckActiveForms = New System.Windows.Forms.Timer(Me.components)
Me.TimerCheckDroppedFiles = New System.Windows.Forms.Timer(Me.components)
Me.TimerFolderwatch = New System.Windows.Forms.Timer(Me.components)
Me.ToastNotificationsManager1 = New DevExpress.XtraBars.ToastNotifications.ToastNotificationsManager(Me.components)
Me.PictureBoxGlobix1 = New DevExpress.XtraEditors.SvgImageBox()
Me.PictureBoxSearch1 = New DevExpress.XtraEditors.SvgImageBox()
Me.BehaviorManager1 = New DevExpress.Utils.Behaviors.BehaviorManager(Me.components)
Me.PictureBoxGlobix1 = New DevExpress.XtraEditors.SvgImageBox()
Me.PictureBoxPM1 = New DevExpress.XtraEditors.SvgImageBox()
Me.PictureBoxAbo = New System.Windows.Forms.PictureBox()
Me.PictureBoxSearch1 = New DevExpress.XtraEditors.SvgImageBox()
Me.PictureBoxDragDrop = New System.Windows.Forms.PictureBox()
Me.GlobixToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.TsiGlobixConfig = New System.Windows.Forms.ToolStripMenuItem()
Me.VerwaltungToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.BasisKonfigurationToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.ContextMenuSystray.SuspendLayout()
CType(Me.PictureBoxAbo, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.PictureBoxDragDrop, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.PictureBoxPM1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.ToastNotificationsManager1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.PictureBoxGlobix1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.PictureBoxSearch1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.BehaviorManager1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.PictureBoxGlobix1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.PictureBoxPM1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.PictureBoxAbo, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.PictureBoxSearch1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.PictureBoxDragDrop, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'SplashScreenManager
@@ -78,28 +79,13 @@ Partial Class frmFlowForm
'
Me.ContextMenuSystray.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.GlobixToolStripMenuItem, Me.UserKonfigurationToolStripMenuItem, Me.ToolStripSeparator1, Me.VerwaltungToolStripMenuItem, Me.ToolStripSeparator3, Me.SucheTestToolStripMenuItem, Me.TestToolStripMenuItem, Me.ToolStripSeparator2, Me.ZooFlowBeendenToolStripMenuItem})
Me.ContextMenuSystray.Name = "ContextMenuSystray"
Me.ContextMenuSystray.Size = New System.Drawing.Size(174, 154)
'
'GlobixToolStripMenuItem
'
Me.GlobixToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TsiGlobixConfig})
Me.GlobixToolStripMenuItem.Image = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.GLOBIX_short
Me.GlobixToolStripMenuItem.Name = "GlobixToolStripMenuItem"
Me.GlobixToolStripMenuItem.Size = New System.Drawing.Size(173, 22)
Me.GlobixToolStripMenuItem.Text = "Globix"
Me.GlobixToolStripMenuItem.Visible = False
'
'TsiGlobixConfig
'
Me.TsiGlobixConfig.Name = "TsiGlobixConfig"
Me.TsiGlobixConfig.Size = New System.Drawing.Size(178, 22)
Me.TsiGlobixConfig.Text = "Grundeinstellungen"
Me.ContextMenuSystray.Size = New System.Drawing.Size(181, 176)
'
'UserKonfigurationToolStripMenuItem
'
Me.UserKonfigurationToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DatenbankverbindungToolStripMenuItem})
Me.UserKonfigurationToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DatenbankverbindungToolStripMenuItem, Me.BasisKonfigurationToolStripMenuItem})
Me.UserKonfigurationToolStripMenuItem.Name = "UserKonfigurationToolStripMenuItem"
Me.UserKonfigurationToolStripMenuItem.Size = New System.Drawing.Size(173, 22)
Me.UserKonfigurationToolStripMenuItem.Size = New System.Drawing.Size(180, 22)
Me.UserKonfigurationToolStripMenuItem.Text = "User Konfiguration"
'
'DatenbankverbindungToolStripMenuItem
@@ -111,81 +97,36 @@ Partial Class frmFlowForm
'ToolStripSeparator1
'
Me.ToolStripSeparator1.Name = "ToolStripSeparator1"
Me.ToolStripSeparator1.Size = New System.Drawing.Size(170, 6)
'
'VerwaltungToolStripMenuItem
'
Me.VerwaltungToolStripMenuItem.Image = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.gear_32xLG
Me.VerwaltungToolStripMenuItem.Name = "VerwaltungToolStripMenuItem"
Me.VerwaltungToolStripMenuItem.Size = New System.Drawing.Size(173, 22)
Me.VerwaltungToolStripMenuItem.Text = "Verwaltung"
Me.ToolStripSeparator1.Size = New System.Drawing.Size(177, 6)
'
'ToolStripSeparator3
'
Me.ToolStripSeparator3.Name = "ToolStripSeparator3"
Me.ToolStripSeparator3.Size = New System.Drawing.Size(170, 6)
Me.ToolStripSeparator3.Size = New System.Drawing.Size(177, 6)
'
'SucheTestToolStripMenuItem
'
Me.SucheTestToolStripMenuItem.Name = "SucheTestToolStripMenuItem"
Me.SucheTestToolStripMenuItem.Size = New System.Drawing.Size(173, 22)
Me.SucheTestToolStripMenuItem.Size = New System.Drawing.Size(180, 22)
Me.SucheTestToolStripMenuItem.Text = "Suche (Test)"
'
'TestToolStripMenuItem
'
Me.TestToolStripMenuItem.Name = "TestToolStripMenuItem"
Me.TestToolStripMenuItem.Size = New System.Drawing.Size(173, 22)
Me.TestToolStripMenuItem.Size = New System.Drawing.Size(180, 22)
Me.TestToolStripMenuItem.Text = "Test"
'
'ToolStripSeparator2
'
Me.ToolStripSeparator2.Name = "ToolStripSeparator2"
Me.ToolStripSeparator2.Size = New System.Drawing.Size(170, 6)
Me.ToolStripSeparator2.Size = New System.Drawing.Size(177, 6)
'
'ZooFlowBeendenToolStripMenuItem
'
Me.ZooFlowBeendenToolStripMenuItem.Name = "ZooFlowBeendenToolStripMenuItem"
Me.ZooFlowBeendenToolStripMenuItem.Size = New System.Drawing.Size(173, 22)
Me.ZooFlowBeendenToolStripMenuItem.Size = New System.Drawing.Size(180, 22)
Me.ZooFlowBeendenToolStripMenuItem.Text = "ZooFlow beenden"
'
'PictureBoxAbo
'
Me.PictureBoxAbo.Cursor = System.Windows.Forms.Cursors.Hand
Me.PictureBoxAbo.Image = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources._2_ZOO_FLOW_Abo
Me.PictureBoxAbo.Location = New System.Drawing.Point(97, 153)
Me.PictureBoxAbo.Name = "PictureBoxAbo"
Me.PictureBoxAbo.Size = New System.Drawing.Size(40, 36)
Me.PictureBoxAbo.TabIndex = 11
Me.PictureBoxAbo.TabStop = False
Me.ToolTip1.SetToolTip(Me.PictureBoxAbo, "Abonnierte Suchen")
'
'PictureBoxDragDrop
'
Me.PictureBoxDragDrop.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.PictureBoxDragDrop.Dock = System.Windows.Forms.DockStyle.Top
Me.PictureBoxDragDrop.Image = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources._1_LOGO_ZOO_FLOW
Me.PictureBoxDragDrop.Location = New System.Drawing.Point(0, 0)
Me.PictureBoxDragDrop.Name = "PictureBoxDragDrop"
Me.PictureBoxDragDrop.Size = New System.Drawing.Size(200, 150)
Me.PictureBoxDragDrop.TabIndex = 10
Me.PictureBoxDragDrop.TabStop = False
Me.ToolTip1.SetToolTip(Me.PictureBoxDragDrop, "Drag and Drop files here")
'
'PictureBoxPM1
'
Me.PictureBoxPM1.Cursor = System.Windows.Forms.Cursors.Hand
Me.PictureBoxPM1.ItemAppearance.Hovered.FillColor = System.Drawing.Color.FromArgb(CType(CType(165, Byte), Integer), CType(CType(36, Byte), Integer), CType(CType(49, Byte), Integer))
Me.PictureBoxPM1.ItemAppearance.Normal.FillColor = System.Drawing.SystemColors.ControlDark
Me.PictureBoxPM1.ItemHitTestType = DevExpress.XtraEditors.ItemHitTestType.BoundingBox
Me.PictureBoxPM1.Location = New System.Drawing.Point(47, 298)
Me.PictureBoxPM1.Name = "PictureBoxPM1"
Me.PictureBoxPM1.Size = New System.Drawing.Size(90, 90)
Me.PictureBoxPM1.SizeMode = DevExpress.XtraEditors.SvgImageSizeMode.Zoom
Me.PictureBoxPM1.SvgImage = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.ZooFlow_PM_DevExpress
Me.PictureBoxPM1.TabIndex = 14
Me.PictureBoxPM1.Text = "SvgImageBox1"
Me.ToolTip1.SetToolTip(Me.PictureBoxPM1, "ProcessManager - Workflow")
'
'TimerCheckActiveForms
'
Me.TimerCheckActiveForms.Interval = 2000
@@ -219,6 +160,32 @@ Partial Class frmFlowForm
Me.PictureBoxGlobix1.TabIndex = 15
Me.PictureBoxGlobix1.Text = "SvgImageBox1"
'
'PictureBoxPM1
'
Me.PictureBoxPM1.Cursor = System.Windows.Forms.Cursors.Hand
Me.PictureBoxPM1.ItemAppearance.Hovered.FillColor = System.Drawing.Color.FromArgb(CType(CType(165, Byte), Integer), CType(CType(36, Byte), Integer), CType(CType(49, Byte), Integer))
Me.PictureBoxPM1.ItemAppearance.Normal.FillColor = System.Drawing.SystemColors.ControlDark
Me.PictureBoxPM1.ItemHitTestType = DevExpress.XtraEditors.ItemHitTestType.BoundingBox
Me.PictureBoxPM1.Location = New System.Drawing.Point(47, 298)
Me.PictureBoxPM1.Name = "PictureBoxPM1"
Me.PictureBoxPM1.Size = New System.Drawing.Size(90, 90)
Me.PictureBoxPM1.SizeMode = DevExpress.XtraEditors.SvgImageSizeMode.Zoom
Me.PictureBoxPM1.SvgImage = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.ZooFlow_PM_DevExpress
Me.PictureBoxPM1.TabIndex = 14
Me.PictureBoxPM1.Text = "SvgImageBox1"
Me.ToolTip1.SetToolTip(Me.PictureBoxPM1, "ProcessManager - Workflow")
'
'PictureBoxAbo
'
Me.PictureBoxAbo.Cursor = System.Windows.Forms.Cursors.Hand
Me.PictureBoxAbo.Image = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources._2_ZOO_FLOW_Abo
Me.PictureBoxAbo.Location = New System.Drawing.Point(97, 153)
Me.PictureBoxAbo.Name = "PictureBoxAbo"
Me.PictureBoxAbo.Size = New System.Drawing.Size(40, 36)
Me.PictureBoxAbo.TabIndex = 11
Me.PictureBoxAbo.TabStop = False
Me.ToolTip1.SetToolTip(Me.PictureBoxAbo, "Abonnierte Suchen")
'
'PictureBoxSearch1
'
Me.PictureBoxSearch1.Cursor = System.Windows.Forms.Cursors.Hand
@@ -233,6 +200,46 @@ Partial Class frmFlowForm
Me.PictureBoxSearch1.TabIndex = 13
Me.PictureBoxSearch1.Text = "SvgImageBox1"
'
'PictureBoxDragDrop
'
Me.PictureBoxDragDrop.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.PictureBoxDragDrop.Dock = System.Windows.Forms.DockStyle.Top
Me.PictureBoxDragDrop.Image = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources._1_LOGO_ZOO_FLOW
Me.PictureBoxDragDrop.Location = New System.Drawing.Point(0, 0)
Me.PictureBoxDragDrop.Name = "PictureBoxDragDrop"
Me.PictureBoxDragDrop.Size = New System.Drawing.Size(200, 150)
Me.PictureBoxDragDrop.TabIndex = 10
Me.PictureBoxDragDrop.TabStop = False
Me.ToolTip1.SetToolTip(Me.PictureBoxDragDrop, "Drag and Drop files here")
'
'GlobixToolStripMenuItem
'
Me.GlobixToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TsiGlobixConfig})
Me.GlobixToolStripMenuItem.Image = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.GLOBIX_short
Me.GlobixToolStripMenuItem.Name = "GlobixToolStripMenuItem"
Me.GlobixToolStripMenuItem.Size = New System.Drawing.Size(180, 22)
Me.GlobixToolStripMenuItem.Text = "Globix"
Me.GlobixToolStripMenuItem.Visible = False
'
'TsiGlobixConfig
'
Me.TsiGlobixConfig.Name = "TsiGlobixConfig"
Me.TsiGlobixConfig.Size = New System.Drawing.Size(180, 22)
Me.TsiGlobixConfig.Text = "Grundeinstellungen"
'
'VerwaltungToolStripMenuItem
'
Me.VerwaltungToolStripMenuItem.Image = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.gear_32xLG
Me.VerwaltungToolStripMenuItem.Name = "VerwaltungToolStripMenuItem"
Me.VerwaltungToolStripMenuItem.Size = New System.Drawing.Size(180, 22)
Me.VerwaltungToolStripMenuItem.Text = "Verwaltung"
'
'BasisKonfigurationToolStripMenuItem
'
Me.BasisKonfigurationToolStripMenuItem.Name = "BasisKonfigurationToolStripMenuItem"
Me.BasisKonfigurationToolStripMenuItem.Size = New System.Drawing.Size(192, 22)
Me.BasisKonfigurationToolStripMenuItem.Text = "Basis Konfiguration"
'
'frmFlowForm
'
Me.AllowDrop = True
@@ -251,19 +258,19 @@ Partial Class frmFlowForm
Me.Controls.Add(Me.PictureBoxSearch1)
Me.Controls.Add(Me.PictureBoxDragDrop)
Me.DoubleBuffered = True
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
Me.IconOptions.Image = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.ZOO_FLOW__sysicon_256
Me.Name = "frmFlowForm"
Me.Text = "ZooFlow"
Me.TopMost = True
Me.ContextMenuSystray.ResumeLayout(False)
CType(Me.PictureBoxAbo, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.PictureBoxDragDrop, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.PictureBoxPM1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.ToastNotificationsManager1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.PictureBoxGlobix1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.PictureBoxSearch1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.BehaviorManager1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.PictureBoxGlobix1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.PictureBoxPM1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.PictureBoxAbo, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.PictureBoxSearch1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.PictureBoxDragDrop, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
End Sub
@@ -292,4 +299,5 @@ Partial Class frmFlowForm
Friend WithEvents ToolStripSeparator3 As ToolStripSeparator
Friend WithEvents SucheTestToolStripMenuItem As ToolStripMenuItem
Friend WithEvents BehaviorManager1 As DevExpress.Utils.Behaviors.BehaviorManager
Friend WithEvents BasisKonfigurationToolStripMenuItem As ToolStripMenuItem
End Class

View File

@@ -1972,9 +1972,9 @@
<value>1079, 17</value>
</metadata>
<metadata name="ToastNotificationsManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 56</value>
<value>1228, 17</value>
</metadata>
<metadata name="BehaviorManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>222, 56</value>
<value>17, 56</value>
</metadata>
</root>

View File

@@ -13,149 +13,60 @@ Imports DigitalData.Modules.Messaging
Imports DigitalData.Modules.Windows
Public Class frmFlowForm
#Region "Sidebar Variablen und Konstanten"
Public AppDeskData As AppDeskBar
Public fBarRegistered As Boolean = False
Public ret, i, uCallBack As Integer
#Region "Sidebar Declarations"
Private Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (ByVal hwnd As IntPtr, ByVal hWndInsertAfter As Integer, ByVal x As Integer, ByVal y As Integer, ByVal cx As Integer, ByVal cy As Integer, ByVal wFlags As Integer) As Integer
Public Declare Auto Function MoveWindow Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal X As Int32, ByVal Y As Int32, ByVal nWidth As Int32, ByVal nHeight As Int32, ByVal bRepaint As Boolean) As Boolean
Declare Function SHAppBarMessage Lib "shell32.dll" Alias "SHAppBarMessage" (ByVal dwMessage As Integer, ByRef pData As APPBARDATA) As Integer
Declare Function SetWindowPos Lib "user32.dll" (ByVal hwnd As Integer, ByVal hWndInsertAfter As Integer, ByVal X As Integer, ByVal Y As Integer, ByVal cX As Integer, ByVal cY As Integer, ByVal wFlags As Integer) As Integer
Structure APPBARDATA
Dim cbSize As Integer
Dim hwnd As Integer
Dim uCallbackMessage As [Delegate]
Dim uEdge As Integer
Dim rc As RECT
Dim lParam As Integer ' message specific
End Structure
Structure RECT
Public left As Integer
Public top As Integer
Public right As Integer
Public bottom As Integer
Dim Left As Integer
Dim Top As Integer
Dim Right As Integer
Dim Bottom As Integer
End Structure
Structure AppDeskBar
Public cbSize As Integer
Public hWnd As IntPtr
Public uCallbackMessage As Integer
Public uEdge As Integer
Public rc As RECT
Public lParam As IntPtr
End Structure
Enum ABMsg
ABM_NEW = 0
ABM_REMOVE = 1
ABM_QUERYPOS = 2
ABM_SETPOS = 3
ABM_GETSTATE = 4
ABM_GETTASKBARPOS = 5
ABM_ACTIVATE = 6
ABM_GETAUTOHIDEBAR = 7
ABM_SETAUTOHIDEBAR = 8
ABM_WINDOWPOSCHANGED = 9
ABM_SETSTATE = 10
End Enum
Enum ABEdge
ABE_LEFT = 0
ABE_TOP
ABE_RIGHT
ABE_BOTTOM
End Enum
Enum ABNotify
ABN_STATECHANGE = 0
ABN_POSCHANGED
ABN_FULLSCREENAPP
ABN_WINDOWARRANGE
End Enum
Const ABE_LEFT As Integer = 0
Const ABE_TOP As Integer = &H1
Const ABE_RIGHT As Integer = 2
Const ABE_BOTTOM As Integer = 3
Const ABM_NEW As Integer = 0
Const ABM_REMOVE As Integer = 1
Const ABM_QUERYPOS As Integer = 2
Const ABM_SETPOS As Integer = &H3
Const ABM_GETSTATE As Integer = 4
Const ABM_GETTASKBARPOS As Integer = 5
Const ABM_ACTIVATE As Integer = 6
Const ABM_GETAUTOHIDEBAR As Integer = 7
Const ABM_SETAUTOHIDEBAR As Integer = 8
Const ABM_WINDOWPOSCHANGED As Integer = 9
Const ABS_AUTOHIDE As Integer = 1
Const ABS_ALWAYSONTOP As Integer = 2
Const HWND_NOTTOPMOST As Integer = -2
Const HWND_TOPMOST As Integer = -1
Const HWND_TOP As Integer = 0
Const SHOWNORMAL As Integer = 5
Const SWP_NOSIZE As Integer = &H1
Const SWP_NOMOVE As Short = &H2
Const SWP_NOZORDER As Integer = 4
Const SWP_NOACTIVATE As Integer = &H10
Const SWP_DRAWFRAME As Integer = &H20
Const SWP_SHOWWINDOW As Integer = &H40
#End Region
#Region "Sidebar DllImport"
<DllImport("SHELL32", CallingConvention:=CallingConvention.StdCall)>
Private Shared Function SHAppBarMessage(ByVal dwMessage As Integer, ByRef BarrData As AppDeskBar) As Integer
End Function
<DllImport("User32.dll", CharSet:=CharSet.Auto)>
Public Shared Function RegisterWindowMessage(ByVal msg As String) As Integer
End Function
#End Region
#Region "Sidebar Enum Properties Register"
Private Shared Function MoveWindow(ByVal hWnd As IntPtr, ByVal x As Integer, ByVal y As Integer, ByVal cx As Integer, ByVal cy As Integer, ByVal repaint As Boolean) As Boolean
End Function
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
If m.Msg = uCallBack Then
Select Case m.WParam.ToInt32()
Case CInt(ABNotify.ABN_POSCHANGED)
ABSetPos(ABEdge.ABE_RIGHT)
End Select
End If
MyBase.WndProc(m)
End Sub 'WndProc
Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams
Get
Dim cp As CreateParams = MyBase.CreateParams
cp.Style = cp.Style And Not &HC00000 ' WS_CAPTION
cp.Style = cp.Style And Not &H800000 ' WS_BORDER
cp.ExStyle = &H80 Or &H8 ' WS_EX_TOOLWINDOW | WS_EX_TOPMOST
Return cp
End Get
End Property
Public Sub RegisterBar(ByVal dockEdge As ABEdge)
Dim abd As New AppDeskBar()
abd.cbSize = Marshal.SizeOf(abd)
abd.hWnd = Me.Handle
If Not fBarRegistered Then
uCallBack = RegisterWindowMessage("AppBarMessage")
abd.uCallbackMessage = uCallBack
Dim ret As System.UInt32 = SHAppBarMessage(CInt(ABMsg.ABM_NEW), abd) 'ToDo: Unsigned Integers not supported
fBarRegistered = True
ABSetPos(ABEdge.ABE_RIGHT)
Else
SHAppBarMessage(CInt(ABMsg.ABM_REMOVE), abd)
fBarRegistered = False
End If
End Sub
Private Sub ABSetPos(ByVal dockEdge As ABEdge)
Dim abd As New AppDeskBar()
abd.cbSize = Marshal.SizeOf(abd)
abd.hWnd = Me.Handle
abd.uEdge = CInt(dockEdge)
If abd.uEdge = CInt(ABEdge.ABE_LEFT) Or abd.uEdge = CInt(ABEdge.ABE_RIGHT) Then
abd.rc.top = 0
abd.rc.bottom = SystemInformation.PrimaryMonitorSize.Height
If abd.uEdge = CInt(ABEdge.ABE_LEFT) Then
abd.rc.left = 0
abd.rc.right = Size.Width
Else
abd.rc.right = SystemInformation.PrimaryMonitorSize.Width
abd.rc.left = abd.rc.right - Size.Width
End If
Else
abd.rc.left = 0
abd.rc.right = SystemInformation.PrimaryMonitorSize.Width
If abd.uEdge = CInt(ABEdge.ABE_TOP) Then
abd.rc.top = 0
abd.rc.bottom = Size.Height
Else
abd.rc.bottom = SystemInformation.PrimaryMonitorSize.Height
abd.rc.top = abd.rc.bottom - Size.Height
End If
End If
' Query the system for an approved size and position.
SHAppBarMessage(CInt(ABMsg.ABM_QUERYPOS), abd)
' Adjust the rectangle, depending on the edge to which the
' appbar is anchored.
Select Case abd.uEdge
Case CInt(ABEdge.ABE_LEFT)
abd.rc.right = abd.rc.left + Size.Width
Case CInt(ABEdge.ABE_RIGHT)
abd.rc.left = abd.rc.right - Size.Width
Case CInt(ABEdge.ABE_TOP)
abd.rc.bottom = abd.rc.top + Size.Height
Case CInt(ABEdge.ABE_BOTTOM)
abd.rc.top = abd.rc.bottom - Size.Height
End Select
' Pass the final bounding rectangle to the system.
SHAppBarMessage(CInt(ABMsg.ABM_SETPOS), abd)
' Move and size the appbar so that it conforms to the
' bounding rectangle passed to the system.
Me.Location = New Point(abd.rc.left, abd.rc.top)
Dim PSBH = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height
Dim TaskBarHeight = PSBH - System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height
Me.Height = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height - TaskBarHeight
' MoveWindow(abd.hWnd, abd.rc.left, abd.rc.top, abd.rc.right - abd.rc.left, abd.rc.bottom - abd.rc.top, True)
End Sub
#End Region
' Constants
Private Const OPACITY_INITIAL = 0
Private Const OPACITY_HIDDEN = 0.65
@@ -190,7 +101,7 @@ Public Class frmFlowForm
Private ESCHitCount As Integer = 0
Private IndexForm As frmGlobix_Index
Private AdminForm As frmAdmin_Start
Private Const mSnapOffset As Integer = 35
Private Sidebar As APPBARDATA
' Events
Public Event ClipboardChanged As EventHandler(Of IDataObject)
@@ -215,7 +126,10 @@ Public Class frmFlowForm
Init = New ClassInit(My.LogConfig, Me)
AddHandler Init.Completed, AddressOf Init_Completed
Init.InitializeApplication()
'RegisterBar(ABEdge.ABE_RIGHT)
' Register Form as Sidebar
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
RegisterSidebar(My.UIConfig.SidebarScreen)
End Sub
Private Sub Init_Completed(sender As Object, e As EventArgs)
@@ -235,18 +149,13 @@ Public Class frmFlowForm
TopMost = True
AllowDrop = True
ShowInTaskbar = False
Opacity = OPACITY_HIDDEN
Opacity = OPACITY_SHOWN
Location = My.UIConfig.FlowForm.Location
' === Setup Event Handlers ===
AddHandler KeyDown, AddressOf frmFlowForm_KeyDown
AddHandler KeyUp, AddressOf frmFlowForm_KeyDown
For Each oControl As Control In Controls
AddHandler oControl.MouseEnter, AddressOf frmFlowForm_MouseEnter
AddHandler oControl.MouseLeave, AddressOf frmFlowForm_MouseLeave
Next
AddHandler Watcher.ClipboardChanged, AddressOf Watcher_ClipboardChanged
Dim oSQL = My.Queries.Common.FNIDB_GET_SEARCH_PROFILES(My.Application.User.UserId, My.Application.User.Language)
@@ -399,20 +308,20 @@ Public Class frmFlowForm
'TODO: Refresh Data
End Sub
Private Sub frmFlowForm_MouseLeave(sender As Object, e As EventArgs) Handles MyBase.MouseLeave
Opacity = OPACITY_HIDDEN
End Sub
'Private Sub frmFlowForm_MouseLeave(sender As Object, e As EventArgs) Handles MyBase.MouseLeave
' Opacity = OPACITY_HIDDEN
'End Sub
Private Sub frmFlowForm_MouseEnter(sender As Object, e As EventArgs) Handles Me.MouseEnter
Opacity = OPACITY_SHOWN
End Sub
'Private Sub frmFlowForm_MouseEnter(sender As Object, e As EventArgs) Handles Me.MouseEnter
' Opacity = OPACITY_SHOWN
'End Sub
Private Sub frmFlowForm_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) Handles Me.MouseMove, PictureBoxDragDrop.MouseMove
If e.Button = MouseButtons.Left Then
NativeMethods.ReleaseCapture()
NativeMethods.SendMessage(Handle, NativeMethods.WM_NCLBUTTONDOWN, NativeMethods.HTCAPTION, 0)
End If
End Sub
'Private Sub frmFlowForm_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) Handles Me.MouseMove, PictureBoxDragDrop.MouseMove
' If e.Button = MouseButtons.Left Then
' NativeMethods.ReleaseCapture()
' NativeMethods.SendMessage(Handle, NativeMethods.WM_NCLBUTTONDOWN, NativeMethods.HTCAPTION, 0)
' End If
'End Sub
Private Sub frmFlowForm_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs)
If e.KeyCode = Keys.Escape Then
@@ -431,7 +340,7 @@ Public Class frmFlowForm
Sub ExitZooflow()
Dim oResult As DialogResult = MessageBox.Show("Exit Zooflow", "Are you sure you want to close ZooFlow?", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If oResult = DialogResult.Yes Then
Application.Exit()
Close()
Else
ESCHitCount = 0
End If
@@ -542,7 +451,7 @@ Public Class frmFlowForm
End If
Next
TimerCheckActiveForms.Enabled = False
'TimerCheckActiveForms.Enabled = False
Return True
End Function
@@ -550,35 +459,40 @@ Public Class frmFlowForm
frmConfigDatabase.ShowDialog()
End Sub
Private Sub TimerCheckActiveForms_Tick(sender As Object, e As EventArgs) Handles TimerCheckActiveForms.Tick
Visible = FormLoaded_Visible()
If Visible = False Then Exit Sub
End Sub
'Private Sub TimerCheckActiveForms_Tick(sender As Object, e As EventArgs) Handles TimerCheckActiveForms.Tick
' Visible = FormLoaded_Visible()
' If Visible = False Then Exit Sub
'End Sub
Private Sub NotifyIcon_DoubleClick(sender As Object, e As EventArgs) Handles NotifyIcon.DoubleClick
If Visible = False Then
Visible = True
TimerCheckActiveForms.Enabled = False
Else
Visible = False
'TimerCheckActiveForms.Enabled = False
End If
End Sub
Private Sub PictureBox1_DragEnter(sender As Object, e As DragEventArgs) Handles PictureBoxDragDrop.DragEnter
Drag_Enter(sender, e)
End Sub
Sub Drag_Enter(sender As Object, e As DragEventArgs)
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
e.Effect = DragDropEffects.All
' Console.WriteLine("DragEnter ...DragDrop")
ElseIf e.Data.GetDataPresent("FileGroupDescriptor") Then
'handle a message dragged from Outlook
ElseIf e.Data.GetDataPresent("FileGroupDescriptor") Then 'handle a message dragged from Outlook
e.Effect = DragDropEffects.Copy
' Console.WriteLine("DragEnter ...OutlookMessage")
ElseIf e.Data.GetDataPresent("aryFileGroupDescriptor") AndAlso (e.Data.GetDataPresent("FileContents")) Then
e.Effect = DragDropEffects.Copy
' Console.WriteLine("DragEnter ...Attachment from Outlook")
Else
'otherwise, do not handle
e.Effect = DragDropEffects.None
End If
End Sub
Sub DragDropForm(e As DragEventArgs)
@@ -678,9 +592,10 @@ Public Class frmFlowForm
AddHandler IndexForm.FormClosed, AddressOf GlobixClosed
IndexForm.Show()
Cursor = Cursors.Default
If TimerCheckActiveForms.Enabled = False Then
TimerCheckActiveForms.Enabled = True
End If
'If TimerCheckActiveForms.Enabled = False Then
' TimerCheckActiveForms.Enabled = True
'End If
Catch ex As Exception
ShowErrorMessage(ex)
End Try
@@ -1039,16 +954,43 @@ Public Class frmFlowForm
End Sub
Private Sub frmFlowForm_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
'If fBarRegistered Then
' fBarRegistered = False
UnregisterSidebar()
End Sub
' '----NEW
' Dim abd As New AppDeskBar()
' abd.cbSize = Marshal.SizeOf(abd)
' abd.hWnd = Me.Handle
Private Sub RegisterSidebar(pScreenName As String)
Sidebar.hwnd = Me.Handle.ToInt32
Sidebar.cbSize = Len(Sidebar)
' ret = SHAppBarMessage(ABMsg.ABM_REMOVE, abd)
Dim oSelectedScreen = System.Windows.Forms.Screen.PrimaryScreen
' TODO: Make Sidebar Screen configurable
'If pScreenName <> "" Then
' Dim oScreens = System.Windows.Forms.Screen.AllScreens
' For Each oScreen In oScreens
' If oScreen.DeviceName = pScreenName Then
' oSelectedScreen = oScreen
' End If
' Next
'End If
With Sidebar
.uEdge = ABE_RIGHT
.rc.Top = oSelectedScreen.WorkingArea.Top '0
.rc.Right = oSelectedScreen.WorkingArea.Right ' right
.rc.Left = oSelectedScreen.WorkingArea.Right - 200 ' width of our appbar
.rc.Bottom = oSelectedScreen.WorkingArea.Height ' bottom
SHAppBarMessage(ABM_NEW, Sidebar)
SetWindowPos(Sidebar.hwnd, HWND_TOP, .rc.Left, .rc.Top, .rc.Right - .rc.Left, .rc.Bottom, SWP_SHOWWINDOW Or SWP_NOACTIVATE)
SHAppBarMessage(ABM_SETPOS, Sidebar)
End With
End Sub
Private Sub UnregisterSidebar()
SHAppBarMessage(ABM_REMOVE, Sidebar)
End Sub
Private Sub BasisKonfigurationToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles BasisKonfigurationToolStripMenuItem.Click
frmConfigBasic.ShowDialog()
End Sub
End Class

View File

@@ -65,7 +65,7 @@
<Import Include="System.Threading.Tasks" />
</ItemGroup>
<ItemGroup>
<Compile Include="Class1.vb" />
<Compile Include="NamedDatabase.vb" />
<Compile Include="My Project\AssemblyInfo.vb" />
<Compile Include="My Project\Application.Designer.vb">
<AutoGen>True</AutoGen>
@@ -102,5 +102,8 @@
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<Content Include="README.txt" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
</Project>

View File

@@ -2,6 +2,9 @@
''' This module is intended for often used constants and datastructures
''' Therefor it is important that this module does not have any dependencies on other modules!!
''' </summary>
Public Class Class1
End Class
Namespace Constants
Public Enum NamedDatabase
ECM
IDB
End Enum
End Namespace

View File

@@ -0,0 +1,5 @@
BASE MODULE
===========
This module is intended for often used constants and datastructures.
Therefor it is important that this module does not have any dependencies on other modules!!

View File

@@ -1,5 +1,6 @@
Imports System.IO
Imports System.ServiceModel
Imports System.Timers
Imports DigitalData.Modules.EDMI.API.Constants
Imports DigitalData.Modules.EDMI.API.EDMIServiceReference
Imports DigitalData.Modules.EDMI.API.Rights
@@ -7,78 +8,34 @@ Imports DigitalData.Modules.Language.Utils
Imports DigitalData.Modules.Logging
Public Class Client
' Constants
Private Const UPDATE_INTERVAL_IN_MINUTES As Integer = 1
Public Const INVALID_OBEJCT_ID As Long = 0
Private Const KIND_TYPE_DOC = "DOC"
Private ReadOnly _LogConfig As LogConfig
Private ReadOnly _logger As Logger
Private ReadOnly _channelFactory As ChannelFactory(Of IEDMIServiceChannel)
Private ReadOnly _IPAddressServer As String
Private ReadOnly _PortServer As Integer
Private ReadOnly _FileEx As Filesystem.File
Private _channel As IEDMIServiceChannel
' Helper Classes
Private ReadOnly LogConfig As LogConfig
Private ReadOnly Logger As Logger
Private ReadOnly FileEx As Filesystem.File
''' <summary>
''' Creates a new EDMI Client object
''' </summary>
''' <param name="pLogConfig">LogConfig object</param>
''' <param name="pServiceAdress">The IP address/hostname and port, separated by semicolon or colon, ex. 1.2.3.4:9000</param>
Public Sub New(pLogConfig As LogConfig, pServiceAdress As String)
_LogConfig = pLogConfig
_logger = pLogConfig.GetLogger()
_FileEx = New Filesystem.File(pLogConfig)
' Runtime Variables
Private ReadOnly ServerAddress As String
Private ReadOnly ServerPort As Integer
Dim oServiceAddress As String = pServiceAdress
Dim oAddressArray() As String
' Channel
Private ReadOnly ChannelFactory As ChannelFactory(Of IEDMIServiceChannel)
Private Channel As IEDMIServiceChannel
If oServiceAddress.Contains(";") Then
oAddressArray = oServiceAddress.Split(";")
Else
oAddressArray = oServiceAddress.Split(":")
End If
' Update Timer
Private WithEvents UpdateTimer As New Timers.Timer
Try
_IPAddressServer = oAddressArray(0)
_PortServer = oAddressArray(1)
Dim oBinding = Channel.GetBinding()
Dim oAddress = New EndpointAddress($"net.tcp://{_IPAddressServer}:{_PortServer}/DigitalData/Services/Main")
Dim oFactory = New ChannelFactory(Of IEDMIServiceChannel)(oBinding, oAddress)
_channelFactory = oFactory
Catch ex As Exception
_logger.Error(ex)
End Try
End Sub
''' <summary>
''' Creates a new EDMI Client object
''' </summary>
''' <param name="LogConfig">LogConfig object</param>
''' <param name="IPAddress">The IP address to connect to</param>
''' <param name="PortNumber">The Port number to use for the connection</param>
Public Sub New(LogConfig As LogConfig, IPAddress As String, PortNumber As Integer)
_LogConfig = LogConfig
_logger = LogConfig.GetLogger()
_FileEx = New Filesystem.File(LogConfig)
Try
_IPAddressServer = IPAddress
Dim oBinding = Channel.GetBinding()
Dim oAddress = New EndpointAddress($"net.tcp://{IPAddress}:{PortNumber}/DigitalData/Services/Main")
Dim oFactory = New ChannelFactory(Of IEDMIServiceChannel)(oBinding, oAddress)
_channelFactory = oFactory
Catch ex As Exception
_logger.Error(ex)
End Try
End Sub
' Public Variables
Public CachedTables As New List(Of String)
''' <summary>
''' Parse a IPAddress:Port String into its parts
''' </summary>
''' <param name="AddressWithOptionalPort"></param>
''' <returns></returns>
Public Shared Function ParseServiceAddress(AddressWithOptionalPort As String) As Tuple(Of String, Integer)
Dim oSplit() As String = AddressWithOptionalPort.Split(":"c)
Dim oAppServerAddress As String = oSplit(0)
@@ -95,22 +52,81 @@ Public Class Client
Return New Tuple(Of String, Integer)(oAppServerAddress, oAppServerPort)
End Function
''' <summary>
''' Creates a new EDMI Client object
''' </summary>
''' <param name="pLogConfig">LogConfig object</param>
''' <param name="pServiceAdress">The IP address/hostname and port, separated by semicolon or colon, ex. 1.2.3.4:9000</param>
Public Sub New(pLogConfig As LogConfig, pServiceAdress As String)
LogConfig = pLogConfig
Logger = pLogConfig.GetLogger()
FileEx = New Filesystem.File(pLogConfig)
Dim oServiceAddress As String = pServiceAdress
Dim oAddressArray() As String
If oServiceAddress.Contains(";") Then
oAddressArray = oServiceAddress.Split(";")
Else
oAddressArray = oServiceAddress.Split(":")
End If
UpdateTimer.Interval = 60 * 1000 * UPDATE_INTERVAL_IN_MINUTES
UpdateTimer.Start()
Try
ServerAddress = oAddressArray(0)
ServerPort = oAddressArray(1)
Dim oBinding = API.Channel.GetBinding()
Dim oAddress = New EndpointAddress($"net.tcp://{ServerAddress}:{ServerPort}/DigitalData/Services/Main")
Dim oFactory = New ChannelFactory(Of IEDMIServiceChannel)(oBinding, oAddress)
ChannelFactory = oFactory
Catch ex As Exception
Logger.Error(ex)
End Try
End Sub
''' <summary>
''' Creates a new EDMI Client object
''' </summary>
''' <param name="LogConfig">LogConfig object</param>
''' <param name="IPAddress">The IP address to connect to</param>
''' <param name="PortNumber">The Port number to use for the connection</param>
Public Sub New(LogConfig As LogConfig, IPAddress As String, PortNumber As Integer)
Me.LogConfig = LogConfig
Logger = LogConfig.GetLogger()
FileEx = New Filesystem.File(LogConfig)
Try
ServerAddress = IPAddress
Dim oBinding = API.Channel.GetBinding()
Dim oAddress = New EndpointAddress($"net.tcp://{IPAddress}:{PortNumber}/DigitalData/Services/Main")
Dim oFactory = New ChannelFactory(Of IEDMIServiceChannel)(oBinding, oAddress)
ChannelFactory = oFactory
Catch ex As Exception
Logger.Error(ex)
End Try
End Sub
''' <summary>
''' Connect to the service
''' </summary>
''' <returns>True if connection was successful, false otherwise</returns>
Public Function Connect() As Boolean
Try
_channel = GetChannel()
Channel = GetChannel()
_logger.Debug("Opening channel..")
_channel.Open()
Logger.Debug("Opening channel..")
Channel.Open()
_logger.Info($"Connection to AppService {_IPAddressServer} successfully established!")
Logger.Info($"Connection to AppService {ServerAddress} successfully established!")
Return True
Catch ex As Exception
_logger.Error(ex)
Logger.Error(ex)
Return False
End Try
End Function
@@ -119,17 +135,29 @@ Public Class Client
''' Aborts the channel and creates a new connection
''' </summary>
Public Sub Reconnect()
_logger.Warn("Connection faulted. Trying to reconnect..")
Logger.Warn("Connection faulted. Trying to reconnect..")
Try
_channel.Abort()
_channel = GetChannel()
_channel.Open()
Channel.Abort()
Channel = GetChannel()
Channel.Open()
Catch ex As Exception
_logger.Error(ex)
Logger.Error(ex)
End Try
End Sub
Private Async Function UpdateTimer_Elapsed(sender As Object, e As ElapsedEventArgs) As Task Handles UpdateTimer.Elapsed
Try
Dim oTables As String() = Await Channel.GetCachedTablesAsync()
CachedTables = oTables.
Select(Function(table) table.ToUpper).
ToList()
Catch ex As Exception
Logger.Error(ex)
CachedTables = New List(Of String)
End Try
End Function
''' <summary>
''' Imports a file from a filepath, creating a IDB ObjectId and Filesystem Object
''' </summary>
@@ -157,7 +185,7 @@ Public Class Client
Dim oFileName As String = oFileInfo.Name
Dim oFileCreatedAt As Date = oFileInfo?.CreationTime
Dim oFileModifiedAt As Date = oFileInfo?.LastWriteTime
Dim oFileHash As String = _FileEx.GetChecksum(oFileInfo.FullName)
Dim oFileHash As String = FileEx.GetChecksum(oFileInfo.FullName)
' Importing the file now
Using oFileStream As New FileStream(pFilePath, FileMode.Open, FileAccess.Read)
@@ -165,7 +193,7 @@ Public Class Client
oFileStream.CopyTo(oMemoryStream)
Dim oContents = oMemoryStream.ToArray()
Dim oFileImportResponse = Await _channel.NewFileAsync(New NewFileRequest With {
Dim oFileImportResponse = Await Channel.NewFileAsync(New NewFileRequest With {
.BusinessEntity = pBusinessEntity,
.File = New FileProperties With {
.FileName = oFileInfo.Name,
@@ -191,7 +219,7 @@ Public Class Client
End Using
End Using
Catch ex As Exception
_logger.Error(ex)
Logger.Error(ex)
Return INVALID_OBEJCT_ID
End Try
End Function
@@ -205,32 +233,32 @@ Public Class Client
pBusinessEntity As String,
Optional pImportOptions As Options.ImportFileOptions = Nothing) As Task(Of ImportFileResponse)
Try
Dim oImportFile As New Modules.Globix.ImportFile(_LogConfig, _channel)
Dim oImportFile As New Modules.Globix.ImportFile(LogConfig, Channel)
Return Await oImportFile.RunAsync(pFilePath, pProfileId, pAttributeValues, pObjectStoreName, pObjectKind, pBusinessEntity, pImportOptions)
Catch ex As Exception
_logger.Error(ex)
Logger.Error(ex)
Return Nothing
End Try
End Function
Public Function Zooflow_GetFileObject(pObjectId As Long, pLoadFileContents As Boolean) As FileObject
Try
Dim oGetFileObject As New Modules.Zooflow.GetFileObject(_LogConfig, _channel)
Dim oGetFileObject As New Modules.Zooflow.GetFileObject(LogConfig, Channel)
Dim oFileObject = oGetFileObject.Run(pObjectId, pLoadFileContents)
Return oFileObject
Catch ex As Exception
_logger.Error(ex)
Logger.Error(ex)
Return Nothing
End Try
End Function
Public Async Function GetFileObjectAsync(pObjectId As Long, pLoadFileContents As Boolean) As Task(Of FileObject)
Try
Dim oGetFileObject As New Modules.Zooflow.GetFileObject(_LogConfig, Me)
Dim oGetFileObject As New Modules.Zooflow.GetFileObject(LogConfig, Me)
Dim oFileObject = Await oGetFileObject.RunAsync(pObjectId, pLoadFileContents)
Return oFileObject
Catch ex As Exception
_logger.Error(ex)
Logger.Error(ex)
Return Nothing
End Try
End Function
@@ -256,13 +284,13 @@ Public Class Client
}
Try
Dim oResponse = _channel.TestObjectIdExists(New TestObjectIdExistsRequest With {.ObjectId = pObjectId})
Dim oResponse = Channel.TestObjectIdExists(New TestObjectIdExistsRequest With {.ObjectId = pObjectId})
If oResponse.Exists = False Then
Return False
End If
Catch ex As Exception
_logger.Error(ex)
Logger.Error(ex)
Return False
End Try
@@ -287,7 +315,7 @@ Public Class Client
For Each oRow As DataRow In oTable.Rows
Dim oExists As Boolean = False
For Each oNewValueRow As DataRow In oValueTable.Rows
_logger.Debug($"Checking oldValue[{oCurrentValue}] vs NewValue [{oNewValueRow.Item(1)}]")
Logger.Debug($"Checking oldValue[{oCurrentValue}] vs NewValue [{oNewValueRow.Item(1)}]")
If oNewValueRow.Item(1).ToString.ToUpper = oRow.Item(0).ToString.ToUpper Then
oExists = True
@@ -296,7 +324,7 @@ Public Class Client
Next
If oExists = False Then
_logger.Debug($"Value [{oRow.Item(0)}] no longer existing in Vector-Attribute [{pAttributeName}] - will be deleted!")
Logger.Debug($"Value [{oRow.Item(0)}] no longer existing in Vector-Attribute [{pAttributeName}] - will be deleted!")
DeleteTermObjectFromMetadata(pObjectId, pAttributeName, oRow.Item(0))
End If
@@ -308,7 +336,7 @@ Public Class Client
'now Checking whether the old row still remains in Vector? If not it will be deleted as it cannot be replaced in multivalues
Dim oExists As Boolean = False
For Each oNewValueRow As DataRow In oValueTable.Rows
_logger.Debug($"Checking oldValue[{oCurrentValue}] vs NewValue [{oNewValueRow.Item(1)}]")
Logger.Debug($"Checking oldValue[{oCurrentValue}] vs NewValue [{oNewValueRow.Item(1)}]")
If oNewValueRow.Item(1).ToString.ToUpper = oCurrentValue.ToString.ToUpper Then
oExists = True
@@ -317,12 +345,12 @@ Public Class Client
Next
If oExists = False Then
_logger.Debug($"Value [{oCurrentValue}] no longer existing in Vector-Attribute [{pAttributeName}] - will be deleted!")
Logger.Debug($"Value [{oCurrentValue}] no longer existing in Vector-Attribute [{pAttributeName}] - will be deleted!")
DeleteTermObjectFromMetadata(pObjectId, pAttributeName, oCurrentValue.Value)
End If
Else
_logger.Debug($"Value [{oCurrentValue}] of Attribute [{pAttributeName}] obviously was updated during runtime - will be deleted!")
Logger.Debug($"Value [{oCurrentValue}] of Attribute [{pAttributeName}] obviously was updated during runtime - will be deleted!")
DeleteTermObjectFromMetadata(pObjectId, pAttributeName, oCurrentValue.Value)
End If
@@ -348,7 +376,7 @@ Public Class Client
End If
Catch ex As Exception
_logger.Error(ex)
Logger.Error(ex)
Return False
End Try
End Function
@@ -367,14 +395,14 @@ Public Class Client
' Check if ObjectId exists
Try
Dim oResponse = _channel.TestObjectIdExists(New TestObjectIdExistsRequest With {.ObjectId = pObjectId})
Dim oResponse = Channel.TestObjectIdExists(New TestObjectIdExistsRequest With {.ObjectId = pObjectId})
If oResponse.Exists = False Then
Return New VariableValue()
End If
Catch ex As Exception
_logger.Error(ex)
Logger.Error(ex)
Return New VariableValue()
End Try
@@ -407,7 +435,7 @@ Public Class Client
End If
Catch ex As Exception
_logger.Error(ex)
Logger.Error(ex)
Return New VariableValue()
End Try
@@ -452,7 +480,7 @@ Public Class Client
Return oAttributeValue
Catch ex As Exception
_logger.Error(ex)
Logger.Error(ex)
Return Nothing
End Try
@@ -462,7 +490,7 @@ Public Class Client
Dim oAttributes As New List(Of ObjectAttribute)
Try
Dim oResult As TableResult = _channel.ReturnDatatable_MSSQL_IDB($"EXEC [PRIDB_GET_VALUE_DT] {pObjectId}, '{pLanguage}'")
Dim oResult As TableResult = Channel.ReturnDatatable_MSSQL_IDB($"EXEC [PRIDB_GET_VALUE_DT] {pObjectId}, '{pLanguage}'")
If oResult.OK = False Then
Throw New ApplicationException(oResult.ErrorMessage)
@@ -488,7 +516,7 @@ Public Class Client
Return oAttributes
Catch ex As Exception
_logger.Error(ex)
Logger.Error(ex)
Return Nothing
End Try
End Function
@@ -503,11 +531,11 @@ Public Class Client
Dim oSql = $"DECLARE @NEW_OBJ_MD_ID BIGINT
EXEC PRIDB_NEW_OBJ_DATA({pObjectId}, '{pAttributeName}', '{oUsername}', '{pValue}', '{oLanguage}', 0, @OMD_ID = @NEW_OBJ_MD_ID OUTPUT)"
Dim oResult = _channel.ExecuteNonQuery_MSSQL_IDB(oSql)
Dim oResult = Channel.ExecuteNonQuery_MSSQL_IDB(oSql)
If oResult.OK = False Then
_logger.Warn("Error while deleting Term object")
_logger.Error(oResult.ErrorMessage)
Logger.Warn("Error while deleting Term object")
Logger.Error(oResult.ErrorMessage)
End If
Return oResult.OK
@@ -520,92 +548,92 @@ Public Class Client
Dim oIdIsForeign As Integer = 1
Dim oDELSQL = $"EXEC PRIDB_DELETE_TERM_OBJECT_METADATA {pObjectId},'{pAttributeName}','{pTerm2Delete}','{oUsername}','{oLanguage}',{oIdIsForeign}"
Dim oResult = _channel.ExecuteNonQuery_MSSQL_IDB(oDELSQL)
Dim oResult = Channel.ExecuteNonQuery_MSSQL_IDB(oDELSQL)
If oResult.OK = False Then
_logger.Warn("Error while deleting Term object")
_logger.Error(oResult.ErrorMessage)
Logger.Warn("Error while deleting Term object")
Logger.Error(oResult.ErrorMessage)
End If
Return oResult.OK
Catch ex As Exception
_logger.Error(ex)
Logger.Error(ex)
Return False
End Try
End Function
Public Function GetDatatableFromIDB(pSQL As String, Optional pConnectionId As Integer = 0) As GetDatatableResponse
Try
Dim oResponse = _channel.ReturnDatatable(New GetDatatableRequest() With {
Dim oResponse = Channel.ReturnDatatable(New GetDatatableRequest() With {
.SqlCommand = pSQL,
.NamedDatabase = DatabaseName.IDB,
.ConnectionId = pConnectionId
})
Return oResponse
Catch ex As Exception
_logger.Error(ex)
Logger.Error(ex)
Throw ex
End Try
End Function
Public Async Function GetDatatableFromIDBAsync(pSQL As String, Optional pConnectionId As Integer = 0) As Task(Of GetDatatableResponse)
Try
Dim oResponse = Await _channel.ReturnDatatableAsync(New GetDatatableRequest() With {
Dim oResponse = Await Channel.ReturnDatatableAsync(New GetDatatableRequest() With {
.SqlCommand = pSQL,
.NamedDatabase = DatabaseName.IDB,
.ConnectionId = pConnectionId
})
Return oResponse
Catch ex As Exception
_logger.Error(ex)
Logger.Error(ex)
Throw ex
End Try
End Function
Public Function GetScalarValueFromIDB(pSQL As String, Optional pConnectionId As Integer = 0) As GetScalarValueResponse
Try
Dim oResponse = _channel.ReturnScalarValue(New GetScalarValueRequest() With {
Dim oResponse = Channel.ReturnScalarValue(New GetScalarValueRequest() With {
.SqlCommand = pSQL,
.NamedDatabase = DatabaseName.IDB,
.ConnectionId = pConnectionId
})
Return oResponse
Catch ex As Exception
_logger.Error(ex)
Logger.Error(ex)
Throw ex
End Try
End Function
Public Async Function GetScalarValueFromIDBAsync(pSQL As String, Optional pConnectionId As Integer = 0) As Task(Of GetScalarValueResponse)
Try
Dim oResponse = Await _channel.ReturnScalarValueAsync(New GetScalarValueRequest() With {
Dim oResponse = Await Channel.ReturnScalarValueAsync(New GetScalarValueRequest() With {
.SqlCommand = pSQL,
.NamedDatabase = DatabaseName.IDB,
.ConnectionId = pConnectionId
})
Return oResponse
Catch ex As Exception
_logger.Error(ex)
Logger.Error(ex)
Throw ex
End Try
End Function
Public Function GetDatatableByName(DatatableName As String, Optional FilterExpression As String = "", Optional SortByColumn As String = "") As TableResult
Try
Dim oResponse = _channel.ReturnDatatableFromCache(DatatableName, FilterExpression, SortByColumn)
Dim oResponse = Channel.ReturnDatatableFromCache(DatatableName, FilterExpression, SortByColumn)
Return oResponse
Catch ex As Exception
_logger.Error(ex)
Logger.Error(ex)
Throw ex
End Try
End Function
Public Async Function GetDatatableByNameAsync(DatatableName As String, Optional FilterExpression As String = "", Optional SortByColumn As String = "") As Task(Of TableResult)
Try
Dim oResponse = _channel.ReturnDatatableFromCache(DatatableName, FilterExpression, SortByColumn)
Dim oResponse = Await Channel.ReturnDatatableFromCacheAsync(DatatableName, FilterExpression, SortByColumn)
Return oResponse
Catch ex As Exception
_logger.Error(ex)
Logger.Error(ex)
Throw ex
End Try
End Function
@@ -618,7 +646,7 @@ Public Class Client
''' <returns></returns>
Public Function GetDocumentInfo(UserId As Long, ObjectId As Long) As DocumentInfo
Try
Dim oResponse As DocumentInfoResponse = _channel.GetFileInfoByObjectId(New DocumentInfoRequest With {
Dim oResponse As DocumentInfoResponse = Channel.GetFileInfoByObjectId(New DocumentInfoRequest With {
.ObjectId = ObjectId,
.UserId = UserId
})
@@ -629,15 +657,15 @@ Public Class Client
}
Catch ex As FaultException(Of ObjectDoesNotExistFault)
_logger.Error(ex)
Logger.Error(ex)
Throw ex
Catch ex As FaultException
_logger.Error(ex)
Logger.Error(ex)
Throw ex
Catch ex As Exception
_logger.Error(ex)
Logger.Error(ex)
Throw ex
End Try
@@ -649,14 +677,14 @@ Public Class Client
.ObjectId = ObjectId,
.UserId = UserId
}
Dim oResponse As DocumentInfoResponse = Await _channel.GetFileInfoByObjectIdAsync(oParams)
Dim oResponse As DocumentInfoResponse = Await Channel.GetFileInfoByObjectIdAsync(oParams)
Return New DocumentInfo With {
.AccessRight = oResponse.FileRight,
.FullPath = oResponse.FullPath
}
Catch ex As Exception
_logger.Error(ex)
Logger.Error(ex)
Throw ex
End Try
End Function
@@ -669,14 +697,14 @@ Public Class Client
''' <returns>A channel object</returns>
Private Function GetChannel() As IEDMIServiceChannel
Try
_logger.Debug("...Creating channel..")
Dim oChannel = _channelFactory.CreateChannel()
Logger.Debug("...Creating channel..")
Dim oChannel = ChannelFactory.CreateChannel()
AddHandler oChannel.Faulted, AddressOf Reconnect
Return oChannel
Catch ex As Exception
_logger.Error(ex)
Logger.Error(ex)
Throw ex
End Try
End Function

View File

@@ -4,6 +4,7 @@
<xsd:schema targetNamespace="http://DigitalData.Services.EDMIService/Imports">
<xsd:import namespace="http://DigitalData.Services.EDMIService" />
<xsd:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
<xsd:import namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<xsd:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Exceptions" />
<xsd:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" />
<xsd:import namespace="http://schemas.datacontract.org/2004/07/System" />
@@ -17,7 +18,6 @@
<xsd:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Modules.ZooFlow.State" />
<xsd:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.SetAttributeValue" />
<xsd:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.GlobalIndexer.ImportFile" />
<xsd:import namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<xsd:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.GetFileObject" />
<xsd:import namespace="http://schemas.microsoft.com/Message" />
<xsd:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Modules.EDMI.API" />
@@ -29,6 +29,12 @@
<wsdl:message name="IEDMIService_Heartbeat_OutputMessage">
<wsdl:part name="parameters" element="tns:HeartbeatResponse" />
</wsdl:message>
<wsdl:message name="IEDMIService_GetCachedTables_InputMessage">
<wsdl:part name="parameters" element="tns:GetCachedTables" />
</wsdl:message>
<wsdl:message name="IEDMIService_GetCachedTables_OutputMessage">
<wsdl:part name="parameters" element="tns:GetCachedTablesResponse" />
</wsdl:message>
<wsdl:message name="IEDMIService_ReturnDatatableFromCache_InputMessage">
<wsdl:part name="parameters" element="tns:ReturnDatatableFromCache" />
</wsdl:message>
@@ -203,6 +209,10 @@
<wsdl:input wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/Heartbeat" message="tns:IEDMIService_Heartbeat_InputMessage" />
<wsdl:output wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/HeartbeatResponse" message="tns:IEDMIService_Heartbeat_OutputMessage" />
</wsdl:operation>
<wsdl:operation name="GetCachedTables">
<wsdl:input wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/GetCachedTables" message="tns:IEDMIService_GetCachedTables_InputMessage" />
<wsdl:output wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/GetCachedTablesResponse" message="tns:IEDMIService_GetCachedTables_OutputMessage" />
</wsdl:operation>
<wsdl:operation name="ReturnDatatableFromCache">
<wsdl:input wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/ReturnDatatableFromCache" message="tns:IEDMIService_ReturnDatatableFromCache_InputMessage" />
<wsdl:output wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/ReturnDatatableFromCacheResponse" message="tns:IEDMIService_ReturnDatatableFromCache_OutputMessage" />

View File

@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://DigitalData.Services.EDMIService" elementFormDefault="qualified" targetNamespace="http://DigitalData.Services.EDMIService" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<xs:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" />
<xs:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.Database.GetDatatable" />
<xs:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.Database.GetScalarValue" />
@@ -21,6 +22,18 @@
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="GetCachedTables">
<xs:complexType>
<xs:sequence />
</xs:complexType>
</xs:element>
<xs:element name="GetCachedTablesResponse">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="GetCachedTablesResult" nillable="true" type="q1:ArrayOfstring" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ReturnDatatableFromCache">
<xs:complexType>
<xs:sequence>
@@ -33,35 +46,35 @@
<xs:element name="ReturnDatatableFromCacheResponse">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q1="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" minOccurs="0" name="ReturnDatatableFromCacheResult" nillable="true" type="q1:TableResult" />
<xs:element xmlns:q2="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" minOccurs="0" name="ReturnDatatableFromCacheResult" nillable="true" type="q2:TableResult" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ReturnDatatable">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q2="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.Database.GetDatatable" minOccurs="0" name="pData" nillable="true" type="q2:GetDatatableRequest" />
<xs:element xmlns:q3="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.Database.GetDatatable" minOccurs="0" name="pData" nillable="true" type="q3:GetDatatableRequest" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ReturnDatatableResponse">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q3="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.Database.GetDatatable" minOccurs="0" name="ReturnDatatableResult" nillable="true" type="q3:GetDatatableResponse" />
<xs:element xmlns:q4="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.Database.GetDatatable" minOccurs="0" name="ReturnDatatableResult" nillable="true" type="q4:GetDatatableResponse" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ReturnScalarValue">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q4="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.Database.GetScalarValue" minOccurs="0" name="pData" nillable="true" type="q4:GetScalarValueRequest" />
<xs:element xmlns:q5="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.Database.GetScalarValue" minOccurs="0" name="pData" nillable="true" type="q5:GetScalarValueRequest" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ReturnScalarValueResponse">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q5="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.Database.GetScalarValue" minOccurs="0" name="ReturnScalarValueResult" nillable="true" type="q5:GetScalarValueResponse" />
<xs:element xmlns:q6="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.Database.GetScalarValue" minOccurs="0" name="ReturnScalarValueResult" nillable="true" type="q6:GetScalarValueResponse" />
</xs:sequence>
</xs:complexType>
</xs:element>
@@ -75,7 +88,7 @@
<xs:element name="ReturnDatatable_FirebirdResponse">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q6="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" minOccurs="0" name="ReturnDatatable_FirebirdResult" nillable="true" type="q6:TableResult" />
<xs:element xmlns:q7="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" minOccurs="0" name="ReturnDatatable_FirebirdResult" nillable="true" type="q7:TableResult" />
</xs:sequence>
</xs:complexType>
</xs:element>
@@ -89,7 +102,7 @@
<xs:element name="ReturnScalar_FirebirdResponse">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q7="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" minOccurs="0" name="ReturnScalar_FirebirdResult" nillable="true" type="q7:ScalarResult" />
<xs:element xmlns:q8="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" minOccurs="0" name="ReturnScalar_FirebirdResult" nillable="true" type="q8:ScalarResult" />
</xs:sequence>
</xs:complexType>
</xs:element>
@@ -103,7 +116,7 @@
<xs:element name="ExecuteNonQuery_FirebirdResponse">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q8="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" minOccurs="0" name="ExecuteNonQuery_FirebirdResult" nillable="true" type="q8:NonQueryResult" />
<xs:element xmlns:q9="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" minOccurs="0" name="ExecuteNonQuery_FirebirdResult" nillable="true" type="q9:NonQueryResult" />
</xs:sequence>
</xs:complexType>
</xs:element>
@@ -117,7 +130,7 @@
<xs:element name="ReturnDatatable_MSSQL_IDBResponse">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q9="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" minOccurs="0" name="ReturnDatatable_MSSQL_IDBResult" nillable="true" type="q9:TableResult" />
<xs:element xmlns:q10="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" minOccurs="0" name="ReturnDatatable_MSSQL_IDBResult" nillable="true" type="q10:TableResult" />
</xs:sequence>
</xs:complexType>
</xs:element>
@@ -131,7 +144,7 @@
<xs:element name="ReturnScalar_MSSQL_IDBResponse">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q10="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" minOccurs="0" name="ReturnScalar_MSSQL_IDBResult" nillable="true" type="q10:ScalarResult" />
<xs:element xmlns:q11="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" minOccurs="0" name="ReturnScalar_MSSQL_IDBResult" nillable="true" type="q11:ScalarResult" />
</xs:sequence>
</xs:complexType>
</xs:element>
@@ -145,7 +158,7 @@
<xs:element name="ExecuteNonQuery_MSSQL_IDBResponse">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q11="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" minOccurs="0" name="ExecuteNonQuery_MSSQL_IDBResult" nillable="true" type="q11:NonQueryResult" />
<xs:element xmlns:q12="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" minOccurs="0" name="ExecuteNonQuery_MSSQL_IDBResult" nillable="true" type="q12:NonQueryResult" />
</xs:sequence>
</xs:complexType>
</xs:element>
@@ -159,7 +172,7 @@
<xs:element name="ReturnDatatable_MSSQL_ECMResponse">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q12="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" minOccurs="0" name="ReturnDatatable_MSSQL_ECMResult" nillable="true" type="q12:TableResult" />
<xs:element xmlns:q13="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" minOccurs="0" name="ReturnDatatable_MSSQL_ECMResult" nillable="true" type="q13:TableResult" />
</xs:sequence>
</xs:complexType>
</xs:element>
@@ -173,7 +186,7 @@
<xs:element name="ReturnScalar_MSSQL_ECMResponse">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q13="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" minOccurs="0" name="ReturnScalar_MSSQL_ECMResult" nillable="true" type="q13:ScalarResult" />
<xs:element xmlns:q14="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" minOccurs="0" name="ReturnScalar_MSSQL_ECMResult" nillable="true" type="q14:ScalarResult" />
</xs:sequence>
</xs:complexType>
</xs:element>
@@ -187,63 +200,63 @@
<xs:element name="ExecuteNonQuery_MSSQL_ECMResponse">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q14="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" minOccurs="0" name="ExecuteNonQuery_MSSQL_ECMResult" nillable="true" type="q14:NonQueryResult" />
<xs:element xmlns:q15="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" minOccurs="0" name="ExecuteNonQuery_MSSQL_ECMResult" nillable="true" type="q15:NonQueryResult" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="NewFile">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q15="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.NewFile" minOccurs="0" name="Data" nillable="true" type="q15:NewFileRequest" />
<xs:element xmlns:q16="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.NewFile" minOccurs="0" name="Data" nillable="true" type="q16:NewFileRequest" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="NewFileResponse">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q16="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.NewFile" minOccurs="0" name="NewFileResult" nillable="true" type="q16:NewFileResponse" />
<xs:element xmlns:q17="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.NewFile" minOccurs="0" name="NewFileResult" nillable="true" type="q17:NewFileResponse" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SetAttributeValue">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q17="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.SetAttributeValue" minOccurs="0" name="Data" nillable="true" type="q17:SetAttributeValueRequest" />
<xs:element xmlns:q18="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.SetAttributeValue" minOccurs="0" name="Data" nillable="true" type="q18:SetAttributeValueRequest" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SetAttributeValueResponse">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q18="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.SetAttributeValue" minOccurs="0" name="SetAttributeValueResult" nillable="true" type="q18:SetAttributeValueResponse" />
<xs:element xmlns:q19="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.SetAttributeValue" minOccurs="0" name="SetAttributeValueResult" nillable="true" type="q19:SetAttributeValueResponse" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ImportFile">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q19="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.GlobalIndexer.ImportFile" minOccurs="0" name="Data" nillable="true" type="q19:ImportFileRequest" />
<xs:element xmlns:q20="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.GlobalIndexer.ImportFile" minOccurs="0" name="Data" nillable="true" type="q20:ImportFileRequest" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ImportFileResponse">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q20="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.GlobalIndexer.ImportFile" minOccurs="0" name="ImportFileResult" nillable="true" type="q20:ImportFileResponse" />
<xs:element xmlns:q21="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.GlobalIndexer.ImportFile" minOccurs="0" name="ImportFileResult" nillable="true" type="q21:ImportFileResponse" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="GetFileObject">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q21="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.GetFileObject" minOccurs="0" name="Data" nillable="true" type="q21:GetFileObjectRequest" />
<xs:element xmlns:q22="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.GetFileObject" minOccurs="0" name="Data" nillable="true" type="q22:GetFileObjectRequest" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="GetFileObjectResponse">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q22="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.GetFileObject" minOccurs="0" name="GetFileObjectResult" nillable="true" type="q22:GetFileObjectResponse" />
<xs:element xmlns:q23="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.GetFileObject" minOccurs="0" name="GetFileObjectResult" nillable="true" type="q23:GetFileObjectResponse" />
</xs:sequence>
</xs:complexType>
</xs:element>
@@ -257,7 +270,7 @@
<xs:element name="DocumentStreamResponse">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q23="http://schemas.microsoft.com/Message" name="FileContents" type="q23:StreamBody" />
<xs:element xmlns:q24="http://schemas.microsoft.com/Message" name="FileContents" type="q24:StreamBody" />
</xs:sequence>
</xs:complexType>
</xs:element>
@@ -273,7 +286,7 @@
<xs:element name="DocumentInfoResponse">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q24="http://schemas.datacontract.org/2004/07/DigitalData.Modules.EDMI.API" minOccurs="0" name="FileRight" type="q24:Rights.AccessRight" />
<xs:element xmlns:q25="http://schemas.datacontract.org/2004/07/DigitalData.Modules.EDMI.API" minOccurs="0" name="FileRight" type="q25:Rights.AccessRight" />
<xs:element minOccurs="0" name="FullPath" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>

View File

@@ -26,6 +26,7 @@
<MetadataFile FileName="service.wsdl" MetadataType="Wsdl" ID="63e6618a-fa84-4922-b771-92728dee5bd0" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
<MetadataFile FileName="DigitalData.Services.EDMIService.xsd" MetadataType="Schema" ID="8b75b395-459e-4678-b979-5e50ebd6a173" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
<MetadataFile FileName="service.xsd" MetadataType="Schema" ID="1d0f216a-7f01-4129-a6bf-26e91c5e631d" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
<MetadataFile FileName="Arrays.xsd" MetadataType="Schema" ID="74eac9b3-9049-499b-bf42-5e443530645c" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
<MetadataFile FileName="DigitalData.Services.EDMIService.Messages.xsd" MetadataType="Schema" ID="e5cf75a6-ec46-4c8a-867b-a1c0a9ce8894" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
<MetadataFile FileName="System.xsd" MetadataType="Schema" ID="e0db7004-6943-4cf8-b88f-4811ed14a341" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
<MetadataFile FileName="System.Data.xsd" MetadataType="Schema" ID="6c7bdb47-eea4-4d03-bc52-9747c865bbf0" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
@@ -39,7 +40,6 @@
<MetadataFile FileName="DigitalData.Modules.ZooFlow.State.xsd" MetadataType="Schema" ID="c9ca2958-d16e-444e-ac34-40fc3c6a86cb" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
<MetadataFile FileName="DigitalData.Services.EDMIService.Methods.SetAttributeValue.xsd" MetadataType="Schema" ID="a34a2b84-4efd-4be1-83ee-bcb340176a49" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
<MetadataFile FileName="DigitalData.Services.EDMIService.Methods.GlobalIndexer.ImportFile.xsd" MetadataType="Schema" ID="4c9227ac-82b3-4aff-bcb3-eab453dc69c5" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
<MetadataFile FileName="Arrays.xsd" MetadataType="Schema" ID="74eac9b3-9049-499b-bf42-5e443530645c" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
<MetadataFile FileName="DigitalData.Services.EDMIService.Methods.GetFileObject.xsd" MetadataType="Schema" ID="39eb9e73-dc51-4849-bb13-09c4d0753ad3" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
<MetadataFile FileName="Message.xsd" MetadataType="Schema" ID="2589e82f-d68f-4843-b153-a80edf895f82" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
<MetadataFile FileName="DigitalData.Modules.EDMI.API.xsd" MetadataType="Schema" ID="4eca5a54-795a-4e5b-a3b1-10c24930efec" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />

View File

@@ -110,6 +110,7 @@ Namespace EDMIServiceReference
System.Runtime.Serialization.DataContractAttribute(Name:="ScalarResult", [Namespace]:="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages"& _
""), _
System.SerializableAttribute(), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(String())), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.TableResult)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.BaseResponse)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.NonQueryResult)), _
@@ -137,7 +138,6 @@ Namespace EDMIServiceReference
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.SetAttributeValueResponse)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.ImportFileRequest)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.ImportFileResponse)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(String())), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GetFileObjectRequest)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GetFileObjectResponse)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.FileObject)), _
@@ -201,6 +201,7 @@ Namespace EDMIServiceReference
System.Runtime.Serialization.DataContractAttribute(Name:="GetScalarValueResponse", [Namespace]:="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods."& _
"Database.GetScalarValue"), _
System.SerializableAttribute(), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(String())), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.TableResult)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.BaseResponse)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.ScalarResult)), _
@@ -228,7 +229,6 @@ Namespace EDMIServiceReference
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.SetAttributeValueResponse)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.ImportFileRequest)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.ImportFileResponse)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(String())), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GetFileObjectRequest)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GetFileObjectResponse)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.FileObject)), _
@@ -1749,6 +1749,12 @@ Namespace EDMIServiceReference
<System.ServiceModel.OperationContractAttribute(Action:="http://DigitalData.Services.EDMIService/IEDMIService/Heartbeat", ReplyAction:="http://DigitalData.Services.EDMIService/IEDMIService/HeartbeatResponse")> _
Function HeartbeatAsync() As System.Threading.Tasks.Task(Of Boolean)
<System.ServiceModel.OperationContractAttribute(Action:="http://DigitalData.Services.EDMIService/IEDMIService/GetCachedTables", ReplyAction:="http://DigitalData.Services.EDMIService/IEDMIService/GetCachedTablesResponse")> _
Function GetCachedTables() As String()
<System.ServiceModel.OperationContractAttribute(Action:="http://DigitalData.Services.EDMIService/IEDMIService/GetCachedTables", ReplyAction:="http://DigitalData.Services.EDMIService/IEDMIService/GetCachedTablesResponse")> _
Function GetCachedTablesAsync() As System.Threading.Tasks.Task(Of String())
<System.ServiceModel.OperationContractAttribute(Action:="http://DigitalData.Services.EDMIService/IEDMIService/ReturnDatatableFromCache", ReplyAction:="http://DigitalData.Services.EDMIService/IEDMIService/ReturnDatatableFromCacheResp"& _
"onse"), _
System.ServiceModel.FaultContractAttribute(GetType(EDMIServiceReference.UnexpectedErrorFault), Action:="http://DigitalData.Services.EDMIService/IEDMIService/ReturnDatatableFromCacheUnex"& _
@@ -2143,6 +2149,14 @@ Namespace EDMIServiceReference
Return MyBase.Channel.HeartbeatAsync
End Function
Public Function GetCachedTables() As String() Implements EDMIServiceReference.IEDMIService.GetCachedTables
Return MyBase.Channel.GetCachedTables
End Function
Public Function GetCachedTablesAsync() As System.Threading.Tasks.Task(Of String()) Implements EDMIServiceReference.IEDMIService.GetCachedTablesAsync
Return MyBase.Channel.GetCachedTablesAsync
End Function
Public Function ReturnDatatableFromCache(ByVal Name As String, ByVal FilterExpression As String, ByVal SortByColumn As String) As EDMIServiceReference.TableResult Implements EDMIServiceReference.IEDMIService.ReturnDatatableFromCache
Return MyBase.Channel.ReturnDatatableFromCache(Name, FilterExpression, SortByColumn)
End Function

View File

@@ -50,6 +50,15 @@
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetCachedTables">
<soap12:operation soapAction="http://DigitalData.Services.EDMIService/IEDMIService/GetCachedTables" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="ReturnDatatableFromCache">
<soap12:operation soapAction="http://DigitalData.Services.EDMIService/IEDMIService/ReturnDatatableFromCache" style="document" />
<wsdl:input>

View File

@@ -11,25 +11,41 @@ Public Class DatabaseWithFallback
Private ReadOnly _DatabaseEDM As MSSQLServer
Private ReadOnly _DatabaseIDB As MSSQLServer
Public Enum TableType
TBIDB_ATTRIBUTE
End Enum
''' <summary>
''' Options for GetDatatable
''' </summary>
Public Class GetDatatableOptions
Public ReadOnly FallbackSQL
Public ReadOnly FallbackType
Public Class Table
Public TableName As String
Public SQLCommand As String
Public DatabaseType As Constants.DatabaseType
''' <summary>
''' Filter expression for the cached Datatable
''' </summary>
Public Property FilterExpression As String = ""
''' <summary>
''' Columns to sort the cached Datatable by
''' </summary>
Public Property SortByColumn As String = ""
''' <summary>
''' Force the fallback, skipping the service completely
''' </summary>
Public Property ForceFallback As Boolean = False
''' <summary>
''' Connection Id to use, references TBDD_CONNECTION
''' </summary>
Public Property ConnectionId As Integer = 0
''' <summary>
''' Creates a new options object for GetDatatable options
''' </summary>
''' <param name="pFallbackSQL">SQL Command to execute as fallback</param>
''' <param name="pFallbackType">Named Database to use for the fallback SQL Command</param>
Public Sub New(pFallbackSQL As String, pFallbackType As Constants.DatabaseType)
FallbackSQL = pFallbackSQL
FallbackType = pFallbackType
End Sub
End Class
Public Property Tables As New List(Of Table) From {
New Table With {
.DatabaseType = Constants.DatabaseType.IDB,
.TableName = "TBIDB_ATTRIBUTE",
.SQLCommand = "SELECT * FROM TBIDB_ATTRIBUTE"
}
}
Public Sub New(LogConfig As LogConfig, Client As Client, DatabaseECM As MSSQLServer, DatabaseIDB As MSSQLServer)
_Logger = LogConfig.GetLogger()
_Client = Client
@@ -37,42 +53,95 @@ Public Class DatabaseWithFallback
_DatabaseIDB = DatabaseIDB
End Sub
Public Function GetDatatable(pDataTableName As String, pFallbackSQL As String, pFallbackType As Constants.DatabaseType, Optional pFilterExpression As String = "", Optional pSortByColumn As String = "", Optional pForceFallback As Boolean = False) As DataTable
''' <summary>
''' Returns a Datatable by trying to fetch a cached version from the service, then querying the database through the service and querying the database directly as fallback.
''' </summary>
''' <param name="pDataTableName">Name of the Cached Datatable</param>
''' <param name="pOptions">Options object</param>
Public Function GetDatatable(pDataTableName As String, pOptions As GetDatatableOptions) As DataTable
Return GetDatatable(pDataTableName, pOptions.FallbackSQL, pOptions.FallbackType, pOptions.FilterExpression, pOptions.SortByColumn, pOptions.ForceFallback, pOptions.ConnectionId)
End Function
''' <summary>
''' Returns a datatable directly from the database.
''' </summary>
''' <param name="pOptions">Options object</param>
Public Function GetDatatable(pOptions As GetDatatableOptions) As DataTable
Dim oForceFallback = True
Return GetDatatable("FORCE_FALLBACK", pOptions.FallbackSQL, pOptions.FallbackType, pOptions.FilterExpression, pOptions.SortByColumn, oForceFallback, pOptions.ConnectionId)
End Function
''' <summary>
''' Returns a Datatable by trying to fetch a cached version from the service, then querying the database through the service and querying the database directly as fallback.
''' </summary>
''' <param name="pDataTableName">Name of the Cached Datatable</param>
''' <param name="pFallbackSQL">SQL Command to execute as fallback</param>
''' <param name="pFallbackType">Named Database to use for the fallback SQL Command</param>
''' <param name="pFilterExpression">Filter expression for the cached Datatable</param>
''' <param name="pSortByColumn">Columns to sort the cached Datatable by</param>
''' <param name="pForceFallback">Force the fallback, skipping the service completely</param>
''' <param name="pConnectionId">Connection Id to use, references TBDD_CONNECTION</param>
Public Function GetDatatable(pDataTableName As String, pFallbackSQL As String, pFallbackType As Constants.DatabaseType, Optional pFilterExpression As String = "", Optional pSortByColumn As String = "", Optional pForceFallback As Boolean = False, Optional pConnectionId As Integer = 0) As DataTable
Try
Dim oResult As DataTable = Nothing
Dim oTableResult As TableResult = Nothing
If pForceFallback = False Then
Dim oTableResult As TableResult
Try
oTableResult = _Client.GetDatatableByName(pDataTableName, pFilterExpression, pSortByColumn)
Catch ex As Exception
_Logger.Error(ex)
oTableResult = Nothing
End Try
If oTableResult Is Nothing OrElse oTableResult.OK = False Then
_Logger.Warn("Datatable [{0}] could not be fetched from AppServer Cache. Falling back to direct Database Access.", pDataTableName)
Return GetDatatableFromDatabase(pFallbackSQL, pFallbackType)
End If
Return oTableResult.Table
Else
Return GetDatatableFromDatabase(pFallbackSQL, pFallbackType)
' If there is no client, we assume there is no service (configured)
If _Client Is Nothing Then
Return GetDatatableFromDatabase(pFallbackSQL, pFallbackType, pConnectionId)
End If
' If ForceFallback flag is set, we go to database immediately
If pForceFallback Then
Return GetDatatableFromDatabase(pFallbackSQL, pFallbackType, pConnectionId)
End If
' If the table is not cached, we go to database immediately
If Not IsTableCached(pDataTableName) Then
Return GetDatatableFromDatabase(pFallbackSQL, pFallbackType, pConnectionId)
End If
' If there is a proper ConnectionId, we go to database immediately
If pConnectionId > 0 Then
Return GetDatatableFromDatabase(pFallbackSQL, pFallbackType, pConnectionId)
End If
Try
oTableResult = _Client.GetDatatableByName(pDataTableName, pFilterExpression, pSortByColumn)
Catch ex As Exception
_Logger.Error(ex)
oTableResult = Nothing
End Try
If oTableResult Is Nothing OrElse oTableResult.OK = False Then
_Logger.Warn("Datatable [{0}] could not be fetched from AppServer Cache. Falling back to direct Database Access.", pDataTableName)
Return GetDatatableFromDatabase(pFallbackSQL, pFallbackType, pConnectionId)
Else
Return oTableResult.Table
End If
Catch ex As Exception
_Logger.Error(ex)
Return Nothing
End Try
End Function
Private Function GetDatatableFromDatabase(SQLCommand As String, DatabaseType As Constants.DatabaseType)
Private Function IsTableCached(pName As String) As Boolean
If _Client Is Nothing Then
Return False
End If
Return _Client.CachedTables.Contains(pName.ToUpper)
End Function
Private Function GetDatatableFromDatabase(SQLCommand As String, DatabaseType As Constants.DatabaseType, pConnectionId As Integer)
Try
Select Case DatabaseType
Case DatabaseType.ECM
Case Constants.DatabaseType.ECM
Return _DatabaseEDM.GetDatatable(SQLCommand)
Case DatabaseType.IDB
Case Constants.DatabaseType.IDB
Return _DatabaseIDB.GetDatatable(SQLCommand)
Case Else

View File

@@ -13,7 +13,7 @@ Imports System.Runtime.InteropServices
<Assembly: AssemblyCompany("Digital Data")>
<Assembly: AssemblyProduct("EDMIAPI")>
<Assembly: AssemblyCopyright("Copyright © 2021")>
<Assembly: AssemblyTrademark("1.3.2.0")>
<Assembly: AssemblyTrademark("1.3.3.0")>
<Assembly: ComVisible(False)>
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.3.2.0")>
<Assembly: AssemblyFileVersion("1.3.2.0")>
<Assembly: AssemblyVersion("1.3.3.0")>
<Assembly: AssemblyFileVersion("1.3.3.0")>

View File

@@ -12,7 +12,7 @@ Imports System.Runtime.InteropServices
<Assembly: AssemblyDescription("")>
<Assembly: AssemblyCompany("")>
<Assembly: AssemblyProduct("Language")>
<Assembly: AssemblyCopyright("Copyright © 2021")>
<Assembly: AssemblyCopyright("Copyright © 2022")>
<Assembly: AssemblyTrademark("")>
<Assembly: ComVisible(False)>
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.4.0.0")>
<Assembly: AssemblyFileVersion("1.4.0.0")>
<Assembly: AssemblyVersion("1.5.0.0")>
<Assembly: AssemblyFileVersion("1.5.0.0")>

View File

@@ -191,4 +191,15 @@ Public Class Utils
Return False
End Function
Public Shared Function BytesToString(ByteCount As Long) As String
Dim oSuffixes As New List(Of String) From {"B", "KB", "MB", "GB", "TB", "PB", "EB"}
If ByteCount = 0 Then
Return "0" & oSuffixes.First()
End If
Dim oBytes = Math.Abs(ByteCount)
Dim oIndex = Convert.ToInt32(Math.Floor(Math.Log(oBytes, 1024)))
Dim oNum = Math.Round(oBytes / Math.Pow(1024, oIndex), 1)
Return (Math.Sign(ByteCount) * oNum).ToString() & oSuffixes.Item(oIndex)
End Function
End Class

View File

@@ -91,6 +91,15 @@ Public Class EDMIService
#End Region
#Region "=== Database ==="
Public Function GetCachedTables() As List(Of String) Implements IEDMIService.GetCachedTables
Try
Return GlobalState.GetCachedTables()
Catch ex As Exception
_Logger.Error(ex)
Return New List(Of String)
End Try
End Function
Public Function ReturnDatatableFromCache(Name As String, FilterExpression As String, SortByColumn As String) As TableResult Implements IEDMIService.ReturnDatatableFromCache
Dim oReturnDatatableFromCache As New GetDatatableFromCache.GetDatatableFromCacheMethod(LogConfig, MSSQL_IDB, MSSQL_ECM, GlobalState)
Dim oResult = oReturnDatatableFromCache.Run(New GetDatatableFromCache.GetDatatableFromCacheRequest With {

View File

@@ -33,6 +33,22 @@ Public Class GlobalState
FirstOrDefault()
End Function
Public Function GetCachedTables() As List(Of String)
Try
Dim oTables As DataTableCollection = TableStore.Tables
Dim oList As New List(Of String)
For Each oTable As DataTable In oTables
oList.Add(oTable.TableName)
Next
Return oList
Catch ex As Exception
_Logger.Error(ex)
Return New List(Of String)
End Try
End Function
Public Function GetConnectionString(pConnectionId As Long) As String
Dim oConnection = GetConnection(pConnectionId)
Dim oBuilder As New SqlConnectionStringBuilder With {

View File

@@ -15,6 +15,9 @@ Interface IEDMIService
#End Region
#Region "Database"
<OperationContract>
Function GetCachedTables() As List(Of String)
<OperationContract>
<FaultContract(GetType(UnexpectedErrorFault))>
<FaultContract(GetType(DataTableDoesNotExistFault))>

View File

@@ -13,7 +13,7 @@ Imports System.Runtime.InteropServices
<Assembly: AssemblyCompany("Digital Data")>
<Assembly: AssemblyProduct("EDMIService")>
<Assembly: AssemblyCopyright("Copyright © 2021")>
<Assembly: AssemblyTrademark("2.3.2.0")>
<Assembly: AssemblyTrademark("2.3.4.0")>
<Assembly: ComVisible(False)>
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.3.2.0")>
<Assembly: AssemblyFileVersion("2.3.2.0")>
<Assembly: AssemblyVersion("2.3.4.0")>
<Assembly: AssemblyFileVersion("2.3.4.0")>

View File

@@ -20,6 +20,7 @@ Public Class DatatableJob
Dim oCronJobTitle As String = oJobData.Item("CronJobTitle")
Dim oLogger As Logger = oLogConfig.GetLogger()
Dim oStopWatch As New Stopwatch()
Dim oResult As New JobResult()
oLogger.Info("Running Datatable Job [{0}]/[{1}]", context.JobDetail.Key, oCronJobTitle)
@@ -43,12 +44,18 @@ Public Class DatatableJob
oLogger.Debug("Datatable Name: {0}", oDatatableName)
oLogger.Debug("Connection Id: {0}", oConnectionId)
oStopWatch.Start()
Dim oConnectionString = oMSSQL.Get_ConnectionStringforID(oConnectionId)
Dim oDecryptedConnectionString = MSSQLServer.DecryptConnectionString(oConnectionString)
Dim oTable = oMSSQL.GetDatatableWithConnection(oSQL, oDecryptedConnectionString, COMMAND_SQL_TIMEOUT)
oTable.TableName = oDatatableName
oStopWatch.Stop()
oLogger.Debug("[Time] Getting Data From DB: {0}ms", oStopWatch.ElapsedMilliseconds)
oStopWatch.Restart()
Dim oView As DataView = Nothing
' This creates an Index for the columns specified in INDEX_COLUMNS to speed up calls to 'Table.Select'!
@@ -59,6 +66,10 @@ Public Class DatatableJob
}
End If
oStopWatch.Stop()
oLogger.Debug("[Time] Creating Indexes: {0}ms", oStopWatch.ElapsedMilliseconds)
oStopWatch.Restart()
oLogger.Debug("Result Datatable [{0}] contains [{1}] rows", oTable.TableName, oTable.Rows.Count)
Dim oResultTable = New JobResult.ResultTable() With {
@@ -81,6 +92,9 @@ Public Class DatatableJob
oResultTable.TableRelationColumn = oParentColumn
End If
oStopWatch.Stop()
oLogger.Debug("[Time] Adding Relations: {0}ms", oStopWatch.ElapsedMilliseconds)
oLogger.Info("Fetched Datatable [{0}]", oDatatableName)
oResult.Tables.Add(oResultTable)
Catch ex As Exception

View File

@@ -164,13 +164,14 @@ Public Class JobListener
Dim oName As String = Result.DetailRow.Item("DT_NAME")
Dim oDetailId As Integer = Result.DetailRow.Item("GUID")
Dim oDatatableNameTemp As String = oName & "-TEMP"
' Used for debugging relations and constraints
'_Logger.Debug("Dataset BEFORE saving datatables")
'ListTables(Dataset)
If Dataset.Tables.Contains(oName) Then
_Logger.Debug("Datatable [{0}] already exists, replacing.", oName)
' Replace existing table
If Result.ChildTable IsNot Nothing Then
ReplaceExistingTable(oName, oTable, Dataset, Result.ChildTable)
@@ -179,6 +180,8 @@ Public Class JobListener
ReplaceExistingTable(oName, oTable, Dataset)
End If
Else
_Logger.Debug("Datatable [{0}] does not exist yet, adding.", oName)
AddNewTable(oName, oTable, Dataset)
If Result.ChildTable IsNot Nothing Then
@@ -192,6 +195,11 @@ Public Class JobListener
'_Logger.Debug("Dataset AFTER saving datatables")
'ListTables(Dataset)
Dim oMemoryUsage = GC.GetTotalMemory(True)
Dim oUsageString = Utils.BytesToString(oMemoryUsage)
_Logger.Debug("Estimated memory usage after Job is [{0}]", oUsageString)
_MSSQL.ExecuteNonQuery($"INSERT INTO TBAPPSERV_CRON_DETAIL_HISTORY (DETAIL_ID) VALUES ({oDetailId})")
Catch ex As Exception
_Logger.Warn("Unexpected error in JobListener: {0}", ex.Message)