diff --git a/GUIs.Test.EDMIBenchmark/Form1.vb b/GUIs.Test.EDMIBenchmark/Form1.vb index aac64917..fd3aa573 100644 --- a/GUIs.Test.EDMIBenchmark/Form1.vb +++ b/GUIs.Test.EDMIBenchmark/Form1.vb @@ -15,7 +15,7 @@ Public Class Form1 Try _LogConfig = New LogConfig(LogConfig.PathType.Temp, Nothing, "EDMIBenschmark") _Logger = _LogConfig.GetLogger() - _Client = New Client(_LogConfig, "net.tcp://172.24.12.39:9000/DigitalData/Services/Main") + _Client = New Client(_LogConfig, "172.24.12.39", 9000) _Client.Connect() DocumentViewer1.Init(_LogConfig, "21182889975216572111813147150675976632") 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..790b811a --- /dev/null +++ b/GUIs.Test.GraphQLTest/Config.vb @@ -0,0 +1,21 @@ +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" + + Public Property ProxyHost As String = "" + Public Property ProxyPort As Integer = 0 + Public Property ProxyUsername As String = "" + Public Property ProxyPassword As String = "" + + Public Function HasProxySet() As Boolean + Return ProxyHost <> "" And ProxyPort > 0 + End Function + + Public Function HasProxyCredentialsSet() As Boolean + Return ProxyUsername <> "" And ProxyPassword <> "" + End Function +End Class diff --git a/GUIs.Test.GraphQLTest/Form1.Designer.vb b/GUIs.Test.GraphQLTest/Form1.Designer.vb deleted file mode 100644 index c3c65c59..00000000 --- a/GUIs.Test.GraphQLTest/Form1.Designer.vb +++ /dev/null @@ -1,193 +0,0 @@ - _ -Partial Class Form1 - Inherits System.Windows.Forms.Form - - 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. - _ - Protected Overrides Sub Dispose(ByVal disposing As Boolean) - Try - If disposing AndAlso components IsNot Nothing Then - components.Dispose() - End If - Finally - MyBase.Dispose(disposing) - End Try - End Sub - - 'Wird vom Windows Form-Designer benötigt. - Private components As System.ComponentModel.IContainer - - 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. - 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. - '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() - Me.txtPassword = New System.Windows.Forms.TextBox() - Me.txtCertFile = New System.Windows.Forms.TextBox() - Me.txtCertPass = New System.Windows.Forms.TextBox() - Me.Label1 = New System.Windows.Forms.Label() - Me.Label2 = New System.Windows.Forms.Label() - Me.Label3 = New System.Windows.Forms.Label() - 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.SuspendLayout() - ' - 'Button1 - ' - Me.Button1.Location = New System.Drawing.Point(15, 407) - Me.Button1.Name = "Button1" - Me.Button1.Size = New System.Drawing.Size(318, 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.Name = "txtBaseUrl" - Me.txtBaseUrl.Size = New System.Drawing.Size(247, 20) - Me.txtBaseUrl.TabIndex = 1 - Me.txtBaseUrl.Text = "https://data.api.wisag.de:8090" - ' - 'txtUsername - ' - Me.txtUsername.Location = New System.Drawing.Point(86, 32) - Me.txtUsername.Name = "txtUsername" - Me.txtUsername.Size = New System.Drawing.Size(247, 20) - Me.txtUsername.TabIndex = 1 - Me.txtUsername.Text = "j.jenne@digitaldata.works" - ' - 'txtPassword - ' - Me.txtPassword.Location = New System.Drawing.Point(86, 58) - Me.txtPassword.Name = "txtPassword" - Me.txtPassword.Size = New System.Drawing.Size(247, 20) - Me.txtPassword.TabIndex = 1 - Me.txtPassword.Text = "DigitalData01!" - ' - 'txtCertFile - ' - Me.txtCertFile.Location = New System.Drawing.Point(86, 84) - Me.txtCertFile.Name = "txtCertFile" - Me.txtCertFile.Size = New System.Drawing.Size(247, 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.Name = "txtCertPass" - Me.txtCertPass.Size = New System.Drawing.Size(247, 20) - Me.txtCertPass.TabIndex = 1 - Me.txtCertPass.Text = "jonathanjenne" - ' - 'Label1 - ' - Me.Label1.AutoSize = True - Me.Label1.Location = New System.Drawing.Point(12, 9) - Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(53, 13) - Me.Label1.TabIndex = 2 - Me.Label1.Text = "BaseURL" - ' - 'Label2 - ' - Me.Label2.AutoSize = True - Me.Label2.Location = New System.Drawing.Point(12, 35) - Me.Label2.Name = "Label2" - Me.Label2.Size = New System.Drawing.Size(32, 13) - Me.Label2.TabIndex = 2 - Me.Label2.Text = "Email" - ' - 'Label3 - ' - Me.Label3.AutoSize = True - Me.Label3.Location = New System.Drawing.Point(12, 61) - Me.Label3.Name = "Label3" - Me.Label3.Size = New System.Drawing.Size(53, 13) - Me.Label3.TabIndex = 2 - Me.Label3.Text = "Password" - ' - 'Label4 - ' - Me.Label4.AutoSize = True - Me.Label4.Location = New System.Drawing.Point(12, 87) - Me.Label4.Name = "Label4" - Me.Label4.Size = New System.Drawing.Size(45, 13) - Me.Label4.TabIndex = 2 - Me.Label4.Text = "Cert File" - ' - 'Label5 - ' - Me.Label5.AutoSize = True - Me.Label5.Location = New System.Drawing.Point(12, 113) - Me.Label5.Name = "Label5" - Me.Label5.Size = New System.Drawing.Size(52, 13) - Me.Label5.TabIndex = 2 - Me.Label5.Text = "Cert Pass" - ' - 'txtResults - ' - 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.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.TabIndex = 3 - ' - 'txtQuery - ' - 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") - ' - 'Form1 - ' - 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.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.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.Button1) - Me.Name = "Form1" - Me.Text = "GraphQL Interface Test" - Me.ResumeLayout(False) - Me.PerformLayout() - - End Sub - - Friend WithEvents Button1 As Button - Friend WithEvents txtBaseUrl As TextBox - Friend WithEvents txtUsername As TextBox - Friend WithEvents txtPassword As TextBox - Friend WithEvents txtCertFile As TextBox - Friend WithEvents txtCertPass As TextBox - Friend WithEvents Label1 As Label - Friend WithEvents Label2 As Label - Friend WithEvents Label3 As Label - Friend WithEvents Label4 As Label - Friend WithEvents Label5 As Label - Friend WithEvents txtResults As TextBox - Friend WithEvents txtQuery As TextBox -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/frmMain.Designer.vb b/GUIs.Test.GraphQLTest/frmMain.Designer.vb new file mode 100644 index 00000000..a226e067 --- /dev/null +++ b/GUIs.Test.GraphQLTest/frmMain.Designer.vb @@ -0,0 +1,366 @@ + _ +Partial Class frmMain + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Me.Button1 = New System.Windows.Forms.Button() + Me.txtBaseUrl = New System.Windows.Forms.TextBox() + Me.txtUsername = New System.Windows.Forms.TextBox() + Me.txtPassword = New System.Windows.Forms.TextBox() + Me.txtCertFile = New System.Windows.Forms.TextBox() + Me.txtCertPass = New System.Windows.Forms.TextBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.Label2 = New System.Windows.Forms.Label() + Me.Label3 = New System.Windows.Forms.Label() + Me.Label4 = New System.Windows.Forms.Label() + Me.Label5 = New System.Windows.Forms.Label() + Me.txtResults = 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.txtProxyHost = New System.Windows.Forms.TextBox() + Me.txtProxyUser = New System.Windows.Forms.TextBox() + Me.txtProxyPass = New System.Windows.Forms.TextBox() + Me.Label8 = New System.Windows.Forms.Label() + Me.Label9 = New System.Windows.Forms.Label() + Me.Label10 = New System.Windows.Forms.Label() + Me.txtProxyPort = New System.Windows.Forms.TextBox() + Me.Label11 = New System.Windows.Forms.Label() + Me.TabControl1.SuspendLayout() + Me.TabPage1.SuspendLayout() + Me.SuspendLayout() + ' + 'Button1 + ' + Me.Button1.Location = New System.Drawing.Point(826, 386) + Me.Button1.Name = "Button1" + 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(106, 6) + Me.txtBaseUrl.Name = "txtBaseUrl" + Me.txtBaseUrl.Size = New System.Drawing.Size(338, 20) + Me.txtBaseUrl.TabIndex = 1 + Me.txtBaseUrl.Text = "https://data.api.wisag.de:8443" + ' + 'txtUsername + ' + Me.txtUsername.Location = New System.Drawing.Point(106, 32) + Me.txtUsername.Name = "txtUsername" + 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(106, 58) + Me.txtPassword.Name = "txtPassword" + 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(106, 84) + Me.txtCertFile.Name = "txtCertFile" + 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(106, 110) + Me.txtCertPass.Name = "txtCertPass" + Me.txtCertPass.Size = New System.Drawing.Size(338, 20) + Me.txtCertPass.TabIndex = 1 + Me.txtCertPass.Text = "jonathanjenne" + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(12, 9) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(53, 13) + Me.Label1.TabIndex = 2 + Me.Label1.Text = "BaseURL" + ' + 'Label2 + ' + Me.Label2.AutoSize = True + Me.Label2.Location = New System.Drawing.Point(12, 35) + Me.Label2.Name = "Label2" + Me.Label2.Size = New System.Drawing.Size(32, 13) + Me.Label2.TabIndex = 2 + Me.Label2.Text = "Email" + ' + 'Label3 + ' + Me.Label3.AutoSize = True + Me.Label3.Location = New System.Drawing.Point(12, 61) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(53, 13) + Me.Label3.TabIndex = 2 + Me.Label3.Text = "Password" + ' + 'Label4 + ' + Me.Label4.AutoSize = True + Me.Label4.Location = New System.Drawing.Point(12, 87) + Me.Label4.Name = "Label4" + Me.Label4.Size = New System.Drawing.Size(45, 13) + Me.Label4.TabIndex = 2 + Me.Label4.Text = "Cert File" + ' + 'Label5 + ' + Me.Label5.AutoSize = True + Me.Label5.Location = New System.Drawing.Point(12, 113) + Me.Label5.Name = "Label5" + Me.Label5.Size = New System.Drawing.Size(52, 13) + Me.Label5.TabIndex = 2 + Me.Label5.Text = "Cert Pass" + ' + '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(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(458, 342) + Me.txtResults.TabIndex = 3 + ' + 'txtConnectionString + ' + 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 + ' + '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, 352) + 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, 355) + 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, 374) + 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, 348) + Me.TabPage1.TabIndex = 0 + Me.TabPage1.Text = "Raw GraphQL Result" + Me.TabPage1.UseVisualStyleBackColor = True + ' + 'btnLogin + ' + Me.btnLogin.Location = New System.Drawing.Point(724, 386) + 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, 394) + Me.ProgressBar1.Name = "ProgressBar1" + Me.ProgressBar1.Size = New System.Drawing.Size(432, 23) + Me.ProgressBar1.TabIndex = 6 + ' + 'txtProxyHost + ' + Me.txtProxyHost.Location = New System.Drawing.Point(106, 240) + Me.txtProxyHost.Name = "txtProxyHost" + Me.txtProxyHost.Size = New System.Drawing.Size(338, 20) + Me.txtProxyHost.TabIndex = 1 + ' + 'txtProxyUser + ' + Me.txtProxyUser.Location = New System.Drawing.Point(106, 292) + Me.txtProxyUser.Name = "txtProxyUser" + Me.txtProxyUser.Size = New System.Drawing.Size(338, 20) + Me.txtProxyUser.TabIndex = 1 + ' + 'txtProxyPass + ' + Me.txtProxyPass.Location = New System.Drawing.Point(106, 318) + Me.txtProxyPass.Name = "txtProxyPass" + Me.txtProxyPass.Size = New System.Drawing.Size(338, 20) + Me.txtProxyPass.TabIndex = 1 + ' + 'Label8 + ' + Me.Label8.AutoSize = True + Me.Label8.Location = New System.Drawing.Point(12, 243) + Me.Label8.Name = "Label8" + Me.Label8.Size = New System.Drawing.Size(58, 13) + Me.Label8.TabIndex = 2 + Me.Label8.Text = "Proxy Host" + ' + 'Label9 + ' + Me.Label9.AutoSize = True + Me.Label9.Location = New System.Drawing.Point(12, 295) + Me.Label9.Name = "Label9" + Me.Label9.Size = New System.Drawing.Size(58, 13) + Me.Label9.TabIndex = 2 + Me.Label9.Text = "Proxy User" + ' + 'Label10 + ' + Me.Label10.AutoSize = True + Me.Label10.Location = New System.Drawing.Point(12, 321) + Me.Label10.Name = "Label10" + Me.Label10.Size = New System.Drawing.Size(82, 13) + Me.Label10.TabIndex = 2 + Me.Label10.Text = "Proxy Password" + ' + 'txtProxyPort + ' + Me.txtProxyPort.Location = New System.Drawing.Point(106, 266) + Me.txtProxyPort.Name = "txtProxyPort" + Me.txtProxyPort.Size = New System.Drawing.Size(338, 20) + Me.txtProxyPort.TabIndex = 1 + ' + 'Label11 + ' + Me.Label11.AutoSize = True + Me.Label11.Location = New System.Drawing.Point(12, 269) + Me.Label11.Name = "Label11" + Me.Label11.Size = New System.Drawing.Size(55, 13) + Me.Label11.TabIndex = 2 + Me.Label11.Text = "Proxy Port" + ' + 'frmMain + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(934, 429) + 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.Label10) + Me.Controls.Add(Me.Label3) + Me.Controls.Add(Me.Label9) + Me.Controls.Add(Me.Label2) + Me.Controls.Add(Me.Label11) + Me.Controls.Add(Me.Label8) + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.txtConnectionString) + Me.Controls.Add(Me.txtCertPass) + Me.Controls.Add(Me.txtCertFile) + Me.Controls.Add(Me.txtProxyPass) + Me.Controls.Add(Me.txtPassword) + Me.Controls.Add(Me.txtProxyUser) + Me.Controls.Add(Me.txtUsername) + Me.Controls.Add(Me.txtProxyPort) + Me.Controls.Add(Me.txtProxyHost) + Me.Controls.Add(Me.txtBaseUrl) + Me.Controls.Add(Me.btnLogin) + Me.Controls.Add(Me.Button1) + Me.Name = "frmMain" + Me.Text = "GraphQL Interface" + Me.TabControl1.ResumeLayout(False) + Me.TabPage1.ResumeLayout(False) + Me.TabPage1.PerformLayout() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + + Friend WithEvents Button1 As Button + Friend WithEvents txtBaseUrl As TextBox + Friend WithEvents txtUsername As TextBox + Friend WithEvents txtPassword As TextBox + Friend WithEvents txtCertFile As TextBox + Friend WithEvents txtCertPass As TextBox + Friend WithEvents Label1 As Label + Friend WithEvents Label2 As Label + Friend WithEvents Label3 As Label + Friend WithEvents Label4 As Label + Friend WithEvents Label5 As Label + Friend WithEvents txtResults 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 + Friend WithEvents txtProxyHost As TextBox + Friend WithEvents txtProxyUser As TextBox + Friend WithEvents txtProxyPass As TextBox + Friend WithEvents Label8 As Label + Friend WithEvents Label9 As Label + Friend WithEvents Label10 As Label + Friend WithEvents txtProxyPort As TextBox + Friend WithEvents Label11 As Label +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..717aebda --- /dev/null +++ b/GUIs.Test.GraphQLTest/frmMain.vb @@ -0,0 +1,213 @@ +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 +Imports System.Net + +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 + txtProxyHost.Text = _Config.Config.ProxyHost + txtProxyPort.Text = _Config.Config.ProxyPort + txtProxyUser.Text = _Config.Config.ProxyUsername + txtProxyPass.Text = _Config.Config.ProxyPassword + + 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) + + If _Config.Config.HasProxySet() And _Config.Config.HasProxyCredentialsSet() Then + Dim oURI As New Uri($"http://{_Config.Config.ProxyHost}:{_Config.Config.ProxyPort}") + Dim oCredentials As New NetworkCredential(_Config.Config.ProxyUsername, _Config.Config.ProxyPassword) + Dim oProxy As New WebProxy() With { + .Address = oURI, + .UseDefaultCredentials = False, + .Credentials = oCredentials + } + _Interface.Proxy = oProxy + + _Logger.Debug("Using Proxy: {0}", oURI.ToString) + _Logger.Debug("Proxy Credentials: [{0}] [{1}]", _Config.Config.ProxyUsername, _Config.Config.ProxyPassword) + Else + _Logger.Debug("Proxy not set.") + End If + + 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 + + oCounter += 1 + ProgressBar1.Value = oCounter + Next + + txtResults.Text &= "--------------------------------------------" & vbNewLine + txtResults.Text &= $"--- Datapool: {oDatapool}" & vbNewLine + txtResults.Text &= JsonConvert.SerializeObject(oObj, Formatting.Indented) & vbNewLine + + Application.DoEvents() + 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 + _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.Config.ProxyHost = txtProxyHost.Text + _Config.Config.ProxyPassword = txtProxyPass.Text + _Config.Config.ProxyPort = txtProxyPort.Text + _Config.Config.ProxyUsername = txtProxyUser.Text + _Config.Save(ForceAll:=True) + + Dim oLogoutResponse = _Interface.Logout() + If oLogoutResponse.StatusCode = Net.HttpStatusCode.OK Then + _Logger.Info("Logout successful.") + End If + 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.EDMIAPI/Client.vb b/Modules.EDMIAPI/Client.vb index 2ca1d33e..8bceaa00 100644 --- a/Modules.EDMIAPI/Client.vb +++ b/Modules.EDMIAPI/Client.vb @@ -36,6 +36,20 @@ Public Class Client End Try End Sub + Public Sub New(LogConfig As LogConfig, IPAddress As String, PortNumber As Integer) + _logger = LogConfig.GetLogger() + + Try + 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 + ''' ''' Connect to the service ''' diff --git a/Modules.Filesystem/File.vb b/Modules.Filesystem/File.vb index 941e91ea..af4dae4d 100644 --- a/Modules.Filesystem/File.vb +++ b/Modules.Filesystem/File.vb @@ -1,4 +1,5 @@ Imports System.IO +Imports System.Text.RegularExpressions Imports DigitalData.Modules.Logging ''' File @@ -24,13 +25,46 @@ Public Class File Private ReadOnly _logger As Logger Private ReadOnly _logConfig As LogConfig + Private ReadOnly _invalidFilenameChars As String + Private ReadOnly _invalidPathChars As String + + Private Const REGEX_CLEAN_FILENAME As String = "[\\/:""<>|\b\0\r\n\t]" + Private Const REGEX_CLEAN_PATH As String = "[:""<>|\b\0\r\n\t]" + Private Const FILE_NAME_ACCESS_TEST = "accessTest.txt" Public Sub New(LogConfig As LogConfig) _logConfig = LogConfig _logger = LogConfig.GetLogger() + + _invalidFilenameChars = String.Join("", Path.GetInvalidFileNameChars()) + _invalidPathChars = String.Join("", Path.GetInvalidPathChars()) End Sub + Public Function GetCleanFilename(FileName As String) As String + _logger.Debug("Filename before cleaning: [{0}]", FileName) + + Dim oCleanName As String = FileName + oCleanName = Regex.Replace(oCleanName, _invalidFilenameChars, String.Empty) + oCleanName = Regex.Replace(oCleanName, REGEX_CLEAN_FILENAME, String.Empty, RegexOptions.Singleline) + + _logger.Debug("Filename after cleaning: [{0}]", oCleanName) + + Return oCleanName + End Function + + Public Function GetCleanPath(FilePath As String) As String + _logger.Debug("Path before cleaning: [{0}]", FilePath) + + Dim oCleanName As String = FilePath + oCleanName = Regex.Replace(oCleanName, _invalidPathChars, String.Empty) + oCleanName = Regex.Replace(oCleanName, REGEX_CLEAN_PATH, String.Empty, RegexOptions.Singleline) + + _logger.Debug("Path after cleaning: [{0}]", oCleanName) + + Return oCleanName + End Function + ''' ''' Adds fileversions to given filename `Destination` if that file already exists. ''' diff --git a/Modules.Filesystem/My Project/AssemblyInfo.vb b/Modules.Filesystem/My Project/AssemblyInfo.vb index d3b46582..832d1440 100644 --- a/Modules.Filesystem/My Project/AssemblyInfo.vb +++ b/Modules.Filesystem/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - + 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..aab25113 100644 --- a/Modules.Interfaces/GraphQLInterface.vb +++ b/Modules.Interfaces/GraphQLInterface.vb @@ -13,9 +13,10 @@ Public Class GraphQLInterface Private _userPassword As String Private _certificate As X509Certificate Private _cookieJar As CookieContainer - Private _Encoding As New UTF8Encoding + Public Property Proxy As WebProxy + Public Sub New(LogConfig As LogConfig, BaseUrl As String, Email As String, Password As String, CertificateFile As String, CertificatePassword As String) Try _logConfig = LogConfig @@ -71,11 +72,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() @@ -91,6 +93,9 @@ Public Class GraphQLInterface Private Function GetRequest(Url As String, PostData As Byte()) As HttpWebRequest Try + ServicePointManager.Expect100Continue = True + ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls Or SecurityProtocolType.Tls11 Or SecurityProtocolType.Tls12 + Dim oRequest As HttpWebRequest = WebRequest.Create($"{_baseUrl}{Url}") oRequest.Method = "POST" oRequest.ContentType = "application/json" @@ -98,6 +103,10 @@ Public Class GraphQLInterface oRequest.ClientCertificates.Add(_certificate) oRequest.CookieContainer = GetCookies() + If Proxy IsNot Nothing Then + oRequest.Proxy = Proxy + End If + Return oRequest Catch ex As Exception _logger.Error(ex) @@ -107,7 +116,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 diff --git a/Modules.Interfaces/My Project/AssemblyInfo.vb b/Modules.Interfaces/My Project/AssemblyInfo.vb index 213861ec..73e75b1d 100644 --- a/Modules.Interfaces/My Project/AssemblyInfo.vb +++ b/Modules.Interfaces/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - + diff --git a/Modules.Interfaces/ZUGFeRDInterface/PDFAttachments.vb b/Modules.Interfaces/ZUGFeRDInterface/PDFAttachments.vb index 1ee220ae..0e81c1c8 100644 --- a/Modules.Interfaces/ZUGFeRDInterface/PDFAttachments.vb +++ b/Modules.Interfaces/ZUGFeRDInterface/PDFAttachments.vb @@ -117,7 +117,7 @@ Public Class PDFAttachments Continue For End If Else - Logger.Warn("File [{0}] was skipped because its extension [{1}] is not allowed.", oFileName, oExtension) + Logger.Debug("File [{0}] was skipped because its extension [{1}] is not allowed.", oFileName, oExtension) Continue For End If Else diff --git a/Modules.Jobs/EDMI/ZUGFeRD/ImportZUGFeRDFiles.vb b/Modules.Jobs/EDMI/ZUGFeRD/ImportZUGFeRDFiles.vb index 2bfb4757..edbef779 100644 --- a/Modules.Jobs/EDMI/ZUGFeRD/ImportZUGFeRDFiles.vb +++ b/Modules.Jobs/EDMI/ZUGFeRD/ImportZUGFeRDFiles.vb @@ -27,6 +27,7 @@ Public Class ImportZUGFeRDFiles Public HISTORY_ID As Integer ' List of allowed extensions for PDF/A Attachments + ' This list should not contain xml so the zugferd xml file will be filtered out Private ReadOnly AllowedExtensions As List(Of String) = New List(Of String) From {"docx", "doc", "pdf", "xls", "xlsx", "ppt", "pptx", "txt"} Private ReadOnly _logger As Logger @@ -185,22 +186,23 @@ Public Class ImportZUGFeRDFiles Catch ex As ZUGFeRDExecption Select Case ex.ErrorType Case ZUGFeRDInterface.ErrorType.NoZugferd - _logger.Warn("File is not a valid ZUGFeRD document! Skipping.") + _logger.Warn("File [{0}] is not a valid ZUGFeRD document! Skipping.", oFile.Name) oEmailAttachmentFiles.Add(oFile) Continue For Case ZUGFeRDInterface.ErrorType.NoValidZugferd - _logger.Warn("File is an Incorrectly formatted ZUGFeRD document!") + _logger.Warn("File [{0}] is an Incorrectly formatted ZUGFeRD document!", oFile.Name) Throw New InvalidFerdException() Case Else - _logger.Warn("Unexpected Error occurred while extracting ZUGFeRD Information from file {0}", oFile.FullName) + _logger.Warn("Unexpected Error occurred while extracting ZUGFeRD Information from file {0}", oFile.Name) Throw ex End Select End Try ' Extract all attachments with the extensions specified in `AllowedExtensions`. ' If you need to extract and use embedded xml files, you need to filter out the zugferd-invoice.xml yourself. + ' Right now the zugferd-invoice.xml is filtered out because `AllowedExtensions` does not contain `xml`. Dim oAttachments = oAttachmentExtractor.Extract(oFile.FullName, AllowedExtensions) If oAttachments Is Nothing Then _logger.Warn("Attachments for file [{0}] could not be extracted", oFile.FullName) diff --git a/Modules.Jobs/My Project/AssemblyInfo.vb b/Modules.Jobs/My Project/AssemblyInfo.vb index 0fe78cac..8e2ba0be 100644 --- a/Modules.Jobs/My Project/AssemblyInfo.vb +++ b/Modules.Jobs/My Project/AssemblyInfo.vb @@ -30,5 +30,5 @@ Imports System.Runtime.InteropServices ' Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern ' übernehmen, indem Sie "*" eingeben: - + diff --git a/Modules.Logging/LogConfig.vb b/Modules.Logging/LogConfig.vb index 5b4e7e5c..66e92604 100644 --- a/Modules.Logging/LogConfig.vb +++ b/Modules.Logging/LogConfig.vb @@ -66,14 +66,12 @@ Public Class LogConfig Private Const ARCHIVE_EVERY As FileArchivePeriod = FileArchivePeriod.Day Private Const FILE_NAME_FORMAT_DEFAULT As String = "${shortdate}-${var:product}${var:suffix}.log" - Private Const FILE_NAME_FORMAT_DETAIL As String = "${shortdate}-${var:product}${var:suffix}-Detail.log" Private Const FILE_NAME_FORMAT_DEBUG As String = "${shortdate}-${var:product}${var:suffix}-Debug.log" Private Const FILE_NAME_FORMAT_ERROR As String = "${shortdate}-${var:product}${var:suffix}-Error.log" Private Const TARGET_DEFAULT As String = "defaultTarget" Private Const TARGET_ERROR_EX As String = "errorExceptionTarget" Private Const TARGET_ERROR As String = "errorTarget" - Private Const TARGET_DETAIL As String = "detailTarget" Private Const TARGET_DEBUG As String = "debugTarget" Private Const TARGET_MEMORY As String = "memoryTarget" @@ -82,10 +80,11 @@ Public Class LogConfig Private Const LOG_FORMAT_BASE As String = DATE_FORMAT_DEFAULT & "|${logger:shortName=True}|${level:uppercase=true}" Private Const LOG_FORMAT_BASE_LONG_DATE As String = DATE_FORMAT_LONG & "|${logger:shortName=True}|${level:uppercase=true}" + Private Const LOG_FORMAT_CALLSITE As String = "${callsite:className=false:fileName=true:includeSourcePath=false:methodName=true}" Private Const LOG_FORMAT_DEFAULT As String = LOG_FORMAT_BASE & " >> ${message}" Private Const LOG_FORMAT_EXCEPTION As String = LOG_FORMAT_BASE & " >> ${exception:format=Message}${newline}${exception:format=StackTrace}" - Private Const LOG_FORMAT_DEBUG As String = LOG_FORMAT_BASE_LONG_DATE & " >> ${message}" + Private Const LOG_FORMAT_DEBUG As String = LOG_FORMAT_BASE_LONG_DATE & " >> " & LOG_FORMAT_CALLSITE & " -> ${message}" Private Const LOG_FORMAT_MEMORY As String = LOG_FORMAT_BASE_LONG_DATE & " >> ${message}${newline}${exception:format=Message}${newline}${exception:format=StackTrace}" Private Const FILE_NAME_ACCESS_TEST = "accessTest.txt" @@ -421,23 +420,11 @@ Public Class LogConfig Return errorLog End Function - Private Function GetDetailLogTarget(basePath As String) As FileTarget - Dim detailLog As New FileTarget() With { - .FileName = Path.Combine(basePath, FILE_NAME_FORMAT_DETAIL), - .Name = TARGET_DETAIL, - .Layout = LOG_FORMAT_DEFAULT, - .MaxArchiveFiles = MAX_ARCHIVE_FILES_DEBUG_DETAIL, - .ArchiveEvery = ARCHIVE_EVERY, - .KeepFileOpen = KEEP_FILES_OPEN - } - - Return detailLog - End Function Private Function GetDebugLogTarget(basePath As String) As FileTarget Dim debugLog As New FileTarget() With { .FileName = Path.Combine(basePath, FILE_NAME_FORMAT_DEBUG), .Name = TARGET_DEBUG, - .Layout = LOG_FORMAT_DEFAULT, + .Layout = LOG_FORMAT_DEBUG, .MaxArchiveFiles = MAX_ARCHIVE_FILES_DEBUG_DETAIL, .ArchiveEvery = ARCHIVE_EVERY, .KeepFileOpen = KEEP_FILES_OPEN diff --git a/Modules.Logging/My Project/AssemblyInfo.vb b/Modules.Logging/My Project/AssemblyInfo.vb index df9a9ffa..297eacca 100644 --- a/Modules.Logging/My Project/AssemblyInfo.vb +++ b/Modules.Logging/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - + diff --git a/Modules.Windream/Windream.vb b/Modules.Windream/Windream.vb index 2300dc57..e7735ff5 100644 --- a/Modules.Windream/Windream.vb +++ b/Modules.Windream/Windream.vb @@ -766,15 +766,15 @@ Public Class Windream 'If UsesDriveLetter Then ' Remove Driveletter eg. W:\ If oNormalizedPath.StartsWith($"{ClientDriveLetter}:\") Then - _logger.Debug($"Replacing ClientDriveLetter: [{ClientDriveLetter}]") - oNormalizedPath = oNormalizedPath.Substring(ClientDriveLetter.Length + 2) - End If + _logger.Debug($"Replacing ClientDriveLetter: [{ClientDriveLetter}]") + oNormalizedPath = oNormalizedPath.Substring(ClientDriveLetter.Length + 2) + End If 'Else If oNormalizedPath.ToLower.StartsWith(ClientBasePath.ToLower) Then - _logger.Debug($"Replacing ClientBasePath: [{ClientBasePath}]") - ' Remove Windream Base Path eg. \\windream\objects\ - oNormalizedPath = oNormalizedPath.Substring(ClientBasePath.Length - 1) - End If + _logger.Debug($"Replacing ClientBasePath: [{ClientBasePath}]") + ' Remove Windream Base Path eg. \\windream\objects\ + oNormalizedPath = oNormalizedPath.Substring(ClientBasePath.Length - 1) + End If 'End If oNormalizedPath = oNormalizedPath.Replace("\\", "\") @@ -1470,6 +1470,7 @@ Public Class Windream End If If TestObjectExists(ObjectName, ObjectType) = False Then + _logger.Warn("GetObjectByName: Object {0} does not exist!", ObjectName) Return Nothing End If @@ -1488,6 +1489,7 @@ Public Class Windream End If If TestObjectExists(ObjectName, ObjectType) = False Then + _logger.Warn("GetObjectByPath: Object {0} does not exist!", ObjectName) Return Nothing End If diff --git a/Service.EDMIService/Database/IDatabase.vb b/Service.EDMIService/Database/IDatabase.vb deleted file mode 100644 index 0b370d22..00000000 --- a/Service.EDMIService/Database/IDatabase.vb +++ /dev/null @@ -1,3 +0,0 @@ -Public Interface IDatabase - Function NewDocument(RelativePath As String, AddedWho As String, ObjectStoreId As Int64, ReferenceId As Int64) As Int64 -End Interface diff --git a/Service.EDMIService/Database/MSSQL.vb b/Service.EDMIService/Database/MSSQL.vb deleted file mode 100644 index 3d4153b1..00000000 --- a/Service.EDMIService/Database/MSSQL.vb +++ /dev/null @@ -1,20 +0,0 @@ -Imports DigitalData.Modules.Database -Imports DigitalData.Modules.Logging - -Public Class MSSQL - Implements IDatabase - - Private ReadOnly LogConfig As LogConfig - Private ReadOnly Database As MSSQLServer - Private ReadOnly Logger As Logger - - Public Sub New(LogConfig As LogConfig, Database As MSSQLServer) - Me.LogConfig = LogConfig - Me.Database = Database - Me.Logger = LogConfig.GetLogger() - End Sub - - Public Function NewDocument(RelativePath As String, AddedWho As String, ObjectStoreId As Long, ReferenceId As Long) As Long Implements IDatabase.NewDocument - - End Function -End Class diff --git a/Service.EDMIService/EDMIService.vb b/Service.EDMIService/EDMIService.vb index 5c5ea456..ed4ce628 100644 --- a/Service.EDMIService/EDMIService.vb +++ b/Service.EDMIService/EDMIService.vb @@ -47,7 +47,7 @@ Public Class EDMIService End If End Function -#Region "Auth" +#Region "=== Authorization ===" Private Function TestUserAuth() As Boolean Try 'Dim oSQL As String = $"SELECT FNIDB_AUTH_USER('{_username}') FROM RDB$DATABASE;" @@ -60,12 +60,12 @@ Public Class EDMIService End Try End Function #End Region -#Region "Heartbeat" +#Region "=== Heartbeat ===" Public Function Heartbeat() As Boolean Implements IEDMIService.Heartbeat Return True End Function #End Region -#Region "Request" +#Region "=== Database Request ===" Public Sub CreateRequest(Name As String, Optional Debug As Boolean = False) _request = New Request(Name, _username, Firebird, Debug) _debug = Debug @@ -90,7 +90,7 @@ Public Class EDMIService End Sub #End Region -#Region "Database" +#Region "=== Database (Firebird) ===" Private Sub TestRequestCreated() If IsNothing(_request) Then Throw New Exceptions.NoRequestException() @@ -144,174 +144,8 @@ Public Class EDMIService Return New NonQueryResult(ex.Message) End Try End Function - - #End Region -#Region "Document (with FileContainer)" - Public Function NewFile(FileName As String, Contents() As Byte) As DocumentResultOld Implements IEDMIService.NewFile - Try - Dim oContainer As FileContainer - Dim oContainerId As String - - If Not TestUserAuth() Then - Throw New Exception($"User {_username} not authorized.") - End If - - oContainer = FileContainer.Create(LogConfig, AppConfig.ContainerPassword) - oContainerId = oContainer.ContainerId - _logger.Debug("Container created with id {0}", oContainerId) - - Dim oExtension As String = Path.GetExtension(FileName).Substring(1) - _logger.Debug("File extension of file {0} is {1}", FileName, oExtension) - - Dim oSQL = $"SELECT FNICM_NEW_DOC('010', '{oContainerId}', '{GetContainerName(oContainerId)}', '{FileName}', '{oExtension}', '{_username}') FROM RDB$DATABASE;" - Dim oDocId As Int64 = Firebird.GetScalarValue(oSQL) - - If oDocId = -1 Then - _logger.Warn("Database returned -1 while creating Document Entry. File was not saved!") - Return Nothing - End If - - _logger.Debug("Database Entry created with DocId {0}", oDocId) - - oContainer.SetFile(Contents, FileName) - oContainer.SaveAs(GetContainerPath(oContainerId)) - - _logger.Debug("File saved in Container!", FileName) - - Dim oDocument = New DocumentObject(oContainerId, oDocId, FileName) - Return New DocumentResultOld(oDocument) - Catch ex As Exception - _logger.Error(ex) - Return New DocumentResultOld(ex.Message) - End Try - End Function - - Public Function UpdateFile(DocObject As DocumentObject, Contents() As Byte) As DocumentResultOld Implements IEDMIService.UpdateFile - Try - TestFileExists(DocObject.ContainerId) - - ' TODO: update db - - Dim oFilePath = GetContainerPath(DocObject.ContainerId) - Dim oFileContainer As FileContainer = FileContainer.Load(LogConfig, AppConfig.ContainerPassword, oFilePath) - - oFileContainer.SetFile(Contents, oFileContainer.GetFile.FileName) - oFileContainer.Save() - - - Return New DocumentResultOld(DocObject) - Catch ex As Exception - _logger.Error(ex) - Return Nothing - End Try - End Function - - Public Function GetFile(DocObject As DocumentObject) As DocumentResultOld Implements IEDMIService.GetFile - Try - TestFileExists(DocObject.ContainerId) - - Dim oContainerPath = GetContainerPath(DocObject.ContainerId) - Dim oContainer As FileContainer = FileContainer.Load(LogConfig, AppConfig.ContainerPassword, oContainerPath) - Dim oContents As Byte() = oContainer.GetFile().Contents - - Return New DocumentResultOld(DocObject, oContents) - Catch ex As Exception - _logger.Error(ex) - Return New DocumentResultOld(ex.Message) - End Try - End Function - - Public Function DeleteFile(DocObject As DocumentObject) As Boolean Implements IEDMIService.DeleteFile - Try - TestFileExists(DocObject.ContainerId) - - Dim oFilePath = GetContainerPath(DocObject.ContainerId) - IO.File.Delete(oFilePath) - - 'TODO: Delete doc from db - - Return True - Catch ex As Exception - _logger.Error(ex) - Return False - End Try - End Function - - Private Function GetContainerPath(ContainerId As String) As String - Return Path.Combine(AppConfig.ContainerPath, GetContainerName(ContainerId)) - End Function - - Private Function GetContainerName(ContainerId As String) As String - Return ContainerId & ".enc" - End Function - - Private Sub TestFileExists(ContainerId) - Dim oContainerPath = GetContainerPath(ContainerId) - - If Not IO.File.Exists(oContainerPath) Then - Throw New FileNotFoundException("Container existiert nicht", oContainerPath) - End If - End Sub - - Public Function GetDocumentByDocumentId(DocumentId As Long) As DocumentResultOld Implements IEDMIService.GetDocumentByDocumentId - Try - Dim oSQL = $"SELECT GUID, CONTAINER_ID, ORIGINAL_FILENAME FROM TBIDB_DOCUMENT WHERE GUID = {DocumentId}" - Dim oTable = Firebird.GetDatatable(oSQL) - - If oTable.Rows.Count = 0 Then - Return New DocumentResultOld("Document not found") - End If - - Dim oRow As DataRow = oTable.Rows.Item(0) - Dim oDocument As New DocumentObject( - oRow.Item("CONTAINER_ID"), - oRow.Item("GUID"), - oRow.Item("ORIGINAL_FILENAME") - ) - - TestFileExists(oDocument.ContainerId) - - Dim oContainerPath = GetContainerPath(oDocument.ContainerId) - Dim oContainer As FileContainer = FileContainer.Load(LogConfig, AppConfig.ContainerPassword, oContainerPath) - Dim oContents As Byte() = oContainer.GetFile().Contents - - Return New DocumentResultOld(oDocument, oContents) - Catch ex As Exception - Return New DocumentResultOld(ex.Message) - End Try - End Function - - Public Function GetDocumentByContainerId(ContainerId As String) As DocumentResultOld Implements IEDMIService.GetDocumentByContainerId - Try - Dim oSQL = $"SELECT GUID, CONTAINER_ID, ORIGINAL_FILENAME FROM TBIDB_DOCUMENT WHERE CONTAINER_ID = '{ContainerId}'" - Dim oTable = Firebird.GetDatatable(oSQL) - - If oTable.Rows.Count = 0 Then - Return New DocumentResultOld("Document not found") - End If - - Dim oRow As DataRow = oTable.Rows.Item(0) - Dim oDocument As New DocumentObject( - oRow.Item("CONTAINER_ID"), - oRow.Item("GUID"), - oRow.Item("ORIGINAL_FILENAME") - ) - - TestFileExists(oDocument.ContainerId) - - Dim oContainerPath = GetContainerPath(oDocument.ContainerId) - Dim oContainer As FileContainer = FileContainer.Load(LogConfig, AppConfig.ContainerPassword, oContainerPath) - Dim oContents As Byte() = oContainer.GetFile().Contents - - Return New DocumentResultOld(oDocument, oContents) - Catch ex As Exception - Return New DocumentResultOld(ex.Message) - End Try - End Function -#End Region - -#Region "Document" +#Region "=== Document ===" ''' ''' Imports a file according to ObjectStoreId ''' @@ -405,8 +239,8 @@ Public Class EDMIService Using oSource As FileStream = IO.File.OpenRead(oFullPath) oSource.CopyTo(oDestination) End Using - oDestination.Seek(0, SeekOrigin.Begin) + Dim oMessage As New Messages.DocumentStreamResponse() With { .FileName = oFileInfo.Name, .FileContents = oDestination @@ -436,20 +270,5 @@ Public Class EDMIService Throw New FaultException(ex.Message) End Try End Function - -#End Region - -#Region "Index" - Public Function NewFileIndex(DocObject As DocumentObject, Syskey As String, LanguageCode As String, Value As String) As IndexResult Implements IEDMIService.NewFileIndex - Try - Dim oSQL = $"SELECT FNIDB_NEW_DOC_VALUE({DocObject.DocumentId},'{Syskey}','{LanguageCode}','{Value}','{_username}') FROM RDB$DATABASE;" - Dim oIndexId As Int64 = Firebird.GetScalarValue(oSQL) - - Return New IndexResult(oIndexId) - Catch ex As Exception - _logger.Error(ex) - Return New IndexResult(ex.Message) - End Try - End Function #End Region End Class \ No newline at end of file diff --git a/Service.EDMIService/EDMIService.vbproj b/Service.EDMIService/EDMIService.vbproj index 3cdbcc3a..444b5c26 100644 --- a/Service.EDMIService/EDMIService.vbproj +++ b/Service.EDMIService/EDMIService.vbproj @@ -102,18 +102,12 @@ - - - - - - Component diff --git a/Service.EDMIService/Exceptions.vb b/Service.EDMIService/Exceptions.vb index e1effc7e..750f7df2 100644 --- a/Service.EDMIService/Exceptions.vb +++ b/Service.EDMIService/Exceptions.vb @@ -1,7 +1,13 @@ -Public Class Exceptions +Imports System.ServiceModel + +Public Class Exceptions + + Public Class BaseException + Inherits FaultException + End Class Public Class NoRequestException - Inherits ApplicationException + Inherits BaseException End Class End Class diff --git a/Service.EDMIService/IEDMIService.vb b/Service.EDMIService/IEDMIService.vb index f862a87e..ee963c52 100644 --- a/Service.EDMIService/IEDMIService.vb +++ b/Service.EDMIService/IEDMIService.vb @@ -27,26 +27,6 @@ Interface IEDMIService Function ExecuteNonQuery(SQL As String) As NonQueryResult #End Region -#Region "Document (with FileContainer)" - - Function NewFile(FileName As String, Contents As Byte()) As DocumentResultOld - - - Function UpdateFile(DocObject As DocumentObject, Contents As Byte()) As DocumentResultOld - - - Function GetFile(DocObject As DocumentObject) As DocumentResultOld - - - Function DeleteFile(DocObject As DocumentObject) As Boolean - - - Function GetDocumentByDocumentId(DocumentId As Int64) As DocumentResultOld - - - Function GetDocumentByContainerId(ContainerId As String) As DocumentResultOld -#End Region - #Region "Document (New)" Function ImportFile(Data As Messages.DocumentImportRequest) As Messages.DocumentImportResponse @@ -59,9 +39,4 @@ Interface IEDMIService Function ListFilesForUser() As Messages.DocumentListResponse #End Region -#Region "Index" - - Function NewFileIndex(DocObject As DocumentObject, Syskey As String, LanguageCode As String, Value As String) As IndexResult -#End Region - End Interface \ No newline at end of file diff --git a/Service.EDMIService/Results/ContainerResult.vb b/Service.EDMIService/Results/ContainerResult.vb deleted file mode 100644 index 5b5b17fa..00000000 --- a/Service.EDMIService/Results/ContainerResult.vb +++ /dev/null @@ -1,18 +0,0 @@ -Imports DigitalData.Modules.Filesystem - - -Public Class ContainerResult - Public ReadOnly OK As Boolean - Public ReadOnly ErrorMessage As String - Public Container As FileContainerInner - - Public Sub New() - OK = True - ErrorMessage = Nothing - End Sub - - Public Sub New(ErrorMessage As String) - OK = False - Me.ErrorMessage = ErrorMessage - End Sub -End Class diff --git a/Service.EDMIService/Results/DocumentResult.vb b/Service.EDMIService/Results/DocumentResult.vb deleted file mode 100644 index 11332187..00000000 --- a/Service.EDMIService/Results/DocumentResult.vb +++ /dev/null @@ -1,31 +0,0 @@ -Imports System.Xml.Serialization - - -Public Class DocumentResult - Inherits BaseResult - - Public Document As DocumentObject - Public HasContents As Boolean = False - Public Contents As Byte() - - Public Sub New(Document As DocumentObject) - MyBase.New() - Me.Document = Document - End Sub - - Public Sub New(Document As DocumentObject, Contents As Byte()) - MyBase.New() - Me.Document = Document - Me.Contents = Contents - Me.HasContents = True - End Sub - - Public Sub New(ErrorMessage As String) - MyBase.New(ErrorMessage) - End Sub - - Public Class DocumentObject - Public FileName As String - Public FileId As String - End Class -End Class diff --git a/Service.EDMIService/Results/DocumentResultOld.vb b/Service.EDMIService/Results/DocumentResultOld.vb deleted file mode 100644 index 02202516..00000000 --- a/Service.EDMIService/Results/DocumentResultOld.vb +++ /dev/null @@ -1,26 +0,0 @@ -Imports DigitalData.Modules.Filesystem - - -Public Class DocumentResultOld - Inherits BaseResult - - Public Document As DocumentObject - Public HasContents As Boolean = False - Public Contents As Byte() - - Public Sub New(Document As DocumentObject) - MyBase.New() - Me.Document = Document - End Sub - - Public Sub New(Document As DocumentObject, Contents As Byte()) - MyBase.New() - Me.Document = Document - Me.Contents = Contents - Me.HasContents = True - End Sub - - Public Sub New(ErrorMessage As String) - MyBase.New(ErrorMessage) - End Sub -End Class diff --git a/Service.EDMIService/Results/IndexResult.vb b/Service.EDMIService/Results/IndexResult.vb deleted file mode 100644 index ac31956b..00000000 --- a/Service.EDMIService/Results/IndexResult.vb +++ /dev/null @@ -1,15 +0,0 @@ - -Public Class IndexResult - Inherits BaseResult - - Public ReadOnly IndexId As Int64 - - Public Sub New(IndexId As Int64) - MyBase.New() - Me.IndexId = IndexId - End Sub - - Public Sub New(ErrorMessage As String) - MyBase.New(ErrorMessage) - End Sub -End Class