Imports System.ComponentModel Imports System.Net Imports System.Text Imports System.Windows.Controls Imports GrapeCity.Viewer.Common.Model Imports VERAG_PROG_ALLGEMEIN Imports VERAG_PROG_ALLGEMEIN.cChilkat_Helper Public Class usrCntlMitarbeiter Dim ConnStr As String Private UID As New cMitarbeiter Private cOptionenDAL As New cOptionenDAL Private Grid_aktiv As Boolean = False Private Anzahl As Integer Private locZeilen As Integer = -1 Public mid As Integer = -1 Dim FUNC = New cProgramFunctions Private Sub uctrlMitarbeiter_Load(sender As Object, e As EventArgs) Handles MyBase.Load ConnStr = frmMain.ConnStr Try ' Me.Size = My.Settings.frmMainSize ' Me.Location = My.Settings.frmMainPosition Catch ex As Exception 'nix tun - Standardgröße wird somit automatisch gesetzt End Try Grid_aktiv = True Tabelle_anzeigen() txtSuche.Focus() End Sub Public Sub Tabelle_anzeigen() If TabControl1.SelectedIndex = 0 Then showVERAGATILLA("VERAG") ElseIf TabControl1.SelectedIndex = 1 Then showVERAGATILLA("ATILLA") ElseIf TabControl1.SelectedIndex = 2 Then showVERAGATILLA("IMEX") ElseIf TabControl1.SelectedIndex = 3 Then showVERAGATILLA("UNISPED") ElseIf TabControl1.SelectedIndex = 4 Then showVERAGATILLA("AMBAR") ElseIf TabControl1.SelectedIndex = 5 Then showVERAGATILLA("FRONTOFFICE") ElseIf TabControl1.SelectedIndex = 6 Then showVERAGATILLA("VERIMEX") ElseIf TabControl1.SelectedIndex = 7 Then showTIMAS() End If End Sub Public Sub showVERAGATILLA(firma) 'Paint wieder reaktivieren locZeilen = -1 If Not Grid_aktiv Then Exit Sub Dim sql As String = "SELECT mit_id,mit_username,mit_vname, mit_nname ,mit_niederlassung,mit_abteilung,mit_email,mit_durchwahl,mit_gekuendigt, isnull(mit_foto_DocId,'') as mit_foto_DocId FROM tblMitarbeiter WHERE (mit_firma='" & firma & "' OR (mit_firma='ALL' AND mit_FirmaHaupt='" & firma & "' )) " If txtSuche.Text <> "" Then sql &= " AND (mit_username LIKE '%" & txtSuche.Text & "%' OR mit_nname LIKE '%" & txtSuche.Text & "%' OR mit_vname LIKE '%" & txtSuche.Text & "%') " End If If cbx.CheckState <> CheckState.Indeterminate Then sql &= " AND mit_gekuendigt=" & IIf(cbx.Checked, 1, 0) End If If firma = "VERAG" Then ' dgvVERAG.DataSource = UID.AnzeigeTabelleFirma(sql) dgvVERAG.SET_SQL(sql, "ADMIN") dgvVERAG.LOAD() 'Tabelle Kommt/Geht bereinigen If dgvVERAG.RowCount = 0 Then dgvVERAG.DataSource = Nothing Else sortDGV(dgvVERAG) 'Eintraege_festlegen() 'AL: Sortierung nach Ausfahrt (Zeit) dgvVERAG.Sort(dgvVERAG.Columns(3), ListSortDirection.Ascending) End If ElseIf firma = "ATILLA" Then ' dgvATILLA.DataSource = UID.AnzeigeTabelleFirma(sql) dgvATILLA.SET_SQL(sql, "ADMIN") dgvATILLA.LOAD() 'Tabelle Kommt/Geht bereinigen If dgvATILLA.RowCount = 0 Then dgvATILLA.DataSource = Nothing Else sortDGV(dgvATILLA) 'Eintraege_festlegen() 'AL: Sortierung nach Ausfahrt (Zeit) dgvATILLA.Sort(dgvATILLA.Columns(3), ListSortDirection.Ascending) End If ElseIf firma = "IMEX" Then ' dgvATILLA.DataSource = UID.AnzeigeTabelleFirma(sql) dgvIMEX.SET_SQL(sql, "ADMIN") dgvIMEX.LOAD() 'Tabelle Kommt/Geht bereinigen If dgvIMEX.RowCount = 0 Then dgvIMEX.DataSource = Nothing Else sortDGV(dgvIMEX) 'Eintraege_festlegen() 'AL: Sortierung nach Ausfahrt (Zeit) dgvIMEX.Sort(dgvIMEX.Columns(3), ListSortDirection.Ascending) End If ElseIf firma = "UNISPED" Then ' dgvATILLA.DataSource = UID.AnzeigeTabelleFirma(sql) dgvUNISPED.SET_SQL(sql, "ADMIN") dgvUNISPED.LOAD() 'Tabelle Kommt/Geht bereinigen If dgvUNISPED.RowCount = 0 Then dgvUNISPED.DataSource = Nothing Else sortDGV(dgvUNISPED) 'Eintraege_festlegen() 'AL: Sortierung nach Ausfahrt (Zeit) dgvUNISPED.Sort(dgvUNISPED.Columns(3), ListSortDirection.Ascending) End If ElseIf firma = "AMBAR" Then ' dgvATILLA.DataSource = UID.AnzeigeTabelleFirma(sql) dgvAMBAR.SET_SQL(sql, "ADMIN") dgvAMBAR.LOAD() 'Tabelle Kommt/Geht bereinigen If dgvAMBAR.RowCount = 0 Then dgvAMBAR.DataSource = Nothing Else sortDGV(dgvAMBAR) 'Eintraege_festlegen() 'AL: Sortierung nach Ausfahrt (Zeit) dgvAMBAR.Sort(dgvAMBAR.Columns(3), ListSortDirection.Ascending) End If ElseIf firma = "FRONTOFFICE" Then ' dgvATILLA.DataSource = UID.AnzeigeTabelleFirma(sql) dgvFRONTOFFICE.SET_SQL(sql, "ADMIN") dgvFRONTOFFICE.LOAD() 'Tabelle Kommt/Geht bereinigen If dgvFRONTOFFICE.RowCount = 0 Then dgvFRONTOFFICE.DataSource = Nothing Else sortDGV(dgvFRONTOFFICE) 'Eintraege_festlegen() 'AL: Sortierung nach Ausfahrt (Zeit) dgvFRONTOFFICE.Sort(dgvFRONTOFFICE.Columns(3), ListSortDirection.Ascending) End If ElseIf firma = "VERIMEX" Then ' dgvATILLA.DataSource = UID.AnzeigeTabelleFirma(sql) dgvVERIMEX.SET_SQL(sql, "ADMIN") dgvVERIMEX.LOAD() 'Tabelle Kommt/Geht bereinigen If dgvVERIMEX.RowCount = 0 Then dgvVERIMEX.DataSource = Nothing Else sortDGV(dgvVERIMEX) 'Eintraege_festlegen() 'AL: Sortierung nach Ausfahrt (Zeit) dgvVERIMEX.Sort(dgvVERIMEX.Columns(3), ListSortDirection.Ascending) End If End If End Sub Public Sub showTIMAS() 'Paint wieder reaktivieren locZeilen = -1 If Not Grid_aktiv Then Exit Sub Dim dt As New DataTable() dt.Columns.Add("id", GetType(Integer)) dt.Columns.Add("externid", GetType(String)) dt.Columns.Add("pnr1", GetType(String)) dt.Columns.Add("firstname", GetType(String)) dt.Columns.Add("lastname", GetType(String)) dt.Columns.Add("gender", GetType(String)) dt.Columns.Add("card", GetType(Integer)) dt.Columns.Add("info", GetType(String)) Dim timas As New cTimasAPI() timas.getEmployeeList(dt) dgvTimasNew.DataSource = dt End Sub Private Sub sortDGV(dgv As DataGridView) With dgv .RowTemplate.Height = 20 .RowTemplate.DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopLeft .AllowUserToAddRows = False .AllowUserToDeleteRows = False .AllowUserToOrderColumns = False .AllowUserToResizeColumns = False .AllowUserToResizeRows = False .RowTemplate.ReadOnly = True .RowHeadersVisible = False .SelectionMode = DataGridViewSelectionMode.FullRowSelect .AllowUserToOrderColumns = True .Columns(0).Visible = False 'ID nicht anzeigen .Columns(1).Width = 150 .Columns(1).HeaderText = "Username" .Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter .Columns(2).Width = 100 .Columns(2).HeaderText = "Vorname" .Columns(3).Width = 130 .Columns(3).HeaderText = "Nachname" .Columns(4).Width = 85 .Columns(4).HeaderText = "Niederlassung" .Columns(5).Width = 85 .Columns(5).HeaderText = "Abteilung" .Columns(6).Width = 120 .Columns(6).HeaderText = "Email" .Columns(7).Width = 120 .Columns(7).HeaderText = "TelefonNr." .Columns(8).Width = 80 .Columns(8).HeaderText = "Gekündigt" '.Columns(9).Visible = False End With End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click Dim Firma = "" Select Case TabControl1.SelectedIndex Case 0 : Firma = "VERAG" Case 1 : Firma = "ATILLA" Case 2 : Firma = "IMEX" Case 3 : Firma = "UNISPED" Case 4 : Firma = "AMBAR" Case 5 : Firma = "FRONTOFFICE" Case 6 : Firma = "VERIMEX" End Select Dim frmMitarbDetails As New frmMitarbDetails(Firma) frmMitarbDetails.Show() AddHandler frmMitarbDetails.FormClosing, AddressOf handleClose End Sub Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click Dim frmMitarbDetails As New frmMitarbDetails frmMitarbDetails.mid = dgvVERAG.CurrentRow.Cells(0).Value frmMitarbDetails.Show() AddHandler frmMitarbDetails.FormClosing, AddressOf handleClose End Sub Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click If TabControl1.SelectedIndex = 0 Then Select Case MsgBox("Soll der Mitarbeiter '" & dgvVERAG.CurrentRow.Cells(1).Value & "' wirklich gelöscht werden?", vbQuestion Or vbYesNo Or vbDefaultButton2, "Löschen?") Case vbYes UID.delData(Convert.ToInt32(dgvVERAG.CurrentRow.Cells(0).Value)) Tabelle_anzeigen() Case vbNo End Select ElseIf TabControl1.SelectedIndex = 1 Then Select Case MsgBox("Soll der Mitarbeiter '" & dgvATILLA.CurrentRow.Cells(1).Value & "' wirklich gelöscht werden?", vbQuestion Or vbYesNo Or vbDefaultButton2, "Löschen?") Case vbYes UID.delData(Convert.ToInt32(dgvATILLA.CurrentRow.Cells(0).Value)) Tabelle_anzeigen() Case vbNo End Select ElseIf TabControl1.SelectedIndex = 2 Then Select Case MsgBox("Soll der Mitarbeiter '" & dgvIMEX.CurrentRow.Cells(1).Value & "' wirklich gelöscht werden?", vbQuestion Or vbYesNo Or vbDefaultButton2, "Löschen?") Case vbYes UID.delData(Convert.ToInt32(dgvIMEX.CurrentRow.Cells(0).Value)) Tabelle_anzeigen() Case vbNo End Select ElseIf TabControl1.SelectedIndex = 3 Then Select Case MsgBox("Soll der Mitarbeiter '" & dgvUNISPED.CurrentRow.Cells(1).Value & "' wirklich gelöscht werden?", vbQuestion Or vbYesNo Or vbDefaultButton2, "Löschen?") Case vbYes UID.delData(Convert.ToInt32(dgvUNISPED.CurrentRow.Cells(0).Value)) Tabelle_anzeigen() Case vbNo End Select ElseIf TabControl1.SelectedIndex = 4 Then Select Case MsgBox("Soll der Mitarbeiter '" & dgvAMBAR.CurrentRow.Cells(1).Value & "' wirklich gelöscht werden?", vbQuestion Or vbYesNo Or vbDefaultButton2, "Löschen?") Case vbYes UID.delData(Convert.ToInt32(dgvAMBAR.CurrentRow.Cells(0).Value)) Tabelle_anzeigen() Case vbNo End Select ElseIf TabControl1.SelectedIndex = 5 Then Select Case MsgBox("Soll der Mitarbeiter '" & dgvFRONTOFFICE.CurrentRow.Cells(1).Value & "' wirklich gelöscht werden?", vbQuestion Or vbYesNo Or vbDefaultButton2, "Löschen?") Case vbYes UID.delData(Convert.ToInt32(dgvFRONTOFFICE.CurrentRow.Cells(0).Value)) Tabelle_anzeigen() Case vbNo End Select ElseIf TabControl1.SelectedIndex = 5 Then Select Case MsgBox("Soll der Mitarbeiter '" & dgvVERIMEX.CurrentRow.Cells(1).Value & "' wirklich gelöscht werden?", vbQuestion Or vbYesNo Or vbDefaultButton2, "Löschen?") Case vbYes UID.delData(Convert.ToInt32(dgvVERIMEX.CurrentRow.Cells(0).Value)) Tabelle_anzeigen() Case vbNo End Select End If End Sub Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click Dim l As IList(Of VERAG_PROG_ALLGEMEIN.cMitarbeiter) l = cOptionenDAL.getDataMitarb() frmPrintView.Show() frmPrintView.BefüllenMitarb(l) End Sub Private Sub handleClose() Tabelle_anzeigen() frmMain.BringToFront() End Sub Private Sub dgvIMEX_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgvIMEX.CellDoubleClick, dgvUNISPED.CellDoubleClick, dgvAMBAR.CellDoubleClick, dgvVERAG.CellDoubleClick, dgvATILLA.CellDoubleClick, dgvFRONTOFFICE.CellDoubleClick, dgvVERIMEX.CellDoubleClick Me.Cursor = Cursors.WaitCursor Dim frmMitarbDetails As New frmMitarbDetails frmMitarbDetails.mid = sender.CurrentRow.Cells(0).Value frmMitarbDetails.Show(Me) sender.RELOAD() Me.Cursor = Cursors.Default ' AddHandler frmMitarbDetails.FormClosing, AddressOf handleClose End Sub Private Sub TabControl1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles TabControl1.SelectedIndexChanged txtSuche.Text = "" txtSuche.Focus() Tabelle_anzeigen() End Sub Private Sub txtSuche_KeyDown(sender As Object, e As KeyEventArgs) Handles txtSuche.KeyDown Dim dgv As DataGridView = Nothing Select Case TabControl1.SelectedIndex Case 0 : dgv = dgvVERAG Case 1 : dgv = dgvATILLA Case 2 : dgv = dgvIMEX Case 3 : dgv = dgvUNISPED Case 4 : dgv = dgvAMBAR Case 5 : dgv = dgvFRONTOFFICE Case 6 : dgv = dgvVERIMEX Case 7 : dgv = dgvTimasNew End Select If e.KeyCode = Keys.Return Then If dgv.SelectedRows.Count > 0 Then dgvIMEX_CellContentClick(dgv, New DataGridViewCellEventArgs(0, dgv.SelectedRows(0).Index)) End If End If End Sub Private Sub txtSuche_TextChanged(sender As Object, e As EventArgs) Handles txtSuche.TextChanged Tabelle_anzeigen() End Sub Private Sub cbx_CheckedChanged(sender As Object, e As EventArgs) Handles cbx.CheckStateChanged Tabelle_anzeigen() End Sub Private Sub UserKopierenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles UserKopierenToolStripMenuItem.Click, BerechtigungenSetzenToolStripMenuItem.Click If TabControl1.SelectedIndex = 0 Then If dgvVERAG.SelectedRows.Count <> 1 Then Exit Sub If sender.Name = "UserKopierenToolStripMenuItem" Then copyUser(dgvVERAG.CurrentRow.Cells(0).Value) ElseIf sender.Name = "BerechtigungenSetzenToolStripMenuItem" Then Dim frm As New frmBenutzerBerGruppenKopieren(dgvVERAG.CurrentRow.Cells(0).Value) frm.Show(Me) Else End If ElseIf TabControl1.SelectedIndex = 1 Then If dgvATILLA.SelectedRows.Count <> 1 Then Exit Sub copyUser(dgvATILLA.CurrentRow.Cells(0).Value) ElseIf TabControl1.SelectedIndex = 2 Then If dgvIMEX.SelectedRows.Count <> 1 Then Exit Sub copyUser(dgvIMEX.CurrentRow.Cells(0).Value) ElseIf TabControl1.SelectedIndex = 3 Then If dgvUNISPED.SelectedRows.Count <> 1 Then Exit Sub copyUser(dgvUNISPED.CurrentRow.Cells(0).Value) ElseIf TabControl1.SelectedIndex = 4 Then If dgvAMBAR.SelectedRows.Count <> 1 Then Exit Sub copyUser(dgvAMBAR.CurrentRow.Cells(0).Value) ElseIf TabControl1.SelectedIndex = 5 Then If dgvFRONTOFFICE.SelectedRows.Count <> 1 Then Exit Sub copyUser(dgvFRONTOFFICE.CurrentRow.Cells(0).Value) ElseIf TabControl1.SelectedIndex = 6 Then If dgvVERIMEX.SelectedRows.Count <> 1 Then Exit Sub copyUser(dgvVERIMEX.CurrentRow.Cells(0).Value) End If End Sub Private Sub dgvVerag_CellMouseDown(ByVal sender As Object, ByVal e As DataGridViewCellMouseEventArgs) Handles dgvVERAG.CellMouseDown, dgvVERIMEX.CellMouseDown, dgvUNISPED.CellMouseDown, dgvIMEX.CellMouseDown, dgvFRONTOFFICE.CellMouseDown, dgvATILLA.CellMouseDown, dgvAMBAR.CellMouseDown If e.Button = Windows.Forms.MouseButtons.Right AndAlso e.RowIndex > -1 Then Dim rowClicked As DataGridView.HitTestInfo Select Case sender.name Case "dgvVERAG" rowClicked = dgvVERAG.HitTest(e.X, e.Y) dgvVERAG.ClearSelection() Me.dgvVERAG.Rows(e.RowIndex).Selected = True Case "dgvVERIMEX" rowClicked = dgvVERIMEX.HitTest(e.X, e.Y) dgvVERIMEX.ClearSelection() Me.dgvVERIMEX.Rows(e.RowIndex).Selected = True Case "dgvUNISPED" rowClicked = dgvUNISPED.HitTest(e.X, e.Y) dgvUNISPED.ClearSelection() Me.dgvUNISPED.Rows(e.RowIndex).Selected = True Case "dgvIMEX" rowClicked = dgvIMEX.HitTest(e.X, e.Y) dgvIMEX.ClearSelection() Me.dgvIMEX.Rows(e.RowIndex).Selected = True Case "dgvFRONTOFFICE" rowClicked = dgvFRONTOFFICE.HitTest(e.X, e.Y) dgvFRONTOFFICE.ClearSelection() Me.dgvFRONTOFFICE.Rows(e.RowIndex).Selected = True Case "dgvATILLA" rowClicked = dgvATILLA.HitTest(e.X, e.Y) dgvATILLA.ClearSelection() Me.dgvATILLA.Rows(e.RowIndex).Selected = True Case "dgvVERIMEX" rowClicked = dgvAMBAR.HitTest(e.X, e.Y) dgvAMBAR.ClearSelection() Me.dgvAMBAR.Rows(e.RowIndex).Selected = True End Select ContextMenuStrip1.Show(MousePosition.X, MousePosition.Y) End If End Sub Private Sub copyUser(id As Integer) Me.Cursor = Cursors.WaitCursor Dim frmMitarbDetails As New frmMitarbDetails() frmMitarbDetails.mid = id frmMitarbDetails.Show(Me) frmMitarbDetails.isUpdate = False frmMitarbDetails.Label1.Text = "Mitarbeiter kopieren" frmMitarbDetails.txtVname.Text = "Kopie von " & frmMitarbDetails.txtVname.Text frmMitarbDetails.txtNname.Text = "Kopie von " & frmMitarbDetails.txtNname.Text frmMitarbDetails.Label48.Text = "00" 'ZUordnungen zu ext. Prog entfernen frmMitarbDetails.txtPwd.Text = "" frmMitarbDetails.txtCSPW.Text = "" frmMitarbDetails.txtCSUser.Text = "" frmMitarbDetails.txtPwd.Text = "" 'frmMitarbDetails.cboALIASDomain.changeItem("") frmMitarbDetails.cboALIASDomain2.changeItem("") frmMitarbDetails.cboPersonal.changeItem("") frmMitarbDetails.txtALIASUser.Text = "" frmMitarbDetails.txtALIASUser2.Text = "" frmMitarbDetails.txtDakosySB.Text = "" frmMitarbDetails.txtTelotecSB.Text = "" If frmMitarbDetails.mitarbeiter IsNot Nothing Then frmMitarbDetails.mitarbeiter.mit_EZOLL_SB = -1 frmMitarbDetails.mitarbeiter.mit_ATLAS_SB = "" End If frmMitarbDetails.txtDyFullName.Text = "" Me.Cursor = Cursors.Default End Sub Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click Try Me.Cursor = Cursors.WaitCursor Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Dim sqlstr As String = "SELECT '|' + mit_vname + '|' + mit_nname + '|' + isnull(mit_niederlassung,'-') + '|' + isnull(mit_abteilung,'-') + '|' + isnull(mit_email,'-') + '|' + isnull(mit_durchwahl,'-') + '|' + CASE WHEN mit_firma='ALL' THEN mit_firmaHaupt ELSE mit_firma + '|' END as Firma FROM tblMitarbeiter WHERE mit_gekuendigt=0 AND [mit_TESTonly]=0 AND [mit_pseudoUser]=0 And isnull(mit_niederlassung,'')<>'' and isnull(mit_abteilung,'')<>'' and isnull(mit_nname,'') <>'' And isnull(mit_vname,'') <>'' Order by mit_id" Dim sqlstrpic As String = "SELECT isnull(mit_foto_DocId,0) as MAfoto FROM tblMitarbeiter WHERE mit_gekuendigt=0 AND [mit_TESTonly]=0 AND [mit_pseudoUser]=0 And isnull(mit_niederlassung,'') <>'' and isnull(mit_abteilung,'')<>'' and isnull(mit_nname,'') <>'' And isnull(mit_vname,'') <>'' Order by mit_id" Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "ADMIN") Dim dt2 As DataTable = SQL.loadDgvBySql_Param(sqlstrpic, "ADMIN") dt2.Columns.Add("path", GetType(String)) For Each row As DataRow In dt2.Rows Dim filename As String If row.Item("MAfoto") > 0 Then Dim filePath = New StringBuilder() Dim file = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(row(0)) Dim filenameFull = New IO.FileInfo(file).Name.ToLower filePath.Append("|![") filePath.Append(filenameFull) filePath.Append("](/mitarbeiterfotos/") filePath.Append(filenameFull) filePath.Append(")") filename = filePath.ToString Else filename = "|-" End If row.Item("path") = filename Next Dim content = New StringBuilder() content.Append("|Foto|Name|Nachname|Niederlassung|Abteilung|EMail|Telefonnummer|Firma|" & vbNewLine) content.Append("|-|-|-|-|-|-|-|-|" & vbNewLine) For Each row As DataRow In dt.Rows Dim index = dt.Rows.IndexOf(row) content.Append(dt2.Rows(index).Item("path")) content.Append(row(0)) content.Append(vbNewLine) Next content.Append("{.interactive-table}") Dim data As New DataObject() data.SetData(DataFormats.Text, content) Clipboard.SetDataObject(data) Me.Cursor = Cursors.Default MsgBox("Daten in Zwischenablage gespeichert") Catch ex As Exception MsgBox(ex.Message & ex.StackTrace) Me.Cursor = Cursors.Default End Try End Sub Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click Me.Cursor = Cursors.WaitCursor Dim token = "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcGkiOjEsImdycCI6MSwiaWF0IjoxNjg3OTMzNDU3LCJleHAiOjE3MTk0OTEwNTcsImF1ZCI6InVybjp3aWtpLmpzIiwiaXNzIjoidXJuOndpa2kuanMifQ.ul2loFYVHdco2Ia2LcS4nme4PdgcuU6QKrunucECebX5LhcsSyuEg-lKiP2X3JXW57Ym4oCBjamDd5-5uqbQd9hOQ5CDO6yqK2r8TPNxivK29oAl2wfcHaKOe7QNti0yRlMpomJjc_5qaegeeLjN5w-lYbbqtSz_6y8GkPPr0P3l4coIk5IzngGazj8XLYGGN6y5qT4s8IR0sNhfz0hJAlIeVTeFKl8KFZMpFKvBnOjkL0GYOYjrHzPLSUAhe8hCGVcA7rWsweVjjvOclFDDFwZ0SwOY0TZqvz-LOsZ3V7ucQaT3flAjuHiEhODGJguQRBs67U8lVO2cxbJJyR3FUA" Dim dgv As New DataGridView If TabControl1.SelectedIndex = 0 Then dgv = dgvVERAG ElseIf TabControl1.SelectedIndex = 1 Then dgv = dgvATILLA ElseIf TabControl1.SelectedIndex = 2 Then dgv = dgvIMEX ElseIf TabControl1.SelectedIndex = 3 Then dgv = dgvUNISPED ElseIf TabControl1.SelectedIndex = 4 Then dgv = dgvAMBAR ElseIf TabControl1.SelectedIndex = 5 Then dgv = dgvFRONTOFFICE ElseIf TabControl1.SelectedIndex = 6 Then dgv = dgvVERIMEX End If For Each row As DataGridViewRow In dgv.Rows If row.Cells("mit_foto_DocId").Value > 0 Then Dim file = VERAG_PROG_ALLGEMEIN.cDATENSERVER.GET_PDFPath_BY_DocID(row.Cells("mit_foto_DocId").Value) Dim succeess = uploadPictureToWiki(token, 4, file) 'Folder 4 -> Mitarbeiterfotos End If Next Me.Cursor = Cursors.Default Try Catch ex As Exception Me.Cursor = Cursors.Default MsgBox(ex.Message & ex.StackTrace) End Try End Sub Private Function uploadPictureToWiki(authenticationToken As String, folderIDx As Integer, image As String) As String Try VERAG_PROG_ALLGEMEIN.cChilkat_Helper.UnlockCilkat() Dim API_STRING = "https://wiki.verag.ag" Dim rest As New Chilkat.Rest Dim success As Boolean Dim failureDesc As String rest.VerboseLogging = True 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 API_STRING &= "/u" rest.AddHeader("Authorization", "Bearer " & authenticationToken) rest.AddHeader("Content-Type", "multipart/form-data") Dim filename = New IO.FileInfo(image).Name Dim fileStream As New Chilkat.Stream fileStream.SourceFile = image rest.PartSelector = "1" rest.AddHeader("Content-Disposition", "form-data; name=""mediaUpload""") rest.AddHeader("Content-Type", "text") Dim json As New Chilkat.JsonObject success = json.AddIntAt(-1, "folderId", folderIDx) Debug.WriteLine(json.Emit()) success = rest.SetMultipartBodyString(json.Emit()) rest.PartSelector = "2" rest.AddHeader("Content-Disposition", "form-data; name=""mediaUpload""; filename=""" & filename & """") rest.AddHeader("Content-Type", "image/jpeg") success = rest.SetMultipartBodyStream(fileStream) Dim responseBody As String = rest.FullRequestMultipart("POST", API_STRING) If (rest.LastMethodSuccess <> True) Then Debug.WriteLine(rest.LastErrorText) Return rest.LastErrorText End If If (rest.ResponseStatusCode <> 200) Then Debug.WriteLine(rest.ResponseHeader) Return rest.ResponseStatusCode & " " & rest.ResponseStatusText Else Debug.WriteLine("File uploaded") End If rest.ClearAllHeaders() rest.ClearAllParts() rest.PartSelector = "" Catch ex As WebException VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try End Function End Class