You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
125 lines
4.0 KiB
125 lines
4.0 KiB
Imports System.Threading
|
|
Imports System.IO
|
|
|
|
Imports System.Collections.Generic
|
|
Imports System.Drawing
|
|
Imports Newtonsoft
|
|
|
|
Imports System.Text
|
|
Imports System.Web
|
|
Imports System.Net.Http
|
|
Imports System.Net
|
|
|
|
Module Module1
|
|
Dim Base64_File As String
|
|
Dim JsonString As String
|
|
Dim mimetype As String
|
|
Dim OutputFile As String
|
|
|
|
Sub Main()
|
|
Console.WriteLine(Now.ToString, "yyyy-mm-dd hh:MM:ss" + ": Start")
|
|
Dim args As String() = Environment.GetCommandLineArgs()
|
|
|
|
If IsNothing(args(1)) Then
|
|
|
|
End If
|
|
|
|
Console.WriteLine(Now.ToString, "yyyy-mm-dd hh:MM:ss" + ": Fileconvert")
|
|
|
|
OutputFile = My.Settings.TempDir + "\" + My.Settings.Filename
|
|
Base64_File = ConvertFileToBase64(OutputFile)
|
|
JsonString = ""
|
|
Console.WriteLine(Now.ToString, "yyyy-mm-dd hh:MM:ss" + ": Create DataStream")
|
|
Create_OnBase_Datastream(My.Settings.Dokumentid)
|
|
|
|
|
|
Console.WriteLine(Now.ToString, "yyyy-mm-dd hh:MM:ss" + ": Start UpLoad")
|
|
If args(1) = "A" Then
|
|
Dim data = Encoding.UTF8.GetBytes(JsonString)
|
|
Dim myUri As New Uri(My.Settings.url)
|
|
|
|
Dim result_post = SendRequest_A(myUri, data, "application/json", "POST")
|
|
End If
|
|
Console.WriteLine(Now.ToString, "yyyy-mm-dd hh:MM:ss" + ": Stop Upload")
|
|
|
|
End Sub
|
|
|
|
Public Function ConvertFileToBase64(ByVal fileName As String) As String
|
|
|
|
Dim ReturnValue As String = ""
|
|
|
|
If My.Computer.FileSystem.FileExists(fileName) Then
|
|
Using BinaryFile As FileStream = New FileStream(fileName, FileMode.Open)
|
|
Dim BinRead As BinaryReader = New BinaryReader(BinaryFile)
|
|
Dim BinBytes As Byte() = BinRead.ReadBytes(CInt(BinaryFile.Length))
|
|
ReturnValue = Convert.ToBase64String(BinBytes)
|
|
BinaryFile.Close()
|
|
End Using
|
|
End If
|
|
Return ReturnValue
|
|
End Function
|
|
|
|
Public Function Transfer_Onbase(ByVal dokumentid As String) As Boolean
|
|
Dim file As System.IO.StreamWriter
|
|
file = My.Computer.FileSystem.OpenTextFileWriter(My.Settings.TempDir + "\" + dokumentid + ".json", True)
|
|
file.Write(JsonString)
|
|
file.Close()
|
|
Return True
|
|
End Function
|
|
Private Sub Create_OnBase_Datastream(ByVal dokumentid As String)
|
|
Dim ds As New DataSet
|
|
Dim od As New OnBaseDokument
|
|
od.dokumentTyp = "Brief"
|
|
od.bpNummer = "1032777"
|
|
od.personNummer = ""
|
|
od.dokumentDatei = Base64_File
|
|
|
|
od.dokumentDatum = Now.ToString("dd.mm.yyyy")
|
|
od.dateiTyp = "PDF"
|
|
|
|
Dim Attribute As New List(Of attribute)
|
|
Dim p As New attribute With
|
|
{
|
|
.fieldname = "EDOKA Dokument-ID",
|
|
.fieldvalue = dokumentid
|
|
}
|
|
Attribute.Add(p)
|
|
od.attributes = Attribute
|
|
JsonString = ""
|
|
JsonString = Newtonsoft.Json.JsonConvert.SerializeObject(od, Newtonsoft.Json.Formatting.Indented)
|
|
|
|
|
|
|
|
End Sub
|
|
Private Function SendRequest_A(uri As Uri, jsonDataBytes As Byte(), contentType As String, method As String) As String
|
|
Dim response As String
|
|
Dim request As WebRequest
|
|
|
|
request = WebRequest.Create(uri)
|
|
request.ContentLength = jsonDataBytes.Length
|
|
request.ContentType = contentType
|
|
request.Method = method
|
|
Try
|
|
Using requestStream = request.GetRequestStream
|
|
requestStream.Write(jsonDataBytes, 0, jsonDataBytes.Length)
|
|
requestStream.Close()
|
|
|
|
Using responseStream = request.GetResponse.GetResponseStream
|
|
Using reader As New StreamReader(responseStream)
|
|
response = reader.ReadToEnd()
|
|
End Using
|
|
End Using
|
|
End Using
|
|
|
|
|
|
Return response
|
|
Catch ex As Exception
|
|
Return ""
|
|
End Try
|
|
|
|
End Function
|
|
|
|
|
|
|
|
End Module
|