diff --git a/GUIs.Test.GraphQLTest/App.config b/GUIs.Test.GraphQLTest/App.config
index 5534e287..5b172ccb 100644
--- a/GUIs.Test.GraphQLTest/App.config
+++ b/GUIs.Test.GraphQLTest/App.config
@@ -1,6 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/GUIs.Test.GraphQLTest/Config.vb b/GUIs.Test.GraphQLTest/Config.vb
new file mode 100644
index 00000000..1ab7de40
--- /dev/null
+++ b/GUIs.Test.GraphQLTest/Config.vb
@@ -0,0 +1,8 @@
+Public Class Config
+ Public Property ConnectionString As String = "Server=SERVER;Database=DATABASE;User Id=sa;Password=dd"
+ Public Property CertificateFile As String = "C:\Path\To\Cert.pfx"
+ Public Property CertificatePass As String = "CertificatePassword"
+ Public Property Email As String = "foo.bar@wisag.de"
+ Public Property Password As String = "Password"
+ Public Property BaseUrl As String = "https://data.api.wisag.de:8443"
+End Class
diff --git a/GUIs.Test.GraphQLTest/Form1.vb b/GUIs.Test.GraphQLTest/Form1.vb
deleted file mode 100644
index 4c2a939b..00000000
--- a/GUIs.Test.GraphQLTest/Form1.vb
+++ /dev/null
@@ -1,46 +0,0 @@
-Imports System.IO
-Imports DigitalData.Modules.Interfaces
-Imports DigitalData.Modules.Logging
-
-Public Class Form1
- Private _LogConfig As LogConfig
- Private _Interface As GraphQLInterface
-
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- _LogConfig = New LogConfig(LogConfig.PathType.CurrentDirectory)
- End Sub
-
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- Try
- _Interface = New GraphQLInterface(_LogConfig,
- txtBaseUrl.Text,
- txtUsername.Text,
- txtPassword.Text,
- txtCertFile.Text,
- txtCertPass.Text)
-
- Dim oLoginResponse = _Interface.Login()
- _Interface.SaveCookies(oLoginResponse.Cookies.Item(0))
-
- Dim oDataResponse = _Interface.GetData(txtQuery.Text, "Nls")
- Dim oResult As String
-
- Using oStream = oDataResponse.GetResponseStream()
- Using oReader As New StreamReader(oStream)
- oResult = oReader.ReadToEnd()
- End Using
- End Using
-
- File.WriteAllText("E:\JenneJ\WISAG\results.json", oResult)
-
- Dim oObj = Newtonsoft.Json.JsonConvert.DeserializeObject(oResult)
- Dim oJson = Newtonsoft.Json.JsonConvert.SerializeObject(oObj, Newtonsoft.Json.Formatting.Indented)
-
- txtResults.Text = oJson
-
- Dim oLogoutResponse = _Interface.Logout()
- Catch ex As Exception
- MsgBox(ex.Message, MsgBoxStyle.Critical)
- End Try
- End Sub
-End Class
diff --git a/GUIs.Test.GraphQLTest/GUIs.Test.GraphQLTest.vbproj b/GUIs.Test.GraphQLTest/GUIs.Test.GraphQLTest.vbproj
index eefb6998..08f44e28 100644
--- a/GUIs.Test.GraphQLTest/GUIs.Test.GraphQLTest.vbproj
+++ b/GUIs.Test.GraphQLTest/GUIs.Test.GraphQLTest.vbproj
@@ -84,11 +84,12 @@
-
+
+
Form
-
- Form1.vb
+
+ frmMain.vb
Form
@@ -108,8 +109,8 @@
-
- Form1.vb
+
+ frmMain.vb
VbMyResourcesResXFileCodeGenerator
@@ -132,6 +133,14 @@
+
+ {44982f9b-6116-44e2-85d0-f39650b1ef99}
+ Config
+
+
+ {EAF0EA75-5FA7-485D-89C7-B2D843B03A96}
+ Database
+
{AB6F09BF-E794-4F6A-94BB-C97C0BA84D64}
Interfaces
@@ -141,5 +150,8 @@
Logging
+
+
+
\ No newline at end of file
diff --git a/GUIs.Test.GraphQLTest/My Project/Application.Designer.vb b/GUIs.Test.GraphQLTest/My Project/Application.Designer.vb
index bfc32831..3a0a94ec 100644
--- a/GUIs.Test.GraphQLTest/My Project/Application.Designer.vb
+++ b/GUIs.Test.GraphQLTest/My Project/Application.Designer.vb
@@ -32,7 +32,7 @@ Namespace My
_
Protected Overrides Sub OnCreateMainForm()
- Me.MainForm = Global.GUIs.Test.GraphQLTest.Form1
+ Me.MainForm = Global.GUIs.Test.GraphQLTest.frmMain
End Sub
End Class
End Namespace
diff --git a/GUIs.Test.GraphQLTest/My Project/Settings.Designer.vb b/GUIs.Test.GraphQLTest/My Project/Settings.Designer.vb
index d6fe46e5..fb6cb655 100644
--- a/GUIs.Test.GraphQLTest/My Project/Settings.Designer.vb
+++ b/GUIs.Test.GraphQLTest/My Project/Settings.Designer.vb
@@ -1,10 +1,10 @@
'------------------------------------------------------------------------------
'
-' This code was generated by a tool.
-' Runtime Version:4.0.30319.42000
+' Dieser Code wurde von einem Tool generiert.
+' Laufzeitversion:4.0.30319.42000
'
-' Changes to this file may cause incorrect behavior and will be lost if
-' the code is regenerated.
+' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
+' der Code erneut generiert wird.
'
'------------------------------------------------------------------------------
@@ -13,57 +13,129 @@ Option Explicit On
Namespace My
-
- _
+
+ _
Partial Friend NotInheritable Class MySettings
Inherits Global.System.Configuration.ApplicationSettingsBase
-
- Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings)
-
-#Region "My.Settings Auto-Save Functionality"
+
+ Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
+
+#Region "Automatische My.Settings-Speicherfunktion"
#If _MyType = "WindowsForms" Then
- Private Shared addedHandler As Boolean
+ Private Shared addedHandler As Boolean
- Private Shared addedHandlerLockObject As New Object
+ Private Shared addedHandlerLockObject As New Object
- _
- Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
- If My.Application.SaveMySettingsOnExit Then
- My.Settings.Save()
- End If
- End Sub
+ _
+ Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
+ If My.Application.SaveMySettingsOnExit Then
+ My.Settings.Save()
+ End If
+ End Sub
#End If
#End Region
-
+
Public Shared ReadOnly Property [Default]() As MySettings
Get
-
+
#If _MyType = "WindowsForms" Then
- If Not addedHandler Then
- SyncLock addedHandlerLockObject
- If Not addedHandler Then
- AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
- addedHandler = True
- End If
- End SyncLock
- End If
+ If Not addedHandler Then
+ SyncLock addedHandlerLockObject
+ If Not addedHandler Then
+ AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
+ addedHandler = True
+ End If
+ End SyncLock
+ End If
#End If
Return defaultInstance
End Get
End Property
+
+ _
+ Public Property ConnectionString() As String
+ Get
+ Return CType(Me("ConnectionString"),String)
+ End Get
+ Set
+ Me("ConnectionString") = value
+ End Set
+ End Property
+
+ _
+ Public Property CertificateFile() As String
+ Get
+ Return CType(Me("CertificateFile"),String)
+ End Get
+ Set
+ Me("CertificateFile") = value
+ End Set
+ End Property
+
+ _
+ Public Property CertificatePass() As String
+ Get
+ Return CType(Me("CertificatePass"),String)
+ End Get
+ Set
+ Me("CertificatePass") = value
+ End Set
+ End Property
+
+ _
+ Public Property Email() As String
+ Get
+ Return CType(Me("Email"),String)
+ End Get
+ Set
+ Me("Email") = value
+ End Set
+ End Property
+
+ _
+ Public Property Password() As String
+ Get
+ Return CType(Me("Password"),String)
+ End Get
+ Set
+ Me("Password") = value
+ End Set
+ End Property
+
+ _
+ Public Property BaseUrl() As String
+ Get
+ Return CType(Me("BaseUrl"),String)
+ End Get
+ Set
+ Me("BaseUrl") = value
+ End Set
+ End Property
End Class
End Namespace
Namespace My
-
- _
+
+ _
Friend Module MySettingsProperty
-
- _
+
+ _
Friend ReadOnly Property Settings() As Global.GUIs.Test.GraphQLTest.My.MySettings
Get
Return Global.GUIs.Test.GraphQLTest.My.MySettings.Default
diff --git a/GUIs.Test.GraphQLTest/My Project/Settings.settings b/GUIs.Test.GraphQLTest/My Project/Settings.settings
index 85b890b3..122a7383 100644
--- a/GUIs.Test.GraphQLTest/My Project/Settings.settings
+++ b/GUIs.Test.GraphQLTest/My Project/Settings.settings
@@ -1,7 +1,24 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/GUIs.Test.GraphQLTest/Form1.Designer.vb b/GUIs.Test.GraphQLTest/frmMain.Designer.vb
similarity index 52%
rename from GUIs.Test.GraphQLTest/Form1.Designer.vb
rename to GUIs.Test.GraphQLTest/frmMain.Designer.vb
index c3c65c59..c9b8db46 100644
--- a/GUIs.Test.GraphQLTest/Form1.Designer.vb
+++ b/GUIs.Test.GraphQLTest/frmMain.Designer.vb
@@ -1,5 +1,5 @@
_
-Partial Class Form1
+Partial Class frmMain
Inherits System.Windows.Forms.Form
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
@@ -22,7 +22,6 @@ Partial Class Form1
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
_
Private Sub InitializeComponent()
- Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form1))
Me.Button1 = New System.Windows.Forms.Button()
Me.txtBaseUrl = New System.Windows.Forms.TextBox()
Me.txtUsername = New System.Windows.Forms.TextBox()
@@ -35,55 +34,64 @@ Partial Class Form1
Me.Label4 = New System.Windows.Forms.Label()
Me.Label5 = New System.Windows.Forms.Label()
Me.txtResults = New System.Windows.Forms.TextBox()
- Me.txtQuery = New System.Windows.Forms.TextBox()
+ Me.txtConnectionString = New System.Windows.Forms.TextBox()
+ Me.Label6 = New System.Windows.Forms.Label()
+ Me.ComboBox1 = New System.Windows.Forms.ComboBox()
+ Me.Label7 = New System.Windows.Forms.Label()
+ Me.TabControl1 = New System.Windows.Forms.TabControl()
+ Me.TabPage1 = New System.Windows.Forms.TabPage()
+ Me.btnLogin = New System.Windows.Forms.Button()
+ Me.ProgressBar1 = New System.Windows.Forms.ProgressBar()
+ Me.TabControl1.SuspendLayout()
+ Me.TabPage1.SuspendLayout()
Me.SuspendLayout()
'
'Button1
'
- Me.Button1.Location = New System.Drawing.Point(15, 407)
+ Me.Button1.Location = New System.Drawing.Point(826, 300)
Me.Button1.Name = "Button1"
- Me.Button1.Size = New System.Drawing.Size(318, 31)
+ Me.Button1.Size = New System.Drawing.Size(96, 31)
Me.Button1.TabIndex = 0
Me.Button1.Text = "Run!"
Me.Button1.UseVisualStyleBackColor = True
'
'txtBaseUrl
'
- Me.txtBaseUrl.Location = New System.Drawing.Point(86, 6)
+ Me.txtBaseUrl.Location = New System.Drawing.Point(106, 6)
Me.txtBaseUrl.Name = "txtBaseUrl"
- Me.txtBaseUrl.Size = New System.Drawing.Size(247, 20)
+ Me.txtBaseUrl.Size = New System.Drawing.Size(338, 20)
Me.txtBaseUrl.TabIndex = 1
- Me.txtBaseUrl.Text = "https://data.api.wisag.de:8090"
+ Me.txtBaseUrl.Text = "https://data.api.wisag.de:8443"
'
'txtUsername
'
- Me.txtUsername.Location = New System.Drawing.Point(86, 32)
+ Me.txtUsername.Location = New System.Drawing.Point(106, 32)
Me.txtUsername.Name = "txtUsername"
- Me.txtUsername.Size = New System.Drawing.Size(247, 20)
+ Me.txtUsername.Size = New System.Drawing.Size(338, 20)
Me.txtUsername.TabIndex = 1
Me.txtUsername.Text = "j.jenne@digitaldata.works"
'
'txtPassword
'
- Me.txtPassword.Location = New System.Drawing.Point(86, 58)
+ Me.txtPassword.Location = New System.Drawing.Point(106, 58)
Me.txtPassword.Name = "txtPassword"
- Me.txtPassword.Size = New System.Drawing.Size(247, 20)
+ Me.txtPassword.Size = New System.Drawing.Size(338, 20)
Me.txtPassword.TabIndex = 1
Me.txtPassword.Text = "DigitalData01!"
'
'txtCertFile
'
- Me.txtCertFile.Location = New System.Drawing.Point(86, 84)
+ Me.txtCertFile.Location = New System.Drawing.Point(106, 84)
Me.txtCertFile.Name = "txtCertFile"
- Me.txtCertFile.Size = New System.Drawing.Size(247, 20)
+ Me.txtCertFile.Size = New System.Drawing.Size(338, 20)
Me.txtCertFile.TabIndex = 1
Me.txtCertFile.Text = "E:\JenneJ\WISAG\jonathanjenne.pfx"
'
'txtCertPass
'
- Me.txtCertPass.Location = New System.Drawing.Point(86, 110)
+ Me.txtCertPass.Location = New System.Drawing.Point(106, 110)
Me.txtCertPass.Name = "txtCertPass"
- Me.txtCertPass.Size = New System.Drawing.Size(247, 20)
+ Me.txtCertPass.Size = New System.Drawing.Size(338, 20)
Me.txtCertPass.TabIndex = 1
Me.txtCertPass.Text = "jonathanjenne"
'
@@ -134,44 +142,114 @@ Partial Class Form1
'
'txtResults
'
+ Me.txtResults.Dock = System.Windows.Forms.DockStyle.Fill
Me.txtResults.Font = New System.Drawing.Font("Consolas", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
- Me.txtResults.Location = New System.Drawing.Point(339, 6)
+ Me.txtResults.Location = New System.Drawing.Point(3, 3)
Me.txtResults.Multiline = True
Me.txtResults.Name = "txtResults"
Me.txtResults.ScrollBars = System.Windows.Forms.ScrollBars.Vertical
- Me.txtResults.Size = New System.Drawing.Size(881, 432)
+ Me.txtResults.Size = New System.Drawing.Size(458, 260)
Me.txtResults.TabIndex = 3
'
- 'txtQuery
+ 'txtConnectionString
'
- Me.txtQuery.Font = New System.Drawing.Font("Consolas", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
- Me.txtQuery.Location = New System.Drawing.Point(15, 136)
- Me.txtQuery.Multiline = True
- Me.txtQuery.Name = "txtQuery"
- Me.txtQuery.Size = New System.Drawing.Size(318, 265)
- Me.txtQuery.TabIndex = 4
- Me.txtQuery.Text = resources.GetString("txtQuery.Text")
+ Me.txtConnectionString.Location = New System.Drawing.Point(106, 136)
+ Me.txtConnectionString.Multiline = True
+ Me.txtConnectionString.Name = "txtConnectionString"
+ Me.txtConnectionString.Size = New System.Drawing.Size(338, 98)
+ Me.txtConnectionString.TabIndex = 1
'
- 'Form1
+ 'Label6
+ '
+ Me.Label6.AutoSize = True
+ Me.Label6.Location = New System.Drawing.Point(12, 139)
+ Me.Label6.Name = "Label6"
+ Me.Label6.Size = New System.Drawing.Size(88, 13)
+ Me.Label6.TabIndex = 2
+ Me.Label6.Text = "ConnectionString"
+ '
+ 'ComboBox1
+ '
+ Me.ComboBox1.FormattingEnabled = True
+ Me.ComboBox1.Items.AddRange(New Object() {"SAPDaten"})
+ Me.ComboBox1.Location = New System.Drawing.Point(106, 240)
+ Me.ComboBox1.Name = "ComboBox1"
+ Me.ComboBox1.Size = New System.Drawing.Size(338, 21)
+ Me.ComboBox1.TabIndex = 4
+ '
+ 'Label7
+ '
+ Me.Label7.AutoSize = True
+ Me.Label7.Location = New System.Drawing.Point(12, 243)
+ Me.Label7.Name = "Label7"
+ Me.Label7.Size = New System.Drawing.Size(35, 13)
+ Me.Label7.TabIndex = 2
+ Me.Label7.Text = "Query"
+ '
+ 'TabControl1
+ '
+ Me.TabControl1.Controls.Add(Me.TabPage1)
+ Me.TabControl1.Location = New System.Drawing.Point(450, 6)
+ Me.TabControl1.Name = "TabControl1"
+ Me.TabControl1.SelectedIndex = 0
+ Me.TabControl1.Size = New System.Drawing.Size(472, 292)
+ Me.TabControl1.TabIndex = 5
+ '
+ 'TabPage1
+ '
+ Me.TabPage1.Controls.Add(Me.txtResults)
+ Me.TabPage1.Location = New System.Drawing.Point(4, 22)
+ Me.TabPage1.Name = "TabPage1"
+ Me.TabPage1.Padding = New System.Windows.Forms.Padding(3)
+ Me.TabPage1.Size = New System.Drawing.Size(464, 266)
+ Me.TabPage1.TabIndex = 0
+ Me.TabPage1.Text = "Raw GraphQL Result"
+ Me.TabPage1.UseVisualStyleBackColor = True
+ '
+ 'btnLogin
+ '
+ Me.btnLogin.Location = New System.Drawing.Point(724, 300)
+ Me.btnLogin.Name = "btnLogin"
+ Me.btnLogin.Size = New System.Drawing.Size(96, 31)
+ Me.btnLogin.TabIndex = 0
+ Me.btnLogin.Text = "Login"
+ Me.btnLogin.UseVisualStyleBackColor = True
+ '
+ 'ProgressBar1
+ '
+ Me.ProgressBar1.Location = New System.Drawing.Point(12, 311)
+ Me.ProgressBar1.Name = "ProgressBar1"
+ Me.ProgressBar1.Size = New System.Drawing.Size(432, 23)
+ Me.ProgressBar1.TabIndex = 6
+ '
+ 'frmMain
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
- Me.ClientSize = New System.Drawing.Size(1232, 450)
- Me.Controls.Add(Me.txtQuery)
- Me.Controls.Add(Me.txtResults)
+ Me.ClientSize = New System.Drawing.Size(934, 346)
+ Me.Controls.Add(Me.ProgressBar1)
+ Me.Controls.Add(Me.TabControl1)
+ Me.Controls.Add(Me.ComboBox1)
+ Me.Controls.Add(Me.Label7)
+ Me.Controls.Add(Me.Label6)
Me.Controls.Add(Me.Label5)
Me.Controls.Add(Me.Label4)
Me.Controls.Add(Me.Label3)
Me.Controls.Add(Me.Label2)
Me.Controls.Add(Me.Label1)
+ Me.Controls.Add(Me.txtConnectionString)
Me.Controls.Add(Me.txtCertPass)
Me.Controls.Add(Me.txtCertFile)
Me.Controls.Add(Me.txtPassword)
Me.Controls.Add(Me.txtUsername)
Me.Controls.Add(Me.txtBaseUrl)
+ Me.Controls.Add(Me.btnLogin)
Me.Controls.Add(Me.Button1)
- Me.Name = "Form1"
- Me.Text = "GraphQL Interface Test"
+ Me.Name = "frmMain"
+ Me.Text = "GraphQL Interface"
+ Me.TabControl1.ResumeLayout(False)
+ Me.TabPage1.ResumeLayout(False)
+ Me.TabPage1.PerformLayout()
Me.ResumeLayout(False)
Me.PerformLayout()
@@ -189,5 +267,12 @@ Partial Class Form1
Friend WithEvents Label4 As Label
Friend WithEvents Label5 As Label
Friend WithEvents txtResults As TextBox
- Friend WithEvents txtQuery As TextBox
+ Friend WithEvents txtConnectionString As TextBox
+ Friend WithEvents Label6 As Label
+ Friend WithEvents ComboBox1 As ComboBox
+ Friend WithEvents Label7 As Label
+ Friend WithEvents TabControl1 As TabControl
+ Friend WithEvents TabPage1 As TabPage
+ Friend WithEvents btnLogin As Button
+ Friend WithEvents ProgressBar1 As ProgressBar
End Class
diff --git a/GUIs.Test.GraphQLTest/Form1.resx b/GUIs.Test.GraphQLTest/frmMain.resx
similarity index 94%
rename from GUIs.Test.GraphQLTest/Form1.resx
rename to GUIs.Test.GraphQLTest/frmMain.resx
index de5f15ff..1af7de15 100644
--- a/GUIs.Test.GraphQLTest/Form1.resx
+++ b/GUIs.Test.GraphQLTest/frmMain.resx
@@ -117,22 +117,4 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- query Nls{
- niederlassungen {
- niederlassungen {
- mdnr
- mdkurzbezeichnung
- bezeichnung
- sparte {
- id
- name
- __typename
- }
- __typename
- }
- __typename
- }
-}
-
\ No newline at end of file
diff --git a/GUIs.Test.GraphQLTest/frmMain.vb b/GUIs.Test.GraphQLTest/frmMain.vb
new file mode 100644
index 00000000..ea842647
--- /dev/null
+++ b/GUIs.Test.GraphQLTest/frmMain.vb
@@ -0,0 +1,186 @@
+Imports System.IO
+Imports DigitalData.Modules.Database
+Imports DigitalData.Modules.Interfaces
+Imports DigitalData.Modules.Logging
+Imports DigitalData.Modules.Config
+Imports Newtonsoft.Json
+Imports Newtonsoft.Json.Linq
+
+Public Class frmMain
+ Private _LogConfig As LogConfig
+ Private _Logger As Logger
+ Private _Interface As GraphQLInterface
+ Private _MSSQL As MSSQLServer
+ Private _Config As ConfigManager(Of Config)
+ Private _Datapools As New List(Of String) From {
+ "sap_aviation",
+ "sap_facility",
+ "sap_holding"
+ }
+
+ Public Class SAPData
+ Public sapdaten As List(Of SAPDataItem)
+ End Class
+
+ Public Class SAPDataItem
+ Public buchungskreis As String
+ Public kostenstelle As String
+ Public beschreibung As String
+ Public gueltig_bis As String
+ End Class
+
+ Const GRAPHQL_QUERY_SAP_DATA = "
+ query SAPDaten {
+ sapdaten(datenpool: __DATA_POOL__) {
+ sapdaten {
+ buchungskreis
+ kostenstelle
+ beschreibung
+ gueltig_bis
+ }
+ }
+ }
+ "
+
+ Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
+ Try
+ Dim oStartupPath As String = AppDomain.CurrentDomain.BaseDirectory
+
+ _LogConfig = New LogConfig(LogConfig.PathType.CustomPath, oStartupPath) With {
+ .Debug = True
+ }
+ _Logger = _LogConfig.GetLogger()
+ _Config = New ConfigManager(Of Config)(_LogConfig, oStartupPath)
+
+ txtBaseUrl.Text = _Config.Config.BaseUrl
+ txtUsername.Text = _Config.Config.Email
+ txtPassword.Text = _Config.Config.Password
+ txtCertFile.Text = _Config.Config.CertificateFile
+ txtCertPass.Text = _Config.Config.CertificatePass
+ txtConnectionString.Text = _Config.Config.ConnectionString
+
+ ComboBox1.SelectedIndex = 0
+
+ _MSSQL = New MSSQLServer(_LogConfig, _Config.Config.ConnectionString)
+ Catch ex As Exception
+ _Logger.Error(ex)
+ MsgBox(ex.Message, MsgBoxStyle.Critical, Text)
+ End Try
+ End Sub
+
+ Private Sub btnLogin_Click(sender As Object, e As EventArgs) Handles btnLogin.Click
+ Try
+ _Interface = New GraphQLInterface(_LogConfig,
+ txtBaseUrl.Text,
+ txtUsername.Text,
+ txtPassword.Text,
+ txtCertFile.Text,
+ txtCertPass.Text)
+
+ Dim oResponse = _Interface.Login
+ _Interface.SaveCookies(oResponse.Cookies.Item(0))
+
+ If oResponse.StatusCode = Net.HttpStatusCode.OK Then
+ MsgBox("Login Successful!", MsgBoxStyle.Information, Text)
+ Else
+ MsgBox("Login failed! Check Certificate and User Credentials!", MsgBoxStyle.Critical, Text)
+ End If
+ Catch ex As Exception
+ _Logger.Error(ex)
+ MsgBox(ex.Message, MsgBoxStyle.Critical, Text)
+ End Try
+ End Sub
+
+ Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
+ Try
+
+ If _Interface Is Nothing Then
+ MsgBox("Please login first!", MsgBoxStyle.Exclamation, Text)
+ Exit Sub
+ End If
+
+ If ComboBox1.SelectedIndex = -1 Then
+ MsgBox("Please select a query!", MsgBoxStyle.Exclamation, Text)
+ Exit Sub
+ End If
+
+ If ComboBox1.Text = "SAPDaten" Then
+ _MSSQL.ExecuteNonQuery("DELETE FROM TBCUST_SYNC_API_SAPDATEN")
+
+ txtResults.Text = String.Empty
+
+ For Each oDatapool In _Datapools
+ Dim oQuery As String = GRAPHQL_QUERY_SAP_DATA.Trim.Replace("__DATA_POOL__", oDatapool)
+ Dim oDataResponse = _Interface.GetData(oQuery, "SAPDaten")
+ Dim oResult As String
+
+ Using oStream = oDataResponse.GetResponseStream()
+ Using oReader As New StreamReader(oStream)
+ oResult = oReader.ReadToEnd()
+ End Using
+ End Using
+
+ Dim oObj As JObject = JsonConvert.DeserializeObject(oResult)
+ Dim oData As SAPData = ConvertResponse(oResult)
+
+ _Logger.Debug("Inserting [{0}] items for datapool [{1}]", oData.sapdaten.Count, oDatapool)
+
+ Dim oCounter As Integer = 0
+ Dim oTotal As Integer = oData.sapdaten.Count
+ ProgressBar1.Maximum = oTotal
+ ProgressBar1.Value = oCounter
+
+ For Each oItem As SAPDataItem In oData.sapdaten
+ Dim oSQL = $"INSERT INTO TBCUST_SYNC_API_SAPDATEN (BESCHREIBUNG, BUCHUNGSKREIS, KOSTENSTELLE, GUELTIG_BIS) VALUES ('{oItem.beschreibung}', '{oItem.buchungskreis}', '{oItem.kostenstelle}', '{oItem.gueltig_bis}')"
+ Dim oSuccess = _MSSQL.ExecuteNonQuery(oSQL)
+
+ If oSuccess Then
+ _Logger.Debug("Record [{0}] inserted!", oItem.beschreibung)
+ End If
+ Next
+
+ txtResults.Text &= "--------------------------------------------" & vbNewLine
+ txtResults.Text &= $"--- Datapool: {oDatapool}" & vbNewLine
+ txtResults.Text &= JsonConvert.SerializeObject(oObj, Formatting.Indented) & vbNewLine
+
+ oCounter += 1
+ ProgressBar1.Value = oCounter
+ Next
+ Else
+ MsgBox("Unknown query!", MsgBoxStyle.Exclamation, Text)
+ Exit Sub
+ End If
+ Catch ex As Exception
+ _Logger.Error(ex)
+ MsgBox(ex.Message, MsgBoxStyle.Critical)
+ End Try
+ End Sub
+
+ Private Sub frmMain_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
+ Try
+ Dim oLogoutResponse = _Interface.Logout()
+ If oLogoutResponse.StatusCode = Net.HttpStatusCode.OK Then
+ _Logger.Info("Logout successful.")
+ End If
+
+ _Config.Config.ConnectionString = txtConnectionString.Text
+ _Config.Config.BaseUrl = txtBaseUrl.Text
+ _Config.Config.CertificateFile = txtCertFile.Text
+ _Config.Config.CertificatePass = txtCertPass.Text
+ _Config.Config.Email = txtUsername.Text
+ _Config.Config.Password = txtPassword.Text
+
+ _Config.Save()
+ Catch ex As Exception
+ _Logger.Error(ex)
+ End Try
+ End Sub
+
+ Public Function ConvertResponse(JsonString As String) As SAPData
+ Dim oObj As JObject = JObject.Parse(JsonString)("data")("sapdaten")
+ Dim oString As String = JsonConvert.SerializeObject(oObj, Formatting.None)
+ Dim oSAPData As SAPData = JsonConvert.DeserializeObject(Of SAPData)(oString)
+
+ Return oSAPData
+ End Function
+End Class
diff --git a/Modules.Interfaces/GrapQLInterface/QueryData.vb b/Modules.Interfaces/GrapQLInterface/QueryData.vb
index 6081f1c6..4bdc356a 100644
--- a/Modules.Interfaces/GrapQLInterface/QueryData.vb
+++ b/Modules.Interfaces/GrapQLInterface/QueryData.vb
@@ -1,5 +1,5 @@
Public Class QueryData
- Public Query As String
- Public OperationName As String
- Public Variables As New Object
+ Public query As String
+ Public operationName As String
+ Public variables As New Object
End Class
diff --git a/Modules.Interfaces/GraphQLInterface.vb b/Modules.Interfaces/GraphQLInterface.vb
index 8cb39dd9..3b1b7d6d 100644
--- a/Modules.Interfaces/GraphQLInterface.vb
+++ b/Modules.Interfaces/GraphQLInterface.vb
@@ -71,11 +71,12 @@ Public Class GraphQLInterface
Public Function GetData(Query As String, OperationName As String) As HttpWebResponse
Try
Dim oQueryData As New QueryData() With {
- .OperationName = OperationName,
- .Query = Query,
- .Variables = New Object
- }
- Dim oBytes = ToBytes(JsonConvert.SerializeObject(oQueryData))
+ .operationName = OperationName,
+ .query = Query,
+ .variables = New Object
+ }
+ Dim oJson = JsonConvert.SerializeObject(oQueryData)
+ Dim oBytes = ToBytes(oJson)
Dim oRequest = GetRequest("/graphql", oBytes)
Using stream = oRequest.GetRequestStream()
@@ -107,7 +108,7 @@ Public Class GraphQLInterface
Private Function GetCookies() As CookieContainer
If _cookieJar Is Nothing Then
- _cookieJar = New CookieContainer()
+ _cookieJar = New CookieContainer(300, 20, 8192)
End If
Return _cookieJar