jj appserv

This commit is contained in:
Jonathan Jenne 2020-12-08 14:40:43 +01:00
parent cafa8cdbf3
commit 4c9abf3b1f
10 changed files with 209 additions and 49 deletions

View File

@ -40,10 +40,15 @@ Partial Class Form1
Me.BarToggleSwitchItem1 = New DevExpress.XtraBars.BarToggleSwitchItem() Me.BarToggleSwitchItem1 = New DevExpress.XtraBars.BarToggleSwitchItem()
Me.BarDockingMenuItem1 = New DevExpress.XtraBars.BarDockingMenuItem() Me.BarDockingMenuItem1 = New DevExpress.XtraBars.BarDockingMenuItem()
Me.BarMdiChildrenListItem1 = New DevExpress.XtraBars.BarMdiChildrenListItem() Me.BarMdiChildrenListItem1 = New DevExpress.XtraBars.BarMdiChildrenListItem()
Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem()
Me.TextboxDatatableName = New DevExpress.XtraBars.BarEditItem()
Me.RepositoryItemTextEdit2 = New DevExpress.XtraEditors.Repository.RepositoryItemTextEdit()
Me.BarButtonItem3 = New DevExpress.XtraBars.BarButtonItem()
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageGroup4 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroup4 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageGroup3 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() Me.RibbonPageGroup3 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage() Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.DocumentManager1 = New DevExpress.XtraBars.Docking2010.DocumentManager(Me.components) Me.DocumentManager1 = New DevExpress.XtraBars.Docking2010.DocumentManager(Me.components)
@ -68,11 +73,11 @@ Partial Class Form1
Me.DockPanel2_Container = New DevExpress.XtraBars.Docking.ControlContainer() Me.DockPanel2_Container = New DevExpress.XtraBars.Docking.ControlContainer()
Me.DocumentViewer1 = New DigitalData.Controls.DocumentViewer.DocumentViewer() Me.DocumentViewer1 = New DigitalData.Controls.DocumentViewer.DocumentViewer()
Me.Timer1 = New System.Windows.Forms.Timer(Me.components) Me.Timer1 = New System.Windows.Forms.Timer(Me.components)
Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem()
CType(Me.DocumentGroup1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.DocumentGroup1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.Document1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.Document1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.RepositoryItemTextEdit1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.RepositoryItemTextEdit1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.RepositoryItemTextEdit2, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.DocumentManager1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.DocumentManager1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.TabbedView1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.TabbedView1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.DockManager1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.DockManager1, System.ComponentModel.ISupportInitialize).BeginInit()
@ -110,14 +115,14 @@ Partial Class Form1
'RibbonControl1 'RibbonControl1
' '
Me.RibbonControl1.ExpandCollapseItem.Id = 0 Me.RibbonControl1.ExpandCollapseItem.Id = 0
Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.ButtonSelectFiles, Me.ButtonImportFiles, Me.buttonClearLog, Me.buttonClearFiles, Me.TextboxObjectId, Me.ButtonLoadFile, Me.BarListItem1, Me.BarButtonItem2, Me.BarToggleSwitchItem1, Me.BarDockingMenuItem1, Me.BarMdiChildrenListItem1, Me.BarButtonItem1}) Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.ButtonSelectFiles, Me.ButtonImportFiles, Me.buttonClearLog, Me.buttonClearFiles, Me.TextboxObjectId, Me.ButtonLoadFile, Me.BarListItem1, Me.BarButtonItem2, Me.BarToggleSwitchItem1, Me.BarDockingMenuItem1, Me.BarMdiChildrenListItem1, Me.BarButtonItem1, Me.TextboxDatatableName, Me.BarButtonItem3})
Me.RibbonControl1.Location = New System.Drawing.Point(0, 0) Me.RibbonControl1.Location = New System.Drawing.Point(0, 0)
Me.RibbonControl1.MaxItemId = 14 Me.RibbonControl1.MaxItemId = 17
Me.RibbonControl1.Name = "RibbonControl1" Me.RibbonControl1.Name = "RibbonControl1"
Me.RibbonControl1.PageHeaderItemLinks.Add(Me.BarDockingMenuItem1) Me.RibbonControl1.PageHeaderItemLinks.Add(Me.BarDockingMenuItem1)
Me.RibbonControl1.PageHeaderItemLinks.Add(Me.BarMdiChildrenListItem1) Me.RibbonControl1.PageHeaderItemLinks.Add(Me.BarMdiChildrenListItem1)
Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1}) Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1})
Me.RibbonControl1.RepositoryItems.AddRange(New DevExpress.XtraEditors.Repository.RepositoryItem() {Me.RepositoryItemTextEdit1}) Me.RibbonControl1.RepositoryItems.AddRange(New DevExpress.XtraEditors.Repository.RepositoryItem() {Me.RepositoryItemTextEdit1, Me.RepositoryItemTextEdit2})
Me.RibbonControl1.Size = New System.Drawing.Size(1310, 158) Me.RibbonControl1.Size = New System.Drawing.Size(1310, 158)
Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1 Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1
' '
@ -149,14 +154,14 @@ Partial Class Form1
Me.buttonClearFiles.ImageOptions.SvgImage = CType(resources.GetObject("buttonClearFiles.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) Me.buttonClearFiles.ImageOptions.SvgImage = CType(resources.GetObject("buttonClearFiles.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.buttonClearFiles.Name = "buttonClearFiles" Me.buttonClearFiles.Name = "buttonClearFiles"
' '
'TextboxObejctId 'TextboxObjectId
' '
Me.TextboxObjectId.Caption = "Document Id" Me.TextboxObjectId.Caption = "Document Id"
Me.TextboxObjectId.Edit = Me.RepositoryItemTextEdit1 Me.TextboxObjectId.Edit = Me.RepositoryItemTextEdit1
Me.TextboxObjectId.EditWidth = 100 Me.TextboxObjectId.EditWidth = 100
Me.TextboxObjectId.Id = 5 Me.TextboxObjectId.Id = 5
Me.TextboxObjectId.ImageOptions.SvgImage = CType(resources.GetObject("TextboxObejctId.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) Me.TextboxObjectId.ImageOptions.SvgImage = CType(resources.GetObject("TextboxObjectId.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.TextboxObjectId.Name = "TextboxObejctId" Me.TextboxObjectId.Name = "TextboxObjectId"
' '
'RepositoryItemTextEdit1 'RepositoryItemTextEdit1
' '
@ -203,9 +208,35 @@ Partial Class Form1
Me.BarMdiChildrenListItem1.Id = 12 Me.BarMdiChildrenListItem1.Id = 12
Me.BarMdiChildrenListItem1.Name = "BarMdiChildrenListItem1" Me.BarMdiChildrenListItem1.Name = "BarMdiChildrenListItem1"
' '
'BarButtonItem1
'
Me.BarButtonItem1.Caption = "Open Log Directory"
Me.BarButtonItem1.Id = 13
Me.BarButtonItem1.Name = "BarButtonItem1"
'
'TextboxDatatableName
'
Me.TextboxDatatableName.Caption = "Datatable Name"
Me.TextboxDatatableName.Edit = Me.RepositoryItemTextEdit2
Me.TextboxDatatableName.Id = 15
Me.TextboxDatatableName.ImageOptions.SvgImage = CType(resources.GetObject("TextboxDatatableName.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.TextboxDatatableName.Name = "TextboxDatatableName"
'
'RepositoryItemTextEdit2
'
Me.RepositoryItemTextEdit2.AutoHeight = False
Me.RepositoryItemTextEdit2.Name = "RepositoryItemTextEdit2"
'
'BarButtonItem3
'
Me.BarButtonItem3.Caption = "Load Datatable"
Me.BarButtonItem3.Id = 16
Me.BarButtonItem3.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem3.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
Me.BarButtonItem3.Name = "BarButtonItem3"
'
'RibbonPage1 'RibbonPage1
' '
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup4, Me.RibbonPageGroup3}) Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup4, Me.RibbonPageGroup3, Me.RibbonPageGroup2})
Me.RibbonPage1.Name = "RibbonPage1" Me.RibbonPage1.Name = "RibbonPage1"
Me.RibbonPage1.Text = "Start" Me.RibbonPage1.Text = "Start"
' '
@ -223,7 +254,7 @@ Partial Class Form1
Me.RibbonPageGroup4.ItemLinks.Add(Me.ButtonLoadFile) Me.RibbonPageGroup4.ItemLinks.Add(Me.ButtonLoadFile)
Me.RibbonPageGroup4.ItemLinks.Add(Me.BarButtonItem2) Me.RibbonPageGroup4.ItemLinks.Add(Me.BarButtonItem2)
Me.RibbonPageGroup4.Name = "RibbonPageGroup4" Me.RibbonPageGroup4.Name = "RibbonPageGroup4"
Me.RibbonPageGroup4.Text = "Retrieve" Me.RibbonPageGroup4.Text = "Retrieve Document"
' '
'RibbonPageGroup3 'RibbonPageGroup3
' '
@ -233,6 +264,13 @@ Partial Class Form1
Me.RibbonPageGroup3.Name = "RibbonPageGroup3" Me.RibbonPageGroup3.Name = "RibbonPageGroup3"
Me.RibbonPageGroup3.Text = "Utils" Me.RibbonPageGroup3.Text = "Utils"
' '
'RibbonPageGroup2
'
Me.RibbonPageGroup2.ItemLinks.Add(Me.TextboxDatatableName)
Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem3)
Me.RibbonPageGroup2.Name = "RibbonPageGroup2"
Me.RibbonPageGroup2.Text = "Retrieve Datatable"
'
'RibbonStatusBar1 'RibbonStatusBar1
' '
Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 640) Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 640)
@ -443,12 +481,6 @@ Partial Class Form1
' '
Me.Timer1.Interval = 3000 Me.Timer1.Interval = 3000
' '
'BarButtonItem1
'
Me.BarButtonItem1.Caption = "Open Log Directory"
Me.BarButtonItem1.Id = 13
Me.BarButtonItem1.Name = "BarButtonItem1"
'
'Form1 'Form1
' '
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@ -466,6 +498,7 @@ Partial Class Form1
CType(Me.Document1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.Document1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.RepositoryItemTextEdit1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.RepositoryItemTextEdit1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.RepositoryItemTextEdit2, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.DocumentManager1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.DocumentManager1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.TabbedView1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.TabbedView1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.DockManager1, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.DockManager1, System.ComponentModel.ISupportInitialize).EndInit()
@ -532,4 +565,8 @@ Partial Class Form1
Friend WithEvents BarDockingMenuItem1 As DevExpress.XtraBars.BarDockingMenuItem Friend WithEvents BarDockingMenuItem1 As DevExpress.XtraBars.BarDockingMenuItem
Friend WithEvents BarMdiChildrenListItem1 As DevExpress.XtraBars.BarMdiChildrenListItem Friend WithEvents BarMdiChildrenListItem1 As DevExpress.XtraBars.BarMdiChildrenListItem
Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem
Friend WithEvents TextboxDatatableName As DevExpress.XtraBars.BarEditItem
Friend WithEvents RepositoryItemTextEdit2 As DevExpress.XtraEditors.Repository.RepositoryItemTextEdit
Friend WithEvents BarButtonItem3 As DevExpress.XtraBars.BarButtonItem
Friend WithEvents RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
End Class End Class

View File

@ -196,7 +196,7 @@
Ny41LDExLjh6IiBjbGFzcz0iUmVkIiAvPg0KPC9zdmc+Cw== Ny41LDExLjh6IiBjbGFzcz0iUmVkIiAvPg0KPC9zdmc+Cw==
</value> </value>
</data> </data>
<data name="TextboxObejctId.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="TextboxObjectId.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
@ -284,6 +284,49 @@
PSJXaGl0ZSIgLz4NCiAgPGcgaWQ9IkxheWVyXzMiIGNsYXNzPSJzdDAiPg0KICAgIDxwYXRoIGQ9Ik0x PSJXaGl0ZSIgLz4NCiAgPGcgaWQ9IkxheWVyXzMiIGNsYXNzPSJzdDAiPg0KICAgIDxwYXRoIGQ9Ik0x
NSw4VjdoLTNWNWgtMXYySDVWNUg0djJIMXYxaDN2MkgxdjFoM3YyaDF2LTJoNnYyaDF2LTJoM3YtMWgt NSw4VjdoLTNWNWgtMXYySDVWNUg0djJIMXYxaDN2MkgxdjFoM3YyaDF2LTJoNnYyaDF2LTJoM3YtMWgt
M1Y4SDE1eiBNMTEsMTBINVY4aDZWMTB6IiBjbGFzcz0iQmxhY2siIC8+DQogIDwvZz4NCjwvc3ZnPgs= M1Y4SDE1eiBNMTEsMTBINVY4aDZWMTB6IiBjbGFzcz0iQmxhY2siIC8+DQogIDwvZz4NCjwvc3ZnPgs=
</value>
</data>
<data name="TextboxDatatableName.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAGkEAAAC77u/
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
IHZpZXdCb3g9IjAgMCAxNiAxNiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
MTYgMTYiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cgku
R3JlZW57ZmlsbDojMDM5QzIzO30KCS5XaGl0ZXtmaWxsOiNGRkZGRkY7fQoJLnN0MHtvcGFjaXR5OjAu
Njt9Cgkuc3Qxe29wYWNpdHk6MC41O30KPC9zdHlsZT4NCiAgPHBhdGggZD0iTTE1LDFIMUMwLjUsMSww
LDEuNSwwLDJ2MTJjMCwwLjUsMC41LDEsMSwxaDE0YzAuNSwwLDEtMC41LDEtMVYyQzE2LDEuNSwxNS41
LDEsMTUsMXogTTE1LDE0SDFWMmgxNFYxNHoiIGNsYXNzPSJCbGFjayIgLz4NCiAgPHBhdGggZD0iTTAs
NVYyYzAtMC41LDAuNS0xLDEtMWgxNGMwLjYsMCwxLDAuNSwxLDF2M0gweiIgY2xhc3M9IkdyZWVuIiAv
Pg0KICA8ZyBpZD0iTGF5ZXJfMiIgY2xhc3M9InN0MCI+DQogICAgPHJlY3QgeD0iMSIgeT0iMiIgd2lk
dGg9IjE0IiBoZWlnaHQ9IjIiIHJ4PSIwIiByeT0iMCIgY2xhc3M9IldoaXRlIiAvPg0KICA8L2c+DQog
IDxyZWN0IHg9IjEiIHk9IjUiIHdpZHRoPSIxNCIgaGVpZ2h0PSI5IiByeD0iMCIgcnk9IjAiIGNsYXNz
PSJXaGl0ZSIgLz4NCiAgPHBhdGggZD0iTTUsMTJWN2gxdjVINXoiIGNsYXNzPSJCbGFjayIgLz4NCiAg
PHBhdGggZD0iTTExLDEyaC0xbDAtMC42QzkuOCwxMS42LDkuNSwxMiw4LjcsMTJjLTAuNSwwLTAuOS0w
LjItMS4yLTAuNUM3LjIsMTEuMiw3LDEwLjcsNywxMC4xQzcsOS41LDcuMiw5LDcuNSw4LjcgIGMwLjMt
MC4zLDAuNy0wLjUsMS4yLTAuNXMwLjksMC4yLDEuMiwwLjVWN0gxMVYxMnogTTguMSwxMC4xYzAsMC40
LDAsMS4yLDAuOSwxLjJjMC44LDAsMC45LTAuOCwwLjktMS4xQzkuOSw5LjgsOS44LDksOSw5ICBDOC4z
LDksOC4xLDkuNyw4LjEsMTAuMXoiIGNsYXNzPSJCbGFjayIgLz4NCjwvc3ZnPgs=
</value>
</data>
<data name="BarButtonItem3.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v19.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjE5LjIsIFZlcnNpb249MTkuMi4z
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAFcCAAAC77u/
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ
LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5HcmVlbntmaWxsOiMwMzlD
MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh
Y2l0eTowLjc1O30KPC9zdHlsZT4NCiAgPGcgaWQ9Ik5leHQiPg0KICAgIDxwYXRoIGQ9Ik0xNiwyQzgu
MywyLDIsOC4zLDIsMTZzNi4zLDE0LDE0LDE0czE0LTYuMywxNC0xNFMyMy43LDIsMTYsMnogTTE2LDI0
bC04LThoNlY4aDR2OGg2TDE2LDI0eiIgY2xhc3M9IkdyZWVuIiAvPg0KICA8L2c+DQo8L3N2Zz4L
</value> </value>
</data> </data>
<metadata name="DocumentManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="DocumentManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">

View File

@ -213,4 +213,27 @@ Public Class Form1
Private Sub BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem1.ItemClick Private Sub BarButtonItem1_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem1.ItemClick
Process.Start(_LogConfig.LogDirectory) Process.Start(_LogConfig.LogDirectory)
End Sub End Sub
Private Async Sub BarButtonItem3_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem3.ItemClick
Try
Dim oSWTotal As New Stopwatch()
oSWTotal.Start()
If TextboxDatatableName.EditValue = "" Then
MsgBox("Please enter a Datatable name!", MsgBoxStyle.Exclamation, "Uh oh!")
End If
Dim oDatatableName As String = TextboxDatatableName.EditValue
Dim oResponse As DataTable = Await _Client.GetDatatableByNameAsync(oDatatableName)
oSWTotal.Stop()
AddLogMessage($"DataTable [{oResponse.TableName}] loaded: [{FormatTime(oSWTotal.ElapsedMilliseconds)}]")
Catch ex As FaultException
MsgBox(ex.Reason.ToString, MsgBoxStyle.Critical, "Error from Service")
_Client.Reconnect()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Uh oh!")
_Client.Reconnect()
End Try
End Sub
End Class End Class

View File

@ -131,10 +131,25 @@ Public Class Client
End Try End Try
End Function End Function
Public Async Function GetDatatableByNameAsync(DatatableName As String) As Task(Of DataTable)
Try
Dim oResponse = Await _channel.ReturnDatatableFromCacheAsync(DatatableName)
If oResponse.OK Then
Return oResponse.Table
Else
Return Nothing
End If
Catch ex As Exception
_logger.Error(ex)
Throw ex
End Try
End Function
''' <summary> ''' <summary>
''' Aborts the channel and creates a new connection ''' Aborts the channel and creates a new connection
''' </summary> ''' </summary>
Private Sub Reconnect() Public Sub Reconnect()
_logger.Warn("Connection faulted. Trying to reconnect..") _logger.Warn("Connection faulted. Trying to reconnect..")
Try Try

View File

@ -1,6 +1,7 @@
Imports DigitalData.Modules.Database Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Filesystem Imports DigitalData.Modules.Filesystem
Imports DigitalData.Modules.language
Imports DigitalData.Modules Imports DigitalData.Modules
Imports System.IO Imports System.IO
Imports System.ServiceModel Imports System.ServiceModel
@ -66,20 +67,41 @@ Public Class EDMIService
#End Region #End Region
#Region "Database" #Region "Database"
Public Function ReturnDatatableFromCache(Name As String) As TableResult Implements IEDMIService.ReturnDatatableFromCache Public Function ReturnDatatableFromCache(Name As String, FilterExpression As String, SortByColumn As String) As TableResult Implements IEDMIService.ReturnDatatableFromCache
Try Try
Dim oSql = "" _logger.Info($"ReturnDatatableFromCache, Datatable: {Name}")
_logger.Info($"ReturnDatatableFromCache, SQL: {oSql}")
Dim oDataset As DataSet = Scheduler.DataSet Dim oDataset As DataSet = Scheduler.DataSet
Dim oDataTable As DataTable = Nothing Dim oDataTable As DataTable = Nothing
_logger.Debug("DataSet contains [{0}] datatables", oDataset.Tables.Count)
If oDataset.Tables.Contains(Name) Then If oDataset.Tables.Contains(Name) Then
oDataTable = oDataset.Tables.Item(Name) oDataTable = oDataset.Tables.Item(Name).Copy()
' Apply filter and sorting to data
Dim oFilterExpression As String = Utils.NotNull(FilterExpression, String.Empty)
Dim oSortByColumn As String = Utils.NotNull(SortByColumn, String.Empty)
Dim oFilteredTable = oDataTable.
Select(oFilterExpression, oSortByColumn).
CopyToDataTable()
_logger.Debug("Datatable Stats for [{0}]:", Name)
_logger.Debug("Unfiltered: [{0}] rows", oDataTable.Rows.Count)
_logger.Debug("Filtered: [{0}] rows", oFilteredTable.Rows.Count)
Return New TableResult(oFilteredTable)
Else Else
Throw New ApplicationException($"DataTable {Name} does not exist") Throw New ApplicationException($"DataTable {Name} does not exist")
End If End If
Return New TableResult(oDataTable) 'If oDataset.Tables.Contains(Name) Then
' oDataTable = oDataset.Tables.Item(Name).Clone()
' Return New TableResult(oDataTable)
'Else
' Throw New ApplicationException($"DataTable {Name} does not exist")
'End If
Catch ex As Exception Catch ex As Exception
_logger.Error(ex) _logger.Error(ex)
Return New TableResult(ex.Message) Return New TableResult(ex.Message)

View File

@ -206,6 +206,10 @@
<Project>{991D0231-4623-496D-8BD0-9CA906029CBC}</Project> <Project>{991D0231-4623-496D-8BD0-9CA906029CBC}</Project>
<Name>Filesystem</Name> <Name>Filesystem</Name>
</ProjectReference> </ProjectReference>
<ProjectReference Include="..\Modules.Language\Language.vbproj">
<Project>{d3c8cfed-d6f6-43a8-9bdf-454145d0352f}</Project>
<Name>Language</Name>
</ProjectReference>
<ProjectReference Include="..\Modules.Logging\Logging.vbproj"> <ProjectReference Include="..\Modules.Logging\Logging.vbproj">
<Project>{903B2D7D-3B80-4BE9-8713-7447B704E1B0}</Project> <Project>{903B2D7D-3B80-4BE9-8713-7447B704E1B0}</Project>
<Name>Logging</Name> <Name>Logging</Name>

View File

@ -13,7 +13,7 @@ Interface IEDMIService
#Region "Database" #Region "Database"
<OperationContract> <OperationContract>
Function ReturnDatatableFromCache(Name As String) As TableResult Function ReturnDatatableFromCache(Name As String, FilterExpression As String, SortByColumn As String) As TableResult
#End Region #End Region
#Region "Database (Firebird)" #Region "Database (Firebird)"

View File

@ -33,9 +33,9 @@ Public Class Scheduler
_MSSQL = MSSQL_ECM _MSSQL = MSSQL_ECM
Dim oDataSet As New DataSet() Dim oDataSet As New DataSet()
_JobListener = New JobListener(LogConfig, oDataSet) _JobListener = New JobListener(LogConfig, _MSSQL, oDataSet)
Quartz.Logging.LogProvider.SetCurrentLogProvider(New LogProvider(_Logger)) Logging.LogProvider.SetCurrentLogProvider(New LogProvider(_Logger))
End Sub End Sub
Public Async Sub Start() Public Async Sub Start()
@ -66,18 +66,26 @@ Public Class Scheduler
_Logger.Debug("Job details: {0}", oCronDetails.Rows.Count) _Logger.Debug("Job details: {0}", oCronDetails.Rows.Count)
_Logger.Debug("Job definition: {0}", oDefinition) _Logger.Debug("Job definition: {0}", oDefinition)
For Each oRowDetail In oCronDetails.Rows For Each oRowDetail As DataRow In oCronDetails.Rows
Dim oTrigger As ITrigger Dim oTrigger As ITrigger
Dim oJob As IJobDetail Dim oJob As IJobDetail
Dim oDataTableName As String = oRowDetail.Item("DT_NAME")
Dim oRunOnStartup As Boolean = oRowDetail.Item("RUN_ON_STARTUP")
Dim oJobIdentity As String = $"{oGuid}~{oDataTableName}"
oTrigger = TriggerBuilder.Create(). Dim oBaseTrigger = TriggerBuilder.Create().
WithIdentity(oTitle). WithIdentity(oJobIdentity, JOB_GROUP).
WithCronSchedule(oDefinition). WithCronSchedule(oDefinition)
StartNow().
Build() ' Run directly at startup if configured
If oRunOnStartup Then
oBaseTrigger = oBaseTrigger.StartNow()
End If
oTrigger = oBaseTrigger.Build()
oJob = JobBuilder.Create(Of DatatableJob)(). oJob = JobBuilder.Create(Of DatatableJob)().
WithIdentity(oGuid, JOB_GROUP). WithIdentity(oJobIdentity, JOB_GROUP).
UsingJobData(New JobDataMap() From { UsingJobData(New JobDataMap() From {
{"LogConfig", _LogConfig}, {"LogConfig", _LogConfig},
{"MSSQL", _MSSQL}, {"MSSQL", _MSSQL},

View File

@ -8,23 +8,24 @@ Public Class DatatableJob
Public Function Execute(context As IJobExecutionContext) As Task Implements IJob.Execute Public Function Execute(context As IJobExecutionContext) As Task Implements IJob.Execute
Dim oJobData = context.MergedJobDataMap Dim oJobData = context.MergedJobDataMap
Dim oLogConfig As LogConfig = oJobData.Item("LogConfig") Dim oLogConfig As LogConfig = oJobData.Item("LogConfig")
Dim oCronJobTitle As String = oJobData.Item("CronJobTitle")
Dim oDetailRow As DataRow = oJobData.Item("CronJobDetails")
Dim oMSSQL As MSSQLServer = oJobData.Item("MSSQL")
Dim oConnectionId As Integer = oDetailRow.Item("CON_ID")
Dim oTitle As String = oDetailRow.Item("TITLE")
Dim oDatatableName As String = oDetailRow.Item("DT_NAME")
Dim oSQL As String = oDetailRow.Item("COMMAND")
Dim oLogger As Logger = oLogConfig.GetLogger() Dim oLogger As Logger = oLogConfig.GetLogger()
oLogger.Debug("Running Command-Job [{0}]", oTitle)
oLogger.Debug("Datatable Name: {0}", oDatatableName)
oLogger.Debug("Connection Id: {0}", oConnectionId)
Dim oConnectionString = oMSSQL.Get_ConnectionStringforID(oConnectionId)
Try Try
Dim oCronJobTitle As String = oJobData.Item("CronJobTitle")
Dim oDetailRow As DataRow = oJobData.Item("CronJobDetails")
Dim oMSSQL As MSSQLServer = oJobData.Item("MSSQL")
Dim oConnectionId As Integer = oDetailRow.Item("CON_ID")
Dim oTitle As String = oDetailRow.Item("TITLE")
Dim oDatatableName As String = oDetailRow.Item("DT_NAME")
Dim oSQL As String = oDetailRow.Item("COMMAND")
oLogger.Debug("Running Command-Job [{0}]", oTitle)
oLogger.Debug("Datatable Name: {0}", oDatatableName)
oLogger.Debug("Connection Id: {0}", oConnectionId)
Dim oConnectionString = oMSSQL.Get_ConnectionStringforID(oConnectionId)
Dim oResult = oMSSQL.GetDatatableWithConnection(oSQL, oConnectionString) Dim oResult = oMSSQL.GetDatatableWithConnection(oSQL, oConnectionString)
oResult.TableName = oDatatableName oResult.TableName = oDatatableName
oLogger.Debug("Result Datatable contains [{0}] rows", oResult.Rows.Count) oLogger.Debug("Result Datatable contains [{0}] rows", oResult.Rows.Count)

View File

@ -1,4 +1,5 @@
Imports System.Threading Imports System.Threading
Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Logging Imports DigitalData.Modules.Logging
Imports Quartz Imports Quartz
Imports Quartz.Listener Imports Quartz.Listener
@ -10,12 +11,14 @@ Public Class JobListener
Private ReadOnly _Logger As Logger Private ReadOnly _Logger As Logger
Private ReadOnly _LogConfig As LogConfig Private ReadOnly _LogConfig As LogConfig
Private ReadOnly _MSSQL As MSSQLServer
Public Sub New(LogConfig As LogConfig, ResultDataSet As DataSet) Public Sub New(LogConfig As LogConfig, MSSQL As MSSQLServer, ResultDataSet As DataSet)
MyBase.New() MyBase.New()
_LogConfig = LogConfig _LogConfig = LogConfig
_Logger = LogConfig.GetLogger() _Logger = LogConfig.GetLogger()
_MSSQL = MSSQL
Dataset = ResultDataSet Dataset = ResultDataSet
End Sub End Sub
@ -24,10 +27,11 @@ Public Class JobListener
Dim oDataTable As DataTable = context.Result Dim oDataTable As DataTable = context.Result
Dim oDetailRow As DataRow = context.MergedJobDataMap.Item("CronJobDetails") Dim oDetailRow As DataRow = context.MergedJobDataMap.Item("CronJobDetails")
Dim oDatatableName As String = oDetailRow.Item("DT_NAME") Dim oDatatableName As String = oDetailRow.Item("DT_NAME")
Dim oDetailId As Integer = oDetailRow.Item("GUID")
Dim oDatatableNameTemp As String = oDatatableName & "-TEMP" Dim oDatatableNameTemp As String = oDatatableName & "-TEMP"
If Dataset.Tables.Contains(oDatatableName) Then If Dataset.Tables.Contains(oDatatableName) Then
_Logger.Debug("DataTable exists, renaming and replacing") _Logger.Debug("DataTable [{0}] exists, renaming and replacing", oDatatableName)
' Rename the new table, add TEMP suffix ' Rename the new table, add TEMP suffix
oDataTable.TableName = oDatatableNameTemp oDataTable.TableName = oDatatableNameTemp
' Add the new table to the dataset ' Add the new table to the dataset
@ -37,10 +41,13 @@ Public Class JobListener
' Rename the new table ' Rename the new table
Dataset.Tables.Item(oDatatableNameTemp).TableName = oDatatableName Dataset.Tables.Item(oDatatableNameTemp).TableName = oDatatableName
Else Else
_Logger.Debug("DataTable does not exist, adding") _Logger.Debug("DataTable [{0}] does not exist, adding", oDatatableName)
Dataset.Tables.Add(oDataTable) Dataset.Tables.Add(oDataTable)
End If End If
_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.Error(ex) _Logger.Error(ex)
End Try End Try