Bugfix ATEZ und Digicust

This commit is contained in:
2023-09-12 12:19:43 +02:00
parent f61bd11de5
commit a73761c233
4 changed files with 403 additions and 117 deletions

View File

@@ -90,7 +90,7 @@
<SignAssembly>false</SignAssembly> <SignAssembly>false</SignAssembly>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<AssemblyOriginatorKeyFile>SDL_TemporaryKey.pfx</AssemblyOriginatorKeyFile> <AssemblyOriginatorKeyFile>Test.pfx</AssemblyOriginatorKeyFile>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Accessibility" /> <Reference Include="Accessibility" />

View File

@@ -121,7 +121,7 @@ Public Class cDATENSERVER
Dim top = "" Dim top = ""
If TopMax > 0 Then top = " TOP (" & TopMax & ") " If TopMax > 0 Then top = " TOP (" & TopMax & ") "
'MsgBox("SELECT * FROM tblDatenarchiv WHERE da_KundenNr = '" & Me.da_KundenNr & "' And da_kategorie = '" & Me.da_kategorie & "' And da_ordner ='" & Me.da_ordner & "' AND da_uOrdner1= '" & Me.da_uOrdner1 & "' AND da_uOrdner2= '" & Me.da_uOrdner2 & "' AND da_uOrdner3= '" & Me.da_uOrdner3 & "' AND da_name='" & Me.da_name & "' ") 'MsgBox("SELECT * FROM tblDatenarchiv WHERE da_KundenNr = '" & Me.da_KundenNr & "' And da_kategorie = '" & Me.da_kategorie & "' And da_ordner ='" & Me.da_ordner & "' AND da_uOrdner1= '" & Me.da_uOrdner1 & "' AND da_uOrdner2= '" & Me.da_uOrdner2 & "' AND da_uOrdner3= '" & Me.da_uOrdner3 & "' AND da_name='" & Me.da_name & "' ")
Using cmd As New SqlCommand("SELECT " & TopMax & " * FROM tblDatenarchiv WHERE da_KundenNr = @da_KundenNr AND da_kategorie = @da_kategorie AND da_ordner=@da_ordner AND da_uOrdner1= @da_uOrdner1 AND da_uOrdner2= @da_uOrdner2 AND da_uOrdner3= @da_uOrdner3 AND da_name=@da_name ", conn) Using cmd As New SqlCommand("SELECT " & top & " * FROM tblDatenarchiv WHERE da_KundenNr = @da_KundenNr AND da_kategorie = @da_kategorie AND da_ordner=@da_ordner AND da_uOrdner1= @da_uOrdner1 AND da_uOrdner2= @da_uOrdner2 AND da_uOrdner3= @da_uOrdner3 AND da_name=@da_name ", conn)
cmd.Parameters.AddWithValue("@da_KundenNr", Me.da_KundenNr) cmd.Parameters.AddWithValue("@da_KundenNr", Me.da_KundenNr)
' cmd.Parameters.AddWithValue("@da_vorlage", Me.da_vorlage) ' cmd.Parameters.AddWithValue("@da_vorlage", Me.da_vorlage)
cmd.Parameters.AddWithValue("@da_kategorie", Me.da_kategorie) cmd.Parameters.AddWithValue("@da_kategorie", Me.da_kategorie)

View File

@@ -607,10 +607,29 @@ Public Class cATEZ_NCTS_IN
'rest.DebugMode = True 'rest.DebugMode = True
rest.PercentDoneOnSend = True rest.PercentDoneOnSend = True
rest.IdleTimeoutMs = 30000 rest.IdleTimeoutMs = 60000
success = rest.SendReqSb("POST", "/api/integrations/verag", sbRequestBody)
Dim responseStatusCode = rest.ReadResponseHeader()
If (responseStatusCode < 0) Then
For i = 0 To 15 'Versuche den Header 16x abzufragen (funktioniert ab und zu nicht).
responseStatusCode = rest.ReadResponseHeader()
If responseStatusCode > 0 Then Exit For
Thread.Sleep(3000)
i = i + 1
Next
If rest.ResponseStatusCode <> 200 Then
MsgBox(rest.LastErrorText)
Return False
End If
End If
Dim sbResponseBody As New Chilkat.StringBuilder Dim sbResponseBody As New Chilkat.StringBuilder
success = rest.FullRequestSb("POST", "/api/integrations/verag", sbRequestBody, sbResponseBody) rest.ReadRespSb(sbResponseBody)
If (rest.LastMethodSuccess <> True) Then If (rest.LastMethodSuccess <> True) Then
Debug.WriteLine(rest.LastErrorText) Debug.WriteLine(rest.LastErrorText)

View File

@@ -1,16 +1,22 @@
Imports System.Data.SqlClient Imports System.ComponentModel.Design
Imports System.Data.SqlClient
Imports System.Net Imports System.Net
Imports System.Reflection Imports System.Reflection
Imports System.ServiceModel.Security
Imports System.Threading Imports System.Threading
Imports System.Windows.Forms
Imports System.Windows.Forms.VisualStyles.VisualStyleElement
Imports Chilkat Imports Chilkat
Imports iTextSharp.text
Imports Newtonsoft.Json.Linq Imports Newtonsoft.Json.Linq
Imports Org.BouncyCastle.Bcpg
Imports VERAG_PROG_ALLGEMEIN.cCreditSafeAPI Imports VERAG_PROG_ALLGEMEIN.cCreditSafeAPI
Public Class cDigicust Public Class cDigicustSessions
Public Property session_Id As Integer Public Property session_Id As Integer
Public Property token As String Public Property token As String
Public Property datetime As DateTime Public Property datetime As DateTime = Now()
Public Property refresh_token As String Public Property refresh_token As String
Public Property token_validuntil As DateTime Public Property token_validuntil As DateTime
@@ -35,8 +41,8 @@ Public Class cDigicust
End Sub End Sub
Sub New(token As String, refreshtoken As String, timestamp As DateTime) Sub New(token As String, refreshtoken As String, timestamp As DateTime)
token = Me.token Me.token = token
refreshtoken = Me.refresh_token Me.refresh_token = refreshtoken
token_validuntil = timestamp token_validuntil = timestamp
SAVE() SAVE()
End Sub End Sub
@@ -45,7 +51,7 @@ Public Class cDigicust
Public Function SAVE(Optional errHinweis = "") As Boolean Public Function SAVE(Optional errHinweis = "") As Boolean
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Dim sqlstr = " BEGIN " & getInsertCmd() & " END " & Dim sqlstr = " BEGIN TRAN " & getInsertCmd() &
" commit tran " " commit tran "
Dim IdTMP = session_Id Dim IdTMP = session_Id
@@ -108,11 +114,207 @@ Public Class cDigicust
End Class End Class
Public Class cDigicustSettings
Public Property Id As Integer
Public Property customerId As String
Public Property projectId As String
Public Property executionStrategyId As String
Public Property validUntil As DateTime
Public Property valid As Boolean
Public Property companyId As Integer
Public Property description As String
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Public hasEntry As Boolean
Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Id", Id, , True, True))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("customerId", customerId))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("projectId", projectId))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("executionStrategyId", executionStrategyId))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("validUntil", validUntil))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("valid", valid))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("companyId", companyId))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("description", description))
Return list
End Function
Sub New(id)
Me.Id = id
LOAD()
End Sub
Public Sub LOAD()
Try
hasEntry = False
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("SELECT * FROM tblDigicust_Settings where Id = @Id ", conn)
cmd.Parameters.AddWithValue("@Id", Id)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each li In getParameterList()
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable)
If dr.Item(li.Text) Is DBNull.Value Then
propInfo.SetValue(Me, Nothing)
Else
propInfo.SetValue(Me, dr.Item(li.Text))
End If
Next
hasEntry = True
End If
dr.Close()
End Using
End Using
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Sub
End Class
Public Class cDigicustSendungen
Public Property Id As Integer
Public Property reference As String
Public Property digicustId As String
Public Property status As String
Public Property createdAt As DateTime
Public Property modifiedAt As DateTime
Public Property avisoId As Integer
Public Property uploadedDocuments As Integer
Public Property projectId As String
Public Property companyId As String
Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL
Public hasEntry As Boolean
Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable)
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Id", Id, , True, True))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("reference", reference))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("digicustId", digicustId))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("status", status))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("createdAt", createdAt))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("modifiedAt", modifiedAt))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("avisoId", avisoId))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("uploadedDocuments", uploadedDocuments))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("projectId", projectId))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("companyId", companyId))
Return list
End Function
Sub New()
End Sub
Sub New(id As Integer)
Me.Id = id
LOAD()
End Sub
Public Function SAVE(Optional errHinweis = "") As Boolean
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Dim sqlstr = " BEGIN TRAN IF EXISTS(SELECT * FROM tblDigicust_Sendungen WITH(updlock,serializable) WHERE Id=@Id) " &
" BEGIN " & getUpdateCmd() & " END " &
" Else " &
" BEGIN " & getInsertCmd() & " END " &
" commit tran "
Dim IdTMP = Id
IdTMP = SQL.doSQLVarListID(IdTMP, sqlstr, "FMZOLL", , list, , errHinweis)
If Id <= 0 Then Id = IdTMP
Return Id > 0
End Function
Public Function getInsertCmd() As String
Try
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Dim str As String = ""
Dim values As String = ""
For Each i In list
If Not i.isPrimaryParam Then
str &= "[" & i.Text & "],"
values &= "@" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
End If
Next
str = str.Substring(0, str.Length - 1) 'wg. ','
values = values.Substring(0, values.Length - 1) 'wg. ','
Return (" INSERT INTO tblDigicust_Sendungen (" & str & ") VALUES(" & values & ") ")
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Return ""
End Function
Public Function getUpdateCmd() As String
Try
Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList()
Dim str As String = ""
For Each i In list
If Not i.isPrimaryParam Then
str &= "[" & i.Text & "] = @" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & ","
End If
Next
str = str.Substring(0, str.Length - 1) 'wg. ','
Return (" UPDATE [tblDigicust_Sendungen] SET " & str & " WHERE Id=@Id ")
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Return ""
End Function
Public Sub LOAD()
Try
hasEntry = False
Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL()
Using cmd As New SqlCommand("SELECT * FROM tblDigicust_Sendungen where Id = @Id ", conn)
cmd.Parameters.AddWithValue("@Id", Id)
Dim dr = cmd.ExecuteReader()
If dr.Read Then
For Each li In getParameterList()
Dim propInfo As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable)
If dr.Item(li.Text) Is DBNull.Value Then
propInfo.SetValue(Me, Nothing)
Else
propInfo.SetValue(Me, dr.Item(li.Text))
End If
Next
hasEntry = True
End If
dr.Close()
End Using
End Using
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Sub
End Class
Public Class cDigicustAPI Public Class cDigicustAPI
'Test
'Shared API_STRING As String = "https://connect.sandbox.creditsafe.com"
'PROD 'PROD
Shared API_STRING As String = "https://api.digicust.com" Shared API_STRING As String = "https://api.digicust.com"
Shared token As String = "" Shared token As String = ""
@@ -120,12 +322,16 @@ Public Class cDigicustAPI
Public dataTable As New DataTable() Public dataTable As New DataTable()
Shared Function SendRequestAuthentificationToken(ByVal myuri As String, ByVal contentType As String, ByVal method As String) As String Shared Function SendRequestAuthentificationToken(ByVal myuri As String, ByVal contentType As String, ByVal method As String, ByRef _token As String) As String
Try Try
Dim session = New cDigicust() Dim session = New cDigicustSessions()
If Not IsDBNull(session.token) AndAlso session.token IsNot Nothing Then Return "token filled" If Not IsDBNull(session.token) AndAlso session.token IsNot Nothing Then
_token = session.token
token = _token
Return "200"
End If
VERAG_PROG_ALLGEMEIN.cChilkat_Helper.UnlockCilkat() VERAG_PROG_ALLGEMEIN.cChilkat_Helper.UnlockCilkat()
@@ -160,11 +366,12 @@ Public Class cDigicustAPI
Dim jsonResp = New Chilkat.JsonObject() Dim jsonResp = New Chilkat.JsonObject()
jsonResp.LoadSb(sbResponseBody) jsonResp.LoadSb(sbResponseBody)
token = jsonResp.StringOf("access_token") _token = jsonResp.StringOf("access_token")
token = _token
refresh_token = jsonResp.StringOf("refresh_token") refresh_token = jsonResp.StringOf("refresh_token")
Dim now As DateTime = DateTime.Now() Dim now As DateTime = DateTime.Now()
now = now.AddSeconds(jsonResp.IntOf("expires_in")) now = now.AddSeconds(jsonResp.IntOf("expires_in"))
session = New cDigicust(token, refresh_token, now.ToString("yyyy-MM-dd HH:mm:ss")) session = New cDigicustSessions(_token, refresh_token, now.ToString("yyyy-MM-dd HH:mm:ss"))
'"yyyyMMdd HH:mm:ss" '"yyyyMMdd HH:mm:ss"
Return rest.ResponseStatusCode & " " & rest.ResponseStatusText Return rest.ResponseStatusCode & " " & rest.ResponseStatusText
@@ -176,85 +383,14 @@ Public Class cDigicustAPI
Shared Function authenticate(ByRef token As String) As String Shared Function authenticate(ByRef token As String) As String
Dim myUri As String = "/generic/api/auth/authenticate" Dim myUri As String = "/generic/api/auth/authenticate"
Dim response = SendRequestAuthentificationToken(myUri, "application/json", "POST") Dim response = SendRequestAuthentificationToken(myUri, "application/json", "POST", token)
Return response Return response
End Function End Function
Shared Function SendRequestWithAuthHeader(acceptContentType As String, ByRef failureDesc As String) As String Shared Function uploadingCase(dig As cDigicustSendungen, settings As cDigicustSettings, dgv As DataGridView) As Boolean
Try
VERAG_PROG_ALLGEMEIN.cChilkat_Helper.UnlockCilkat()
Dim rest As New Chilkat.Rest
Dim success As Boolean
Dim bTls As Boolean = True
Dim port As Integer = 443
Dim bAutoReconnect As Boolean = True
success = rest.Connect(API_STRING, port, bTls, bAutoReconnect)
If (success <> True) Then
Debug.WriteLine("ConnectFailReason: " & rest.ConnectFailReason)
Debug.WriteLine(rest.LastErrorText)
failureDesc = rest.LastErrorText
Return failureDesc
End If
rest.AddHeader("Content-Type", "application/json")
rest.AddHeader("Authorization", "Bearer " & token)
rest.AddHeader("Accept", acceptContentType)
Dim sbRequestBody As New Chilkat.StringBuilder
'jsonData.EmitSb(sbRequestBody)
'Debug.WriteLine(sbRequestBody)
'DEBUG-Mode -> no request will be sent!
'rest.DebugMode = True
Dim sbResponseBody As New Chilkat.StringBuilder
success = rest.FullRequestSb("POST", "/api/integrations/verag", sbRequestBody, sbResponseBody)
If (rest.LastMethodSuccess <> True) Then
Debug.WriteLine(rest.LastErrorText)
failureDesc = rest.LastErrorText
Return failureDesc
Else
If (rest.ResponseStatusCode <> 200) Then
If rest.ResponseStatusCode = 500 Then
Dim jsonResultFailure As New Chilkat.JsonObject
jsonResultFailure.LoadSb(sbResponseBody)
jsonResultFailure.Emit()
failureDesc = jsonResultFailure.StringOf("code") & "-" & jsonResultFailure.StringOf("message")
Return failureDesc
Else
failureDesc = rest.ResponseStatusCode & "-" & rest.ResponseStatusText
Return failureDesc
End If
Else
Dim jsonResult As New Chilkat.JsonObject
success = jsonResult.LoadSb(sbResponseBody)
jsonResult.Emit()
Return jsonResult.StringOf("atezId")
End If
End If
Catch ex As WebException
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Function
Shared Sub uploadginCase()
Dim rest As New Chilkat.Rest Dim rest As New Chilkat.Rest
Dim success As Boolean Dim success As Boolean
@@ -263,44 +399,66 @@ Public Class cDigicustAPI
Dim bTls As Boolean = True Dim bTls As Boolean = True
Dim port As Integer = 443 Dim port As Integer = 443
Dim bAutoReconnect As Boolean = True Dim bAutoReconnect As Boolean = True
success = rest.Connect("api.digicust.com", port, bTls, bAutoReconnect) success = rest.Connect(API_STRING, port, bTls, bAutoReconnect)
If (success <> True) Then If (success <> True) Then
Debug.WriteLine("ConnectFailReason: " & rest.ConnectFailReason) Debug.WriteLine("ConnectFailReason: " & rest.ConnectFailReason)
Debug.WriteLine(rest.LastErrorText) Debug.WriteLine(rest.LastErrorText)
Exit Sub Return False
End If End If
rest.VerboseLogging = True
Dim counter As Integer = 1
Dim jsonFileArray = New Chilkat.JsonArray()
rest.PartSelector = "1" For Each r As DataGridViewRow In dgv.Rows
Dim fileStream1 As New Chilkat.Stream
fileStream1.SourceFile = " path to file1.pdf"
rest.AddHeader("Content-Disposition", "form-data; name=""files[]""; filename="" path to file1.pdf""")
rest.AddHeader("Content-Type", "application/pdf")
rest.SetMultipartBodyStream(fileStream1)
rest.PartSelector = "2" Dim isSelected = IIf(DBNull.Value Is r.Cells("anh_selekt").Value, False, r.Cells("anh_selekt").Value)
Dim fileStream2 As New Chilkat.Stream If isSelected Then
fileStream2.SourceFile = " path to file2.pdf" Dim j = 0
rest.AddHeader("Content-Disposition", "form-data; name=""files[]""; filename="" path to file2.pdf""") Dim json As Chilkat.JsonObject
rest.AddHeader("Content-Type", "application/pdf") Dim filePath = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(r.Cells("anh_docId").Value)
rest.SetMultipartBodyStream(fileStream2) Dim filename = New System.IO.FileInfo(filePath).Name
rest.PartSelector = "3" rest.PartSelector = counter
Dim fileStream As New Chilkat.Stream
fileStream.SourceFile = filePath
rest.AddHeader("Content-Disposition", "form-data; name=""files[]""; filename=""" & filename & """")
rest.AddHeader("Content-Type", "application/pdf")
rest.SetMultipartBodyStream(fileStream)
jsonFileArray.AddObjectAt(j)
json = jsonFileArray.ObjectAt(j)
json.UpdateString("fileName", filename)
json.UpdateString("documentType", r.Cells("anh_Art").Value)
Debug.WriteLine(jsonFileArray.Emit)
counter += 1
j += 1
End If
Next
rest.PartSelector = counter
rest.AddHeader("Content-Disposition", "form-data; name=""classifications""") rest.AddHeader("Content-Disposition", "form-data; name=""classifications""")
rest.SetMultipartBodyString("[{""fileName"":""file1.pdf"",""documentType"":""invoice""},{""fileName"":""file2.pdf"",""documentType"":""waybill""}]") rest.SetMultipartBodyString(jsonFileArray.Emit)
counter += 1
rest.PartSelector = "4" rest.PartSelector = counter
rest.AddHeader("Content-Disposition", "form-data; name=""executionStrategyId""") rest.AddHeader("Content-Disposition", "form-data; name=""executionStrategyId""")
rest.SetMultipartBodyString("{executionStrategyId}") rest.SetMultipartBodyString(settings.executionStrategyId)
counter += 1
rest.PartSelector = "5" rest.PartSelector = counter
rest.AddHeader("Content-Disposition", "form-data; name=""reference""") rest.AddHeader("Content-Disposition", "form-data; name=""reference""")
rest.SetMultipartBodyString("{reference}") rest.SetMultipartBodyString(dig.reference)
counter += 1
rest.PartSelector = "6" rest.PartSelector = counter
rest.AddHeader("Content-Disposition", "form-data; name=""documents""") rest.AddHeader("Content-Disposition", "form-data; name=""documents""")
rest.SetMultipartBodyString("[{""priority"":""afterNormalization"",""annotatedAggregated"":{}}]") rest.SetMultipartBodyString("[{""priority"":""afterNormalization""}]")
'rest.SetMultipartBodyString("[{""priority"":""afterNormalization"",""annotatedAggregated"":{}}]")
counter += 1
rest.PartSelector = "0" rest.PartSelector = "0"
@@ -309,10 +467,104 @@ Public Class cDigicustAPI
rest.AddHeader("Authorization", "Bearer " & token) rest.AddHeader("Authorization", "Bearer " & token)
rest.AddHeader("Expect", "100-continue") rest.AddHeader("Expect", "100-continue")
Dim strResponseBody As String = rest.FullRequestMultipart("POST", "/upload/api/{customerId}/{projectId}/new") 'Debuging
'rest.DebugMode = True
rest.IdleTimeoutMs = 60000
rest.SendReqMultipart("POST", "/upload/api/" & settings.customerId & "/" & settings.projectId & "/new")
Dim responseStatusCode = rest.ReadResponseHeader()
If (responseStatusCode < 0) Then
For i = 0 To 15 'Versuche den Header 16x abzufragen (funktioniert ab und zu nicht).
responseStatusCode = rest.ReadResponseHeader()
If responseStatusCode > 0 Then Exit For
Thread.Sleep(3000)
i = i + 1
Next
If rest.ResponseStatusCode <> 200 Then
MsgBox(rest.LastErrorText)
Return False
End If
End If
If (rest.LastMethodSuccess <> True) Then If (rest.LastMethodSuccess <> True) Then
MsgBox(rest.LastErrorText)
Return False
End If
Dim responseBodyStr As String = rest.ReadRespBodyString()
If (rest.LastMethodSuccess <> True) Then
MsgBox(rest.LastErrorText)
Return False
End If
Dim respStatusCode As Integer = rest.ResponseStatusCode
Debug.WriteLine("response status code = " & respStatusCode)
If (respStatusCode >= 400) Then
Debug.WriteLine("Response Status Code = " & respStatusCode)
Debug.WriteLine("Response Header:")
Debug.WriteLine(rest.ResponseHeader)
Debug.WriteLine("Response Body:")
Debug.WriteLine(responseBodyStr)
Return False
End If
Dim jsonResp = New Chilkat.JsonObject()
jsonResp.Load(responseBodyStr)
Dim dateTime As New Chilkat.CkDateTime
Dim getAsLocal As Boolean = False
jsonResp.DateOf("result.createdAt", dateTime)
dig.createdAt = dateTime.GetAsTimestamp(getAsLocal)
jsonResp.DateOf("result.status.modifiedAt", dateTime)
dig.modifiedAt = dateTime.GetAsTimestamp(getAsLocal)
dig.status = jsonResp.StringOf("result.status.value")
dig.digicustId = jsonResp.StringOf("result.id")
dig.uploadedDocuments = jsonResp.SizeOfArray("result.uploadedFiles")
Return True
End Function
Shared Function fetchingCase(sendung As cDigicustSendungen) As Boolean
Dim rest As New Chilkat.Rest
Dim success As Boolean
' URL: https://api.digicust.com/generic/api/<YOUR CUSTOMER ID>/<YOUR PROJECT ID>/cases/<YOUR CASE ID>
Dim bTls As Boolean = True
Dim port As Integer = 443
Dim bAutoReconnect As Boolean = True
success = rest.Connect(API_STRING, port, bTls, bAutoReconnect)
If (success <> True) Then
Debug.WriteLine("ConnectFailReason: " & rest.ConnectFailReason)
Debug.WriteLine(rest.LastErrorText) Debug.WriteLine(rest.LastErrorText)
Exit Sub Return False
End If
Dim session = New cDigicustSessions()
If Not IsDBNull(session.token) AndAlso session.token IsNot Nothing Then
token = session.token
Else
authenticate("")
End If
rest.AddHeader("accept", "application/json")
rest.AddHeader("Authorization", "Bearer " & token)
Dim sbResponseBody As New Chilkat.StringBuilder
success = rest.FullRequestNoBodySb("GET", "/generic/api/" & sendung.companyId & "/" & sendung.projectId & "/cases/" & sendung.digicustId, sbResponseBody)
If (success <> True) Then
Debug.WriteLine(rest.LastErrorText)
Return False
End If End If
Dim respStatusCode As Integer = rest.ResponseStatusCode Dim respStatusCode As Integer = rest.ResponseStatusCode
@@ -322,9 +574,24 @@ Public Class cDigicustAPI
Debug.WriteLine("Response Header:") Debug.WriteLine("Response Header:")
Debug.WriteLine(rest.ResponseHeader) Debug.WriteLine(rest.ResponseHeader)
Debug.WriteLine("Response Body:") Debug.WriteLine("Response Body:")
Debug.WriteLine(strResponseBody) Debug.WriteLine(sbResponseBody.GetAsString())
Exit Sub Return False
End If End If
End Sub
Dim jsonResp = New Chilkat.JsonObject()
jsonResp.LoadSb(sbResponseBody)
sendung.status = jsonResp.StringOf("status.value")
Dim dateTime As New Chilkat.CkDateTime
Dim getAsLocal As Boolean = False
jsonResp.DateOf("status.modifiedAt", dateTime)
sendung.modifiedAt = dateTime.GetAsTimestamp(getAsLocal)
sendung.uploadedDocuments = jsonResp.SizeOfArray("uploadedFiles")
sendung.SAVE()
End Function
End Class End Class