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 FlowForm As New FlowFormConfig
Public Property SearchForm As New SearchFormConfig Public Property SearchForm As New SearchFormConfig
Public Property Globix As New GlobixConfig Public Property Globix As New GlobixConfig
Public Property SidebarScreen As String
Public Property SidebarOrientation As String
Public Class FlowFormConfig Public Class FlowFormConfig
Public Property Location As New Point(0, 0) Public Property Location As New Point(0, 0)
End Class 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"> <EmbeddedResource Include="Administration\frmSQLDesigner.resx">
<DependentUpon>frmSQLDesigner.vb</DependentUpon> <DependentUpon>frmSQLDesigner.vb</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="frmConfigBasic.resx">
<DependentUpon>frmConfigBasic.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmServiceConfig.resx"> <EmbeddedResource Include="frmServiceConfig.resx">
<DependentUpon>frmServiceConfig.vb</DependentUpon> <DependentUpon>frmServiceConfig.vb</DependentUpon>
</EmbeddedResource> </EmbeddedResource>

View File

@@ -1,6 +1,6 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _ <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class frmConfigBasic Partial Class frmConfigBasic
Inherits System.Windows.Forms.Form Inherits DevExpress.XtraBars.Ribbon.RibbonForm
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
<System.Diagnostics.DebuggerNonUserCode()> _ <System.Diagnostics.DebuggerNonUserCode()> _
@@ -22,9 +22,133 @@ Partial Class frmConfigBasic
'Das Bearbeiten mit dem Code-Editor ist nicht möglich. 'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
<System.Diagnostics.DebuggerStepThrough()> _ <System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent() 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.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(800, 450) 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" 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 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 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 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 End Class

View File

@@ -23,39 +23,39 @@ Partial Class frmConfigDatabase
<System.Diagnostics.DebuggerStepThrough()> _ <System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent() Private Sub InitializeComponent()
Me.LayoutControl1 = New DevExpress.XtraLayout.LayoutControl() 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.txtServerName = New DevExpress.XtraEditors.TextEdit()
Me.txtUserName = New DevExpress.XtraEditors.TextEdit() Me.txtUserName = New DevExpress.XtraEditors.TextEdit()
Me.txtPassword = New DevExpress.XtraEditors.TextEdit() Me.txtPassword = New DevExpress.XtraEditors.TextEdit()
Me.cmbDatabase = New DevExpress.XtraEditors.ComboBoxEdit() Me.cmbDatabase = New DevExpress.XtraEditors.ComboBoxEdit()
Me.btnTestConnection = New DevExpress.XtraEditors.SimpleButton()
Me.txtConnectionString = New DevExpress.XtraEditors.TextEdit() Me.txtConnectionString = New DevExpress.XtraEditors.TextEdit()
Me.chkWinAuth = New DevExpress.XtraEditors.CheckEdit() Me.chkWinAuth = New DevExpress.XtraEditors.CheckEdit()
Me.LayoutControlGroup1 = New DevExpress.XtraLayout.LayoutControlGroup()
Me.LayoutControlItem1 = New DevExpress.XtraLayout.LayoutControlItem() Me.LayoutControlItem1 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem2 = New DevExpress.XtraLayout.LayoutControlItem() Me.LayoutControlItem2 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem4 = New DevExpress.XtraLayout.LayoutControlItem() Me.LayoutControlItem4 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem3 = New DevExpress.XtraLayout.LayoutControlItem() Me.LayoutControlItem3 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem7 = New DevExpress.XtraLayout.LayoutControlItem() Me.LayoutControlItem7 = New DevExpress.XtraLayout.LayoutControlItem()
Me.LayoutControlItem6 = 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() CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.LayoutControl1.SuspendLayout() 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.txtServerName.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.txtUserName.Properties, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.txtUserName.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.txtPassword.Properties, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.txtPassword.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.cmbDatabase.Properties, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.cmbDatabase.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.txtConnectionString.Properties, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.txtConnectionString.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.chkWinAuth.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.LayoutControlItem1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem4, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem4, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem3, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem3, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem7, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.LayoutControlItem7, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.LayoutControlItem6, 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() Me.SuspendLayout()
' '
'LayoutControl1 'LayoutControl1
@@ -75,39 +75,6 @@ Partial Class frmConfigDatabase
Me.LayoutControl1.TabIndex = 0 Me.LayoutControl1.TabIndex = 0
Me.LayoutControl1.Text = "LayoutControl1" 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 'btnTestConnection
' '
Me.btnTestConnection.ImageOptions.SvgImage = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.actions_check4 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.TabIndex = 8
Me.btnTestConnection.Text = "Verbindung zur Datenbank herstellen" 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 '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.Name = "txtConnectionString"
Me.txtConnectionString.Properties.ReadOnly = True 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.StyleController = Me.LayoutControl1
Me.txtConnectionString.TabIndex = 9 Me.txtConnectionString.TabIndex = 9
' '
@@ -137,15 +163,6 @@ Partial Class frmConfigDatabase
Me.chkWinAuth.StyleController = Me.LayoutControl1 Me.chkWinAuth.StyleController = Me.LayoutControl1
Me.chkWinAuth.TabIndex = 10 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 'LayoutControlItem1
' '
Me.LayoutControlItem1.Control = Me.txtServerName Me.LayoutControlItem1.Control = Me.txtServerName
@@ -206,23 +223,6 @@ Partial Class frmConfigDatabase
Me.LayoutControlItem6.Text = "Aktueller Connectionstring:" Me.LayoutControlItem6.Text = "Aktueller Connectionstring:"
Me.LayoutControlItem6.TextSize = New System.Drawing.Size(142, 13) 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 'frmConfigDatabase
' '
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -233,21 +233,21 @@ Partial Class frmConfigDatabase
Me.Text = "Datenbank Verbindung" Me.Text = "Datenbank Verbindung"
CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControl1, System.ComponentModel.ISupportInitialize).EndInit()
Me.LayoutControl1.ResumeLayout(False) 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.txtServerName.Properties, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.txtUserName.Properties, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.txtUserName.Properties, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.txtPassword.Properties, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.txtPassword.Properties, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.cmbDatabase.Properties, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.cmbDatabase.Properties, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.txtConnectionString.Properties, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.txtConnectionString.Properties, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.chkWinAuth.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.LayoutControlItem1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem2, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem4, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem4, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem3, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem3, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem7, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.LayoutControlItem7, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.LayoutControlItem6, 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) Me.ResumeLayout(False)
End Sub End Sub

View File

@@ -30,12 +30,9 @@ Partial Class frmFlowForm
Dim SnapOptions1 As DevExpress.Utils.Controls.SnapOptions = New DevExpress.Utils.Controls.SnapOptions() Dim SnapOptions1 As DevExpress.Utils.Controls.SnapOptions = New DevExpress.Utils.Controls.SnapOptions()
Me.NotifyIcon = New System.Windows.Forms.NotifyIcon(Me.components) Me.NotifyIcon = New System.Windows.Forms.NotifyIcon(Me.components)
Me.ContextMenuSystray = New System.Windows.Forms.ContextMenuStrip(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.UserKonfigurationToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.DatenbankverbindungToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.DatenbankverbindungToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator() Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator()
Me.VerwaltungToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator() Me.ToolStripSeparator3 = New System.Windows.Forms.ToolStripSeparator()
Me.SucheTestToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.SucheTestToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.TestToolStripMenuItem = 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.ZooFlowBeendenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.TimerRefreshData = New System.Windows.Forms.Timer(Me.components) Me.TimerRefreshData = New System.Windows.Forms.Timer(Me.components)
Me.ToolTip1 = New System.Windows.Forms.ToolTip(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.TimerCheckActiveForms = New System.Windows.Forms.Timer(Me.components)
Me.TimerCheckDroppedFiles = 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.TimerFolderwatch = New System.Windows.Forms.Timer(Me.components)
Me.ToastNotificationsManager1 = New DevExpress.XtraBars.ToastNotifications.ToastNotificationsManager(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.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() 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.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.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() Me.SuspendLayout()
' '
'SplashScreenManager '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.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.Name = "ContextMenuSystray"
Me.ContextMenuSystray.Size = New System.Drawing.Size(174, 154) Me.ContextMenuSystray.Size = New System.Drawing.Size(181, 176)
'
'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"
' '
'UserKonfigurationToolStripMenuItem '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.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" Me.UserKonfigurationToolStripMenuItem.Text = "User Konfiguration"
' '
'DatenbankverbindungToolStripMenuItem 'DatenbankverbindungToolStripMenuItem
@@ -111,81 +97,36 @@ Partial Class frmFlowForm
'ToolStripSeparator1 'ToolStripSeparator1
' '
Me.ToolStripSeparator1.Name = "ToolStripSeparator1" Me.ToolStripSeparator1.Name = "ToolStripSeparator1"
Me.ToolStripSeparator1.Size = New System.Drawing.Size(170, 6) Me.ToolStripSeparator1.Size = New System.Drawing.Size(177, 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"
' '
'ToolStripSeparator3 'ToolStripSeparator3
' '
Me.ToolStripSeparator3.Name = "ToolStripSeparator3" Me.ToolStripSeparator3.Name = "ToolStripSeparator3"
Me.ToolStripSeparator3.Size = New System.Drawing.Size(170, 6) Me.ToolStripSeparator3.Size = New System.Drawing.Size(177, 6)
' '
'SucheTestToolStripMenuItem 'SucheTestToolStripMenuItem
' '
Me.SucheTestToolStripMenuItem.Name = "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)" Me.SucheTestToolStripMenuItem.Text = "Suche (Test)"
' '
'TestToolStripMenuItem 'TestToolStripMenuItem
' '
Me.TestToolStripMenuItem.Name = "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" Me.TestToolStripMenuItem.Text = "Test"
' '
'ToolStripSeparator2 'ToolStripSeparator2
' '
Me.ToolStripSeparator2.Name = "ToolStripSeparator2" Me.ToolStripSeparator2.Name = "ToolStripSeparator2"
Me.ToolStripSeparator2.Size = New System.Drawing.Size(170, 6) Me.ToolStripSeparator2.Size = New System.Drawing.Size(177, 6)
' '
'ZooFlowBeendenToolStripMenuItem 'ZooFlowBeendenToolStripMenuItem
' '
Me.ZooFlowBeendenToolStripMenuItem.Name = "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" 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 'TimerCheckActiveForms
' '
Me.TimerCheckActiveForms.Interval = 2000 Me.TimerCheckActiveForms.Interval = 2000
@@ -219,6 +160,32 @@ Partial Class frmFlowForm
Me.PictureBoxGlobix1.TabIndex = 15 Me.PictureBoxGlobix1.TabIndex = 15
Me.PictureBoxGlobix1.Text = "SvgImageBox1" 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 'PictureBoxSearch1
' '
Me.PictureBoxSearch1.Cursor = System.Windows.Forms.Cursors.Hand Me.PictureBoxSearch1.Cursor = System.Windows.Forms.Cursors.Hand
@@ -233,6 +200,46 @@ Partial Class frmFlowForm
Me.PictureBoxSearch1.TabIndex = 13 Me.PictureBoxSearch1.TabIndex = 13
Me.PictureBoxSearch1.Text = "SvgImageBox1" 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 'frmFlowForm
' '
Me.AllowDrop = True Me.AllowDrop = True
@@ -251,19 +258,19 @@ Partial Class frmFlowForm
Me.Controls.Add(Me.PictureBoxSearch1) Me.Controls.Add(Me.PictureBoxSearch1)
Me.Controls.Add(Me.PictureBoxDragDrop) Me.Controls.Add(Me.PictureBoxDragDrop)
Me.DoubleBuffered = True 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.IconOptions.Image = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.ZOO_FLOW__sysicon_256
Me.Name = "frmFlowForm" Me.Name = "frmFlowForm"
Me.Text = "ZooFlow" Me.Text = "ZooFlow"
Me.TopMost = True Me.TopMost = True
Me.ContextMenuSystray.ResumeLayout(False) 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.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.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) Me.ResumeLayout(False)
End Sub End Sub
@@ -292,4 +299,5 @@ Partial Class frmFlowForm
Friend WithEvents ToolStripSeparator3 As ToolStripSeparator Friend WithEvents ToolStripSeparator3 As ToolStripSeparator
Friend WithEvents SucheTestToolStripMenuItem As ToolStripMenuItem Friend WithEvents SucheTestToolStripMenuItem As ToolStripMenuItem
Friend WithEvents BehaviorManager1 As DevExpress.Utils.Behaviors.BehaviorManager Friend WithEvents BehaviorManager1 As DevExpress.Utils.Behaviors.BehaviorManager
Friend WithEvents BasisKonfigurationToolStripMenuItem As ToolStripMenuItem
End Class End Class

View File

@@ -1972,9 +1972,9 @@
<value>1079, 17</value> <value>1079, 17</value>
</metadata> </metadata>
<metadata name="ToastNotificationsManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <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>
<metadata name="BehaviorManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <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> </metadata>
</root> </root>

View File

@@ -13,149 +13,60 @@ Imports DigitalData.Modules.Messaging
Imports DigitalData.Modules.Windows Imports DigitalData.Modules.Windows
Public Class frmFlowForm Public Class frmFlowForm
#Region "Sidebar Variablen und Konstanten" #Region "Sidebar Declarations"
Public AppDeskData As AppDeskBar 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 fBarRegistered As Boolean = False 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
Public ret, i, uCallBack As Integer 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 Structure RECT
Public left As Integer Dim Left As Integer
Public top As Integer Dim Top As Integer
Public right As Integer Dim Right As Integer
Public bottom As Integer Dim Bottom As Integer
End Structure End Structure
Structure AppDeskBar
Public cbSize As Integer Const ABE_LEFT As Integer = 0
Public hWnd As IntPtr Const ABE_TOP As Integer = &H1
Public uCallbackMessage As Integer Const ABE_RIGHT As Integer = 2
Public uEdge As Integer Const ABE_BOTTOM As Integer = 3
Public rc As RECT
Public lParam As IntPtr Const ABM_NEW As Integer = 0
End Structure Const ABM_REMOVE As Integer = 1
Enum ABMsg Const ABM_QUERYPOS As Integer = 2
ABM_NEW = 0 Const ABM_SETPOS As Integer = &H3
ABM_REMOVE = 1 Const ABM_GETSTATE As Integer = 4
ABM_QUERYPOS = 2 Const ABM_GETTASKBARPOS As Integer = 5
ABM_SETPOS = 3 Const ABM_ACTIVATE As Integer = 6
ABM_GETSTATE = 4 Const ABM_GETAUTOHIDEBAR As Integer = 7
ABM_GETTASKBARPOS = 5 Const ABM_SETAUTOHIDEBAR As Integer = 8
ABM_ACTIVATE = 6 Const ABM_WINDOWPOSCHANGED As Integer = 9
ABM_GETAUTOHIDEBAR = 7
ABM_SETAUTOHIDEBAR = 8 Const ABS_AUTOHIDE As Integer = 1
ABM_WINDOWPOSCHANGED = 9 Const ABS_ALWAYSONTOP As Integer = 2
ABM_SETSTATE = 10
End Enum Const HWND_NOTTOPMOST As Integer = -2
Enum ABEdge Const HWND_TOPMOST As Integer = -1
ABE_LEFT = 0 Const HWND_TOP As Integer = 0
ABE_TOP Const SHOWNORMAL As Integer = 5
ABE_RIGHT
ABE_BOTTOM Const SWP_NOSIZE As Integer = &H1
End Enum Const SWP_NOMOVE As Short = &H2
Enum ABNotify Const SWP_NOZORDER As Integer = 4
ABN_STATECHANGE = 0 Const SWP_NOACTIVATE As Integer = &H10
ABN_POSCHANGED Const SWP_DRAWFRAME As Integer = &H20
ABN_FULLSCREENAPP Const SWP_SHOWWINDOW As Integer = &H40
ABN_WINDOWARRANGE
End Enum
#End Region #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 ' Constants
Private Const OPACITY_INITIAL = 0 Private Const OPACITY_INITIAL = 0
Private Const OPACITY_HIDDEN = 0.65 Private Const OPACITY_HIDDEN = 0.65
@@ -190,7 +101,7 @@ Public Class frmFlowForm
Private ESCHitCount As Integer = 0 Private ESCHitCount As Integer = 0
Private IndexForm As frmGlobix_Index Private IndexForm As frmGlobix_Index
Private AdminForm As frmAdmin_Start Private AdminForm As frmAdmin_Start
Private Const mSnapOffset As Integer = 35 Private Sidebar As APPBARDATA
' Events ' Events
Public Event ClipboardChanged As EventHandler(Of IDataObject) Public Event ClipboardChanged As EventHandler(Of IDataObject)
@@ -215,7 +126,10 @@ Public Class frmFlowForm
Init = New ClassInit(My.LogConfig, Me) Init = New ClassInit(My.LogConfig, Me)
AddHandler Init.Completed, AddressOf Init_Completed AddHandler Init.Completed, AddressOf Init_Completed
Init.InitializeApplication() Init.InitializeApplication()
'RegisterBar(ABEdge.ABE_RIGHT)
' Register Form as Sidebar
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
RegisterSidebar(My.UIConfig.SidebarScreen)
End Sub End Sub
Private Sub Init_Completed(sender As Object, e As EventArgs) Private Sub Init_Completed(sender As Object, e As EventArgs)
@@ -235,18 +149,13 @@ Public Class frmFlowForm
TopMost = True TopMost = True
AllowDrop = True AllowDrop = True
ShowInTaskbar = False ShowInTaskbar = False
Opacity = OPACITY_HIDDEN Opacity = OPACITY_SHOWN
Location = My.UIConfig.FlowForm.Location Location = My.UIConfig.FlowForm.Location
' === Setup Event Handlers === ' === Setup Event Handlers ===
AddHandler KeyDown, AddressOf frmFlowForm_KeyDown AddHandler KeyDown, AddressOf frmFlowForm_KeyDown
AddHandler KeyUp, 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 AddHandler Watcher.ClipboardChanged, AddressOf Watcher_ClipboardChanged
Dim oSQL = My.Queries.Common.FNIDB_GET_SEARCH_PROFILES(My.Application.User.UserId, My.Application.User.Language) 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 'TODO: Refresh Data
End Sub End Sub
Private Sub frmFlowForm_MouseLeave(sender As Object, e As EventArgs) Handles MyBase.MouseLeave 'Private Sub frmFlowForm_MouseLeave(sender As Object, e As EventArgs) Handles MyBase.MouseLeave
Opacity = OPACITY_HIDDEN ' Opacity = OPACITY_HIDDEN
End Sub 'End Sub
Private Sub frmFlowForm_MouseEnter(sender As Object, e As EventArgs) Handles Me.MouseEnter 'Private Sub frmFlowForm_MouseEnter(sender As Object, e As EventArgs) Handles Me.MouseEnter
Opacity = OPACITY_SHOWN ' Opacity = OPACITY_SHOWN
End Sub 'End Sub
Private Sub frmFlowForm_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) Handles Me.MouseMove, PictureBoxDragDrop.MouseMove 'Private Sub frmFlowForm_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) Handles Me.MouseMove, PictureBoxDragDrop.MouseMove
If e.Button = MouseButtons.Left Then ' If e.Button = MouseButtons.Left Then
NativeMethods.ReleaseCapture() ' NativeMethods.ReleaseCapture()
NativeMethods.SendMessage(Handle, NativeMethods.WM_NCLBUTTONDOWN, NativeMethods.HTCAPTION, 0) ' NativeMethods.SendMessage(Handle, NativeMethods.WM_NCLBUTTONDOWN, NativeMethods.HTCAPTION, 0)
End If ' End If
End Sub 'End Sub
Private Sub frmFlowForm_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs) Private Sub frmFlowForm_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs)
If e.KeyCode = Keys.Escape Then If e.KeyCode = Keys.Escape Then
@@ -431,7 +340,7 @@ Public Class frmFlowForm
Sub ExitZooflow() Sub ExitZooflow()
Dim oResult As DialogResult = MessageBox.Show("Exit Zooflow", "Are you sure you want to close ZooFlow?", MessageBoxButtons.YesNo, MessageBoxIcon.Question) 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 If oResult = DialogResult.Yes Then
Application.Exit() Close()
Else Else
ESCHitCount = 0 ESCHitCount = 0
End If End If
@@ -542,7 +451,7 @@ Public Class frmFlowForm
End If End If
Next Next
TimerCheckActiveForms.Enabled = False 'TimerCheckActiveForms.Enabled = False
Return True Return True
End Function End Function
@@ -550,35 +459,40 @@ Public Class frmFlowForm
frmConfigDatabase.ShowDialog() frmConfigDatabase.ShowDialog()
End 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 'Private Sub TimerCheckActiveForms_Tick(sender As Object, e As EventArgs) Handles TimerCheckActiveForms.Tick
End Sub ' Visible = FormLoaded_Visible()
' If Visible = False Then Exit Sub
'End Sub
Private Sub NotifyIcon_DoubleClick(sender As Object, e As EventArgs) Handles NotifyIcon.DoubleClick Private Sub NotifyIcon_DoubleClick(sender As Object, e As EventArgs) Handles NotifyIcon.DoubleClick
If Visible = False Then If Visible = False Then
Visible = True Visible = True
TimerCheckActiveForms.Enabled = False Else
Visible = False
'TimerCheckActiveForms.Enabled = False
End If End If
End Sub End Sub
Private Sub PictureBox1_DragEnter(sender As Object, e As DragEventArgs) Handles PictureBoxDragDrop.DragEnter Private Sub PictureBox1_DragEnter(sender As Object, e As DragEventArgs) Handles PictureBoxDragDrop.DragEnter
Drag_Enter(sender, e) Drag_Enter(sender, e)
End Sub End Sub
Sub Drag_Enter(sender As Object, e As DragEventArgs) Sub Drag_Enter(sender As Object, e As DragEventArgs)
If e.Data.GetDataPresent(DataFormats.FileDrop) Then If e.Data.GetDataPresent(DataFormats.FileDrop) Then
e.Effect = DragDropEffects.All e.Effect = DragDropEffects.All
' Console.WriteLine("DragEnter ...DragDrop")
ElseIf e.Data.GetDataPresent("FileGroupDescriptor") Then ElseIf e.Data.GetDataPresent("FileGroupDescriptor") Then 'handle a message dragged from Outlook
'handle a message dragged from Outlook
e.Effect = DragDropEffects.Copy e.Effect = DragDropEffects.Copy
' Console.WriteLine("DragEnter ...OutlookMessage")
ElseIf e.Data.GetDataPresent("aryFileGroupDescriptor") AndAlso (e.Data.GetDataPresent("FileContents")) Then ElseIf e.Data.GetDataPresent("aryFileGroupDescriptor") AndAlso (e.Data.GetDataPresent("FileContents")) Then
e.Effect = DragDropEffects.Copy e.Effect = DragDropEffects.Copy
' Console.WriteLine("DragEnter ...Attachment from Outlook")
Else Else
'otherwise, do not handle 'otherwise, do not handle
e.Effect = DragDropEffects.None e.Effect = DragDropEffects.None
End If End If
End Sub End Sub
Sub DragDropForm(e As DragEventArgs) Sub DragDropForm(e As DragEventArgs)
@@ -678,9 +592,10 @@ Public Class frmFlowForm
AddHandler IndexForm.FormClosed, AddressOf GlobixClosed AddHandler IndexForm.FormClosed, AddressOf GlobixClosed
IndexForm.Show() IndexForm.Show()
Cursor = Cursors.Default Cursor = Cursors.Default
If TimerCheckActiveForms.Enabled = False Then
TimerCheckActiveForms.Enabled = True 'If TimerCheckActiveForms.Enabled = False Then
End If ' TimerCheckActiveForms.Enabled = True
'End If
Catch ex As Exception Catch ex As Exception
ShowErrorMessage(ex) ShowErrorMessage(ex)
End Try End Try
@@ -1039,16 +954,43 @@ Public Class frmFlowForm
End Sub End Sub
Private Sub frmFlowForm_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing Private Sub frmFlowForm_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
'If fBarRegistered Then UnregisterSidebar()
' fBarRegistered = False End Sub
' '----NEW Private Sub RegisterSidebar(pScreenName As String)
' Dim abd As New AppDeskBar() Sidebar.hwnd = Me.Handle.ToInt32
' abd.cbSize = Marshal.SizeOf(abd) Sidebar.cbSize = Len(Sidebar)
' abd.hWnd = Me.Handle
' 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 '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 Sub
End Class End Class

View File

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

View File

@@ -2,6 +2,9 @@
''' This module is intended for often used constants and datastructures ''' 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!! ''' Therefor it is important that this module does not have any dependencies on other modules!!
''' </summary> ''' </summary>
Public Class Class1 Namespace Constants
Public Enum NamedDatabase
End Class 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.IO
Imports System.ServiceModel Imports System.ServiceModel
Imports System.Timers
Imports DigitalData.Modules.EDMI.API.Constants Imports DigitalData.Modules.EDMI.API.Constants
Imports DigitalData.Modules.EDMI.API.EDMIServiceReference Imports DigitalData.Modules.EDMI.API.EDMIServiceReference
Imports DigitalData.Modules.EDMI.API.Rights Imports DigitalData.Modules.EDMI.API.Rights
@@ -7,78 +8,34 @@ Imports DigitalData.Modules.Language.Utils
Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Logging
Public Class Client Public Class Client
' Constants
Private Const UPDATE_INTERVAL_IN_MINUTES As Integer = 1
Public Const INVALID_OBEJCT_ID As Long = 0 Public Const INVALID_OBEJCT_ID As Long = 0
Private Const KIND_TYPE_DOC = "DOC" Private Const KIND_TYPE_DOC = "DOC"
Private ReadOnly _LogConfig As LogConfig ' Helper Classes
Private ReadOnly _logger As Logger Private ReadOnly LogConfig As LogConfig
Private ReadOnly _channelFactory As ChannelFactory(Of IEDMIServiceChannel) Private ReadOnly Logger As Logger
Private ReadOnly _IPAddressServer As String Private ReadOnly FileEx As Filesystem.File
Private ReadOnly _PortServer As Integer
Private ReadOnly _FileEx As Filesystem.File
Private _channel As IEDMIServiceChannel
''' <summary> ' Runtime Variables
''' Creates a new EDMI Client object Private ReadOnly ServerAddress As String
''' </summary> Private ReadOnly ServerPort As Integer
''' <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 ' Channel
Dim oAddressArray() As String Private ReadOnly ChannelFactory As ChannelFactory(Of IEDMIServiceChannel)
Private Channel As IEDMIServiceChannel
If oServiceAddress.Contains(";") Then ' Update Timer
oAddressArray = oServiceAddress.Split(";") Private WithEvents UpdateTimer As New Timers.Timer
Else
oAddressArray = oServiceAddress.Split(":")
End If
Try ' Public Variables
_IPAddressServer = oAddressArray(0) Public CachedTables As New List(Of String)
_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
''' <summary> ''' <summary>
''' Parse a IPAddress:Port String into its parts ''' Parse a IPAddress:Port String into its parts
''' </summary> ''' </summary>
''' <param name="AddressWithOptionalPort"></param> ''' <param name="AddressWithOptionalPort"></param>
''' <returns></returns>
Public Shared Function ParseServiceAddress(AddressWithOptionalPort As String) As Tuple(Of String, Integer) Public Shared Function ParseServiceAddress(AddressWithOptionalPort As String) As Tuple(Of String, Integer)
Dim oSplit() As String = AddressWithOptionalPort.Split(":"c) Dim oSplit() As String = AddressWithOptionalPort.Split(":"c)
Dim oAppServerAddress As String = oSplit(0) Dim oAppServerAddress As String = oSplit(0)
@@ -95,22 +52,81 @@ Public Class Client
Return New Tuple(Of String, Integer)(oAppServerAddress, oAppServerPort) Return New Tuple(Of String, Integer)(oAppServerAddress, oAppServerPort)
End Function 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> ''' <summary>
''' Connect to the service ''' Connect to the service
''' </summary> ''' </summary>
''' <returns>True if connection was successful, false otherwise</returns> ''' <returns>True if connection was successful, false otherwise</returns>
Public Function Connect() As Boolean Public Function Connect() As Boolean
Try Try
_channel = GetChannel() Channel = GetChannel()
_logger.Debug("Opening channel..") Logger.Debug("Opening channel..")
_channel.Open() Channel.Open()
_logger.Info($"Connection to AppService {_IPAddressServer} successfully established!") Logger.Info($"Connection to AppService {ServerAddress} successfully established!")
Return True Return True
Catch ex As Exception Catch ex As Exception
_logger.Error(ex) Logger.Error(ex)
Return False Return False
End Try End Try
End Function End Function
@@ -119,17 +135,29 @@ Public Class Client
''' Aborts the channel and creates a new connection ''' Aborts the channel and creates a new connection
''' </summary> ''' </summary>
Public Sub Reconnect() Public Sub Reconnect()
_logger.Warn("Connection faulted. Trying to reconnect..") Logger.Warn("Connection faulted. Trying to reconnect..")
Try Try
_channel.Abort() Channel.Abort()
_channel = GetChannel() Channel = GetChannel()
_channel.Open() Channel.Open()
Catch ex As Exception Catch ex As Exception
_logger.Error(ex) Logger.Error(ex)
End Try End Try
End Sub 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> ''' <summary>
''' Imports a file from a filepath, creating a IDB ObjectId and Filesystem Object ''' Imports a file from a filepath, creating a IDB ObjectId and Filesystem Object
''' </summary> ''' </summary>
@@ -157,7 +185,7 @@ Public Class Client
Dim oFileName As String = oFileInfo.Name Dim oFileName As String = oFileInfo.Name
Dim oFileCreatedAt As Date = oFileInfo?.CreationTime Dim oFileCreatedAt As Date = oFileInfo?.CreationTime
Dim oFileModifiedAt As Date = oFileInfo?.LastWriteTime 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 ' Importing the file now
Using oFileStream As New FileStream(pFilePath, FileMode.Open, FileAccess.Read) Using oFileStream As New FileStream(pFilePath, FileMode.Open, FileAccess.Read)
@@ -165,7 +193,7 @@ Public Class Client
oFileStream.CopyTo(oMemoryStream) oFileStream.CopyTo(oMemoryStream)
Dim oContents = oMemoryStream.ToArray() Dim oContents = oMemoryStream.ToArray()
Dim oFileImportResponse = Await _channel.NewFileAsync(New NewFileRequest With { Dim oFileImportResponse = Await Channel.NewFileAsync(New NewFileRequest With {
.BusinessEntity = pBusinessEntity, .BusinessEntity = pBusinessEntity,
.File = New FileProperties With { .File = New FileProperties With {
.FileName = oFileInfo.Name, .FileName = oFileInfo.Name,
@@ -191,7 +219,7 @@ Public Class Client
End Using End Using
End Using End Using
Catch ex As Exception Catch ex As Exception
_logger.Error(ex) Logger.Error(ex)
Return INVALID_OBEJCT_ID Return INVALID_OBEJCT_ID
End Try End Try
End Function End Function
@@ -205,32 +233,32 @@ Public Class Client
pBusinessEntity As String, pBusinessEntity As String,
Optional pImportOptions As Options.ImportFileOptions = Nothing) As Task(Of ImportFileResponse) Optional pImportOptions As Options.ImportFileOptions = Nothing) As Task(Of ImportFileResponse)
Try 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) Return Await oImportFile.RunAsync(pFilePath, pProfileId, pAttributeValues, pObjectStoreName, pObjectKind, pBusinessEntity, pImportOptions)
Catch ex As Exception Catch ex As Exception
_logger.Error(ex) Logger.Error(ex)
Return Nothing Return Nothing
End Try End Try
End Function End Function
Public Function Zooflow_GetFileObject(pObjectId As Long, pLoadFileContents As Boolean) As FileObject Public Function Zooflow_GetFileObject(pObjectId As Long, pLoadFileContents As Boolean) As FileObject
Try 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) Dim oFileObject = oGetFileObject.Run(pObjectId, pLoadFileContents)
Return oFileObject Return oFileObject
Catch ex As Exception Catch ex As Exception
_logger.Error(ex) Logger.Error(ex)
Return Nothing Return Nothing
End Try End Try
End Function End Function
Public Async Function GetFileObjectAsync(pObjectId As Long, pLoadFileContents As Boolean) As Task(Of FileObject) Public Async Function GetFileObjectAsync(pObjectId As Long, pLoadFileContents As Boolean) As Task(Of FileObject)
Try 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) Dim oFileObject = Await oGetFileObject.RunAsync(pObjectId, pLoadFileContents)
Return oFileObject Return oFileObject
Catch ex As Exception Catch ex As Exception
_logger.Error(ex) Logger.Error(ex)
Return Nothing Return Nothing
End Try End Try
End Function End Function
@@ -256,13 +284,13 @@ Public Class Client
} }
Try Try
Dim oResponse = _channel.TestObjectIdExists(New TestObjectIdExistsRequest With {.ObjectId = pObjectId}) Dim oResponse = Channel.TestObjectIdExists(New TestObjectIdExistsRequest With {.ObjectId = pObjectId})
If oResponse.Exists = False Then If oResponse.Exists = False Then
Return False Return False
End If End If
Catch ex As Exception Catch ex As Exception
_logger.Error(ex) Logger.Error(ex)
Return False Return False
End Try End Try
@@ -287,7 +315,7 @@ Public Class Client
For Each oRow As DataRow In oTable.Rows For Each oRow As DataRow In oTable.Rows
Dim oExists As Boolean = False Dim oExists As Boolean = False
For Each oNewValueRow As DataRow In oValueTable.Rows 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 If oNewValueRow.Item(1).ToString.ToUpper = oRow.Item(0).ToString.ToUpper Then
oExists = True oExists = True
@@ -296,7 +324,7 @@ Public Class Client
Next Next
If oExists = False Then 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)) DeleteTermObjectFromMetadata(pObjectId, pAttributeName, oRow.Item(0))
End If 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 '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 Dim oExists As Boolean = False
For Each oNewValueRow As DataRow In oValueTable.Rows 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 If oNewValueRow.Item(1).ToString.ToUpper = oCurrentValue.ToString.ToUpper Then
oExists = True oExists = True
@@ -317,12 +345,12 @@ Public Class Client
Next Next
If oExists = False Then 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) DeleteTermObjectFromMetadata(pObjectId, pAttributeName, oCurrentValue.Value)
End If End If
Else 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) DeleteTermObjectFromMetadata(pObjectId, pAttributeName, oCurrentValue.Value)
End If End If
@@ -348,7 +376,7 @@ Public Class Client
End If End If
Catch ex As Exception Catch ex As Exception
_logger.Error(ex) Logger.Error(ex)
Return False Return False
End Try End Try
End Function End Function
@@ -367,14 +395,14 @@ Public Class Client
' Check if ObjectId exists ' Check if ObjectId exists
Try Try
Dim oResponse = _channel.TestObjectIdExists(New TestObjectIdExistsRequest With {.ObjectId = pObjectId}) Dim oResponse = Channel.TestObjectIdExists(New TestObjectIdExistsRequest With {.ObjectId = pObjectId})
If oResponse.Exists = False Then If oResponse.Exists = False Then
Return New VariableValue() Return New VariableValue()
End If End If
Catch ex As Exception Catch ex As Exception
_logger.Error(ex) Logger.Error(ex)
Return New VariableValue() Return New VariableValue()
End Try End Try
@@ -407,7 +435,7 @@ Public Class Client
End If End If
Catch ex As Exception Catch ex As Exception
_logger.Error(ex) Logger.Error(ex)
Return New VariableValue() Return New VariableValue()
End Try End Try
@@ -452,7 +480,7 @@ Public Class Client
Return oAttributeValue Return oAttributeValue
Catch ex As Exception Catch ex As Exception
_logger.Error(ex) Logger.Error(ex)
Return Nothing Return Nothing
End Try End Try
@@ -462,7 +490,7 @@ Public Class Client
Dim oAttributes As New List(Of ObjectAttribute) Dim oAttributes As New List(Of ObjectAttribute)
Try 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 If oResult.OK = False Then
Throw New ApplicationException(oResult.ErrorMessage) Throw New ApplicationException(oResult.ErrorMessage)
@@ -488,7 +516,7 @@ Public Class Client
Return oAttributes Return oAttributes
Catch ex As Exception Catch ex As Exception
_logger.Error(ex) Logger.Error(ex)
Return Nothing Return Nothing
End Try End Try
End Function End Function
@@ -503,11 +531,11 @@ Public Class Client
Dim oSql = $"DECLARE @NEW_OBJ_MD_ID BIGINT 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)" 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 If oResult.OK = False Then
_logger.Warn("Error while deleting Term object") Logger.Warn("Error while deleting Term object")
_logger.Error(oResult.ErrorMessage) Logger.Error(oResult.ErrorMessage)
End If End If
Return oResult.OK Return oResult.OK
@@ -520,92 +548,92 @@ Public Class Client
Dim oIdIsForeign As Integer = 1 Dim oIdIsForeign As Integer = 1
Dim oDELSQL = $"EXEC PRIDB_DELETE_TERM_OBJECT_METADATA {pObjectId},'{pAttributeName}','{pTerm2Delete}','{oUsername}','{oLanguage}',{oIdIsForeign}" 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 If oResult.OK = False Then
_logger.Warn("Error while deleting Term object") Logger.Warn("Error while deleting Term object")
_logger.Error(oResult.ErrorMessage) Logger.Error(oResult.ErrorMessage)
End If End If
Return oResult.OK Return oResult.OK
Catch ex As Exception Catch ex As Exception
_logger.Error(ex) Logger.Error(ex)
Return False Return False
End Try End Try
End Function End Function
Public Function GetDatatableFromIDB(pSQL As String, Optional pConnectionId As Integer = 0) As GetDatatableResponse Public Function GetDatatableFromIDB(pSQL As String, Optional pConnectionId As Integer = 0) As GetDatatableResponse
Try Try
Dim oResponse = _channel.ReturnDatatable(New GetDatatableRequest() With { Dim oResponse = Channel.ReturnDatatable(New GetDatatableRequest() With {
.SqlCommand = pSQL, .SqlCommand = pSQL,
.NamedDatabase = DatabaseName.IDB, .NamedDatabase = DatabaseName.IDB,
.ConnectionId = pConnectionId .ConnectionId = pConnectionId
}) })
Return oResponse Return oResponse
Catch ex As Exception Catch ex As Exception
_logger.Error(ex) Logger.Error(ex)
Throw ex Throw ex
End Try End Try
End Function End Function
Public Async Function GetDatatableFromIDBAsync(pSQL As String, Optional pConnectionId As Integer = 0) As Task(Of GetDatatableResponse) Public Async Function GetDatatableFromIDBAsync(pSQL As String, Optional pConnectionId As Integer = 0) As Task(Of GetDatatableResponse)
Try Try
Dim oResponse = Await _channel.ReturnDatatableAsync(New GetDatatableRequest() With { Dim oResponse = Await Channel.ReturnDatatableAsync(New GetDatatableRequest() With {
.SqlCommand = pSQL, .SqlCommand = pSQL,
.NamedDatabase = DatabaseName.IDB, .NamedDatabase = DatabaseName.IDB,
.ConnectionId = pConnectionId .ConnectionId = pConnectionId
}) })
Return oResponse Return oResponse
Catch ex As Exception Catch ex As Exception
_logger.Error(ex) Logger.Error(ex)
Throw ex Throw ex
End Try End Try
End Function End Function
Public Function GetScalarValueFromIDB(pSQL As String, Optional pConnectionId As Integer = 0) As GetScalarValueResponse Public Function GetScalarValueFromIDB(pSQL As String, Optional pConnectionId As Integer = 0) As GetScalarValueResponse
Try Try
Dim oResponse = _channel.ReturnScalarValue(New GetScalarValueRequest() With { Dim oResponse = Channel.ReturnScalarValue(New GetScalarValueRequest() With {
.SqlCommand = pSQL, .SqlCommand = pSQL,
.NamedDatabase = DatabaseName.IDB, .NamedDatabase = DatabaseName.IDB,
.ConnectionId = pConnectionId .ConnectionId = pConnectionId
}) })
Return oResponse Return oResponse
Catch ex As Exception Catch ex As Exception
_logger.Error(ex) Logger.Error(ex)
Throw ex Throw ex
End Try End Try
End Function End Function
Public Async Function GetScalarValueFromIDBAsync(pSQL As String, Optional pConnectionId As Integer = 0) As Task(Of GetScalarValueResponse) Public Async Function GetScalarValueFromIDBAsync(pSQL As String, Optional pConnectionId As Integer = 0) As Task(Of GetScalarValueResponse)
Try Try
Dim oResponse = Await _channel.ReturnScalarValueAsync(New GetScalarValueRequest() With { Dim oResponse = Await Channel.ReturnScalarValueAsync(New GetScalarValueRequest() With {
.SqlCommand = pSQL, .SqlCommand = pSQL,
.NamedDatabase = DatabaseName.IDB, .NamedDatabase = DatabaseName.IDB,
.ConnectionId = pConnectionId .ConnectionId = pConnectionId
}) })
Return oResponse Return oResponse
Catch ex As Exception Catch ex As Exception
_logger.Error(ex) Logger.Error(ex)
Throw ex Throw ex
End Try End Try
End Function End Function
Public Function GetDatatableByName(DatatableName As String, Optional FilterExpression As String = "", Optional SortByColumn As String = "") As TableResult Public Function GetDatatableByName(DatatableName As String, Optional FilterExpression As String = "", Optional SortByColumn As String = "") As TableResult
Try Try
Dim oResponse = _channel.ReturnDatatableFromCache(DatatableName, FilterExpression, SortByColumn) Dim oResponse = Channel.ReturnDatatableFromCache(DatatableName, FilterExpression, SortByColumn)
Return oResponse Return oResponse
Catch ex As Exception Catch ex As Exception
_logger.Error(ex) Logger.Error(ex)
Throw ex Throw ex
End Try End Try
End Function End Function
Public Async Function GetDatatableByNameAsync(DatatableName As String, Optional FilterExpression As String = "", Optional SortByColumn As String = "") As Task(Of TableResult) Public Async Function GetDatatableByNameAsync(DatatableName As String, Optional FilterExpression As String = "", Optional SortByColumn As String = "") As Task(Of TableResult)
Try Try
Dim oResponse = _channel.ReturnDatatableFromCache(DatatableName, FilterExpression, SortByColumn) Dim oResponse = Await Channel.ReturnDatatableFromCacheAsync(DatatableName, FilterExpression, SortByColumn)
Return oResponse Return oResponse
Catch ex As Exception Catch ex As Exception
_logger.Error(ex) Logger.Error(ex)
Throw ex Throw ex
End Try End Try
End Function End Function
@@ -618,7 +646,7 @@ Public Class Client
''' <returns></returns> ''' <returns></returns>
Public Function GetDocumentInfo(UserId As Long, ObjectId As Long) As DocumentInfo Public Function GetDocumentInfo(UserId As Long, ObjectId As Long) As DocumentInfo
Try Try
Dim oResponse As DocumentInfoResponse = _channel.GetFileInfoByObjectId(New DocumentInfoRequest With { Dim oResponse As DocumentInfoResponse = Channel.GetFileInfoByObjectId(New DocumentInfoRequest With {
.ObjectId = ObjectId, .ObjectId = ObjectId,
.UserId = UserId .UserId = UserId
}) })
@@ -629,15 +657,15 @@ Public Class Client
} }
Catch ex As FaultException(Of ObjectDoesNotExistFault) Catch ex As FaultException(Of ObjectDoesNotExistFault)
_logger.Error(ex) Logger.Error(ex)
Throw ex Throw ex
Catch ex As FaultException Catch ex As FaultException
_logger.Error(ex) Logger.Error(ex)
Throw ex Throw ex
Catch ex As Exception Catch ex As Exception
_logger.Error(ex) Logger.Error(ex)
Throw ex Throw ex
End Try End Try
@@ -649,14 +677,14 @@ Public Class Client
.ObjectId = ObjectId, .ObjectId = ObjectId,
.UserId = UserId .UserId = UserId
} }
Dim oResponse As DocumentInfoResponse = Await _channel.GetFileInfoByObjectIdAsync(oParams) Dim oResponse As DocumentInfoResponse = Await Channel.GetFileInfoByObjectIdAsync(oParams)
Return New DocumentInfo With { Return New DocumentInfo With {
.AccessRight = oResponse.FileRight, .AccessRight = oResponse.FileRight,
.FullPath = oResponse.FullPath .FullPath = oResponse.FullPath
} }
Catch ex As Exception Catch ex As Exception
_logger.Error(ex) Logger.Error(ex)
Throw ex Throw ex
End Try End Try
End Function End Function
@@ -669,14 +697,14 @@ Public Class Client
''' <returns>A channel object</returns> ''' <returns>A channel object</returns>
Private Function GetChannel() As IEDMIServiceChannel Private Function GetChannel() As IEDMIServiceChannel
Try Try
_logger.Debug("...Creating channel..") Logger.Debug("...Creating channel..")
Dim oChannel = _channelFactory.CreateChannel() Dim oChannel = ChannelFactory.CreateChannel()
AddHandler oChannel.Faulted, AddressOf Reconnect AddHandler oChannel.Faulted, AddressOf Reconnect
Return oChannel Return oChannel
Catch ex As Exception Catch ex As Exception
_logger.Error(ex) Logger.Error(ex)
Throw ex Throw ex
End Try End Try
End Function End Function

View File

@@ -4,6 +4,7 @@
<xsd:schema targetNamespace="http://DigitalData.Services.EDMIService/Imports"> <xsd:schema targetNamespace="http://DigitalData.Services.EDMIService/Imports">
<xsd:import namespace="http://DigitalData.Services.EDMIService" /> <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/" />
<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.Exceptions" />
<xsd:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" /> <xsd:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" />
<xsd:import namespace="http://schemas.datacontract.org/2004/07/System" /> <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.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.SetAttributeValue" />
<xsd:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.GlobalIndexer.ImportFile" /> <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.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.GetFileObject" />
<xsd:import namespace="http://schemas.microsoft.com/Message" /> <xsd:import namespace="http://schemas.microsoft.com/Message" />
<xsd:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Modules.EDMI.API" /> <xsd:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Modules.EDMI.API" />
@@ -29,6 +29,12 @@
<wsdl:message name="IEDMIService_Heartbeat_OutputMessage"> <wsdl:message name="IEDMIService_Heartbeat_OutputMessage">
<wsdl:part name="parameters" element="tns:HeartbeatResponse" /> <wsdl:part name="parameters" element="tns:HeartbeatResponse" />
</wsdl:message> </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:message name="IEDMIService_ReturnDatatableFromCache_InputMessage">
<wsdl:part name="parameters" element="tns:ReturnDatatableFromCache" /> <wsdl:part name="parameters" element="tns:ReturnDatatableFromCache" />
</wsdl:message> </wsdl:message>
@@ -203,6 +209,10 @@
<wsdl:input wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/Heartbeat" message="tns:IEDMIService_Heartbeat_InputMessage" /> <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:output wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/HeartbeatResponse" message="tns:IEDMIService_Heartbeat_OutputMessage" />
</wsdl:operation> </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:operation name="ReturnDatatableFromCache">
<wsdl:input wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/ReturnDatatableFromCache" message="tns:IEDMIService_ReturnDatatableFromCache_InputMessage" /> <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" /> <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"?> <?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: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.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.GetDatatable" />
<xs:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.Database.GetScalarValue" /> <xs:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.Database.GetScalarValue" />
@@ -21,6 +22,18 @@
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </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:element name="ReturnDatatableFromCache">
<xs:complexType> <xs:complexType>
<xs:sequence> <xs:sequence>
@@ -33,35 +46,35 @@
<xs:element name="ReturnDatatableFromCacheResponse"> <xs:element name="ReturnDatatableFromCacheResponse">
<xs:complexType> <xs:complexType>
<xs:sequence> <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:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="ReturnDatatable"> <xs:element name="ReturnDatatable">
<xs:complexType> <xs:complexType>
<xs:sequence> <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:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="ReturnDatatableResponse"> <xs:element name="ReturnDatatableResponse">
<xs:complexType> <xs:complexType>
<xs:sequence> <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:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="ReturnScalarValue"> <xs:element name="ReturnScalarValue">
<xs:complexType> <xs:complexType>
<xs:sequence> <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:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="ReturnScalarValueResponse"> <xs:element name="ReturnScalarValueResponse">
<xs:complexType> <xs:complexType>
<xs:sequence> <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:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
@@ -75,7 +88,7 @@
<xs:element name="ReturnDatatable_FirebirdResponse"> <xs:element name="ReturnDatatable_FirebirdResponse">
<xs:complexType> <xs:complexType>
<xs:sequence> <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:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
@@ -89,7 +102,7 @@
<xs:element name="ReturnScalar_FirebirdResponse"> <xs:element name="ReturnScalar_FirebirdResponse">
<xs:complexType> <xs:complexType>
<xs:sequence> <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:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
@@ -103,7 +116,7 @@
<xs:element name="ExecuteNonQuery_FirebirdResponse"> <xs:element name="ExecuteNonQuery_FirebirdResponse">
<xs:complexType> <xs:complexType>
<xs:sequence> <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:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
@@ -117,7 +130,7 @@
<xs:element name="ReturnDatatable_MSSQL_IDBResponse"> <xs:element name="ReturnDatatable_MSSQL_IDBResponse">
<xs:complexType> <xs:complexType>
<xs:sequence> <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:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
@@ -131,7 +144,7 @@
<xs:element name="ReturnScalar_MSSQL_IDBResponse"> <xs:element name="ReturnScalar_MSSQL_IDBResponse">
<xs:complexType> <xs:complexType>
<xs:sequence> <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:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
@@ -145,7 +158,7 @@
<xs:element name="ExecuteNonQuery_MSSQL_IDBResponse"> <xs:element name="ExecuteNonQuery_MSSQL_IDBResponse">
<xs:complexType> <xs:complexType>
<xs:sequence> <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:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
@@ -159,7 +172,7 @@
<xs:element name="ReturnDatatable_MSSQL_ECMResponse"> <xs:element name="ReturnDatatable_MSSQL_ECMResponse">
<xs:complexType> <xs:complexType>
<xs:sequence> <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:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
@@ -173,7 +186,7 @@
<xs:element name="ReturnScalar_MSSQL_ECMResponse"> <xs:element name="ReturnScalar_MSSQL_ECMResponse">
<xs:complexType> <xs:complexType>
<xs:sequence> <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:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
@@ -187,63 +200,63 @@
<xs:element name="ExecuteNonQuery_MSSQL_ECMResponse"> <xs:element name="ExecuteNonQuery_MSSQL_ECMResponse">
<xs:complexType> <xs:complexType>
<xs:sequence> <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:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="NewFile"> <xs:element name="NewFile">
<xs:complexType> <xs:complexType>
<xs:sequence> <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:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="NewFileResponse"> <xs:element name="NewFileResponse">
<xs:complexType> <xs:complexType>
<xs:sequence> <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:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="SetAttributeValue"> <xs:element name="SetAttributeValue">
<xs:complexType> <xs:complexType>
<xs:sequence> <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:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="SetAttributeValueResponse"> <xs:element name="SetAttributeValueResponse">
<xs:complexType> <xs:complexType>
<xs:sequence> <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:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="ImportFile"> <xs:element name="ImportFile">
<xs:complexType> <xs:complexType>
<xs:sequence> <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:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="ImportFileResponse"> <xs:element name="ImportFileResponse">
<xs:complexType> <xs:complexType>
<xs:sequence> <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:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="GetFileObject"> <xs:element name="GetFileObject">
<xs:complexType> <xs:complexType>
<xs:sequence> <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:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
<xs:element name="GetFileObjectResponse"> <xs:element name="GetFileObjectResponse">
<xs:complexType> <xs:complexType>
<xs:sequence> <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:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
@@ -257,7 +270,7 @@
<xs:element name="DocumentStreamResponse"> <xs:element name="DocumentStreamResponse">
<xs:complexType> <xs:complexType>
<xs:sequence> <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:sequence>
</xs:complexType> </xs:complexType>
</xs:element> </xs:element>
@@ -273,7 +286,7 @@
<xs:element name="DocumentInfoResponse"> <xs:element name="DocumentInfoResponse">
<xs:complexType> <xs:complexType>
<xs:sequence> <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:element minOccurs="0" name="FullPath" nillable="true" type="xs:string" />
</xs:sequence> </xs:sequence>
</xs:complexType> </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="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="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="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="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.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" /> <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.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.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="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="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="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" /> <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.Runtime.Serialization.DataContractAttribute(Name:="ScalarResult", [Namespace]:="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages"& _
""), _ ""), _
System.SerializableAttribute(), _ System.SerializableAttribute(), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(String())), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.TableResult)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.TableResult)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.BaseResponse)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.BaseResponse)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.NonQueryResult)), _ 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.SetAttributeValueResponse)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.ImportFileRequest)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.ImportFileRequest)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.ImportFileResponse)), _ 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.GetFileObjectRequest)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GetFileObjectResponse)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GetFileObjectResponse)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.FileObject)), _ 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."& _ System.Runtime.Serialization.DataContractAttribute(Name:="GetScalarValueResponse", [Namespace]:="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods."& _
"Database.GetScalarValue"), _ "Database.GetScalarValue"), _
System.SerializableAttribute(), _ System.SerializableAttribute(), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(String())), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.TableResult)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.TableResult)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.BaseResponse)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.BaseResponse)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.ScalarResult)), _ 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.SetAttributeValueResponse)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.ImportFileRequest)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.ImportFileRequest)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.ImportFileResponse)), _ 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.GetFileObjectRequest)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GetFileObjectResponse)), _ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GetFileObjectResponse)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.FileObject)), _ 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")> _ <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) 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"& _ <System.ServiceModel.OperationContractAttribute(Action:="http://DigitalData.Services.EDMIService/IEDMIService/ReturnDatatableFromCache", ReplyAction:="http://DigitalData.Services.EDMIService/IEDMIService/ReturnDatatableFromCacheResp"& _
"onse"), _ "onse"), _
System.ServiceModel.FaultContractAttribute(GetType(EDMIServiceReference.UnexpectedErrorFault), Action:="http://DigitalData.Services.EDMIService/IEDMIService/ReturnDatatableFromCacheUnex"& _ System.ServiceModel.FaultContractAttribute(GetType(EDMIServiceReference.UnexpectedErrorFault), Action:="http://DigitalData.Services.EDMIService/IEDMIService/ReturnDatatableFromCacheUnex"& _
@@ -2143,6 +2149,14 @@ Namespace EDMIServiceReference
Return MyBase.Channel.HeartbeatAsync Return MyBase.Channel.HeartbeatAsync
End Function 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 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) Return MyBase.Channel.ReturnDatatableFromCache(Name, FilterExpression, SortByColumn)
End Function End Function

View File

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

View File

@@ -11,25 +11,41 @@ Public Class DatabaseWithFallback
Private ReadOnly _DatabaseEDM As MSSQLServer Private ReadOnly _DatabaseEDM As MSSQLServer
Private ReadOnly _DatabaseIDB As MSSQLServer Private ReadOnly _DatabaseIDB As MSSQLServer
Public Enum TableType ''' <summary>
TBIDB_ATTRIBUTE ''' Options for GetDatatable
End Enum ''' </summary>
Public Class GetDatatableOptions
Public ReadOnly FallbackSQL
Public ReadOnly FallbackType
Public Class Table ''' <summary>
Public TableName As String ''' Filter expression for the cached Datatable
Public SQLCommand As String ''' </summary>
Public DatabaseType As Constants.DatabaseType 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 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) Public Sub New(LogConfig As LogConfig, Client As Client, DatabaseECM As MSSQLServer, DatabaseIDB As MSSQLServer)
_Logger = LogConfig.GetLogger() _Logger = LogConfig.GetLogger()
_Client = Client _Client = Client
@@ -37,42 +53,95 @@ Public Class DatabaseWithFallback
_DatabaseIDB = DatabaseIDB _DatabaseIDB = DatabaseIDB
End Sub 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 Try
Dim oResult As DataTable = Nothing Dim oResult As DataTable = Nothing
Dim oTableResult As TableResult = Nothing
If pForceFallback = False Then ' If there is no client, we assume there is no service (configured)
Dim oTableResult As TableResult If _Client Is Nothing Then
Return GetDatatableFromDatabase(pFallbackSQL, pFallbackType, pConnectionId)
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)
End If 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 Catch ex As Exception
_Logger.Error(ex) _Logger.Error(ex)
Return Nothing Return Nothing
End Try End Try
End Function 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 Try
Select Case DatabaseType Select Case DatabaseType
Case DatabaseType.ECM Case Constants.DatabaseType.ECM
Return _DatabaseEDM.GetDatatable(SQLCommand) Return _DatabaseEDM.GetDatatable(SQLCommand)
Case DatabaseType.IDB Case Constants.DatabaseType.IDB
Return _DatabaseIDB.GetDatatable(SQLCommand) Return _DatabaseIDB.GetDatatable(SQLCommand)
Case Else Case Else

View File

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

View File

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

View File

@@ -191,4 +191,15 @@ Public Class Utils
Return False Return False
End Function 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 End Class

View File

@@ -91,6 +91,15 @@ Public Class EDMIService
#End Region #End Region
#Region "=== Database ===" #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 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 oReturnDatatableFromCache As New GetDatatableFromCache.GetDatatableFromCacheMethod(LogConfig, MSSQL_IDB, MSSQL_ECM, GlobalState)
Dim oResult = oReturnDatatableFromCache.Run(New GetDatatableFromCache.GetDatatableFromCacheRequest With { Dim oResult = oReturnDatatableFromCache.Run(New GetDatatableFromCache.GetDatatableFromCacheRequest With {

View File

@@ -33,6 +33,22 @@ Public Class GlobalState
FirstOrDefault() FirstOrDefault()
End Function 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 Public Function GetConnectionString(pConnectionId As Long) As String
Dim oConnection = GetConnection(pConnectionId) Dim oConnection = GetConnection(pConnectionId)
Dim oBuilder As New SqlConnectionStringBuilder With { Dim oBuilder As New SqlConnectionStringBuilder With {

View File

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

View File

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

View File

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

View File

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