From d275cf320d23841bc6e52a15638a17bed8656518 Mon Sep 17 00:00:00 2001 From: ms Date: Tue, 18 Mar 2025 09:03:36 +0100 Subject: [PATCH] =?UTF-8?q?Offline=20Modus=20Verbesserungen,=20SMB=20Share?= =?UTF-8?q?=20f=C3=BCr=20User=20FIX?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DokuServices/Form1.vb | 2 +- Dokumentation/App.config | 62 ++++---- Dokumentation/Classes/Class1.vb | 7 + Dokumentation/Classes/cBerechtigungen.vb | 2 +- Dokumentation/Classes/cDomUser.vb | 3 + Dokumentation/Classes/cPascom.vb | 15 +- Dokumentation/Classes/cSQL.vb | 89 ++++++++++++ Dokumentation/Classes/cSQL2SQLLite.vb | 128 +++++++++++++++++ Dokumentation/Classes/cSQLSync.vb | 127 ++++++++++++++++ Dokumentation/Dokumentation.vbproj | 32 +++++ Dokumentation/Login/Login.vb | 29 ++-- Dokumentation/Main.Designer.vb | 136 +++++++++++------- Dokumentation/Main.vb | 37 ++++- .../My Project/Resources.Designer.vb | 12 +- Dokumentation/My Project/Resources.resx | 57 ++++---- .../Resources/sign-sync-icon_34357.ico | Bin 0 -> 4286 bytes Dokumentation/SMB.vb | 5 +- Dokumentation/packages.config | 6 + 18 files changed, 626 insertions(+), 123 deletions(-) create mode 100644 Dokumentation/Classes/cSQL2SQLLite.vb create mode 100644 Dokumentation/Classes/cSQLSync.vb create mode 100644 Dokumentation/Resources/sign-sync-icon_34357.ico diff --git a/DokuServices/Form1.vb b/DokuServices/Form1.vb index b3de0ce..695ae0f 100644 --- a/DokuServices/Form1.vb +++ b/DokuServices/Form1.vb @@ -7,7 +7,7 @@ Public Class Form1 Dim aktiv As Boolean = False Dim WeiterleitungsZiel As String = "" Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load - Class1.CheckDebug() + If getNotrufservice() = True Then getWeiterleitungsziel() diff --git a/Dokumentation/App.config b/Dokumentation/App.config index 1c7649f..50ba0b8 100644 --- a/Dokumentation/App.config +++ b/Dokumentation/App.config @@ -1,43 +1,57 @@ - + - - - - - - - - + + +
+ + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + + + + + + + + + + + + + \ No newline at end of file diff --git a/Dokumentation/Classes/Class1.vb b/Dokumentation/Classes/Class1.vb index d4bf1da..f7f890f 100644 --- a/Dokumentation/Classes/Class1.vb +++ b/Dokumentation/Classes/Class1.vb @@ -4,6 +4,7 @@ Imports System.IO Public Class Class1 + Public Shared offline As Boolean = False Public sAppPath As String = Application.StartupPath 'Public Shared DBConString As String = "Server=NBMIESENBECK\SPIELWIESE;Initial Catalog=Doku;User ID=sa;Password=verag#3;Connection Timeout=5;" Public Shared DBConString As String @@ -12,6 +13,8 @@ Public Class Class1 Public Shared DBAdmin As String = "[SQLGuide01.verag.ost.dmn].ADMIN" 'Public Shared DBDoku As String = "Server=SQLGuide01.verag.ost.dmn\Verag;Initial Catalog=Doku;User ID=sa;Password=BmWr501956;Connection Timeout=5;" Public Shared DBDoku As String = "Server=SQLGuide01.verag.ost.dmn\Verag;Initial Catalog=Doku;User ID=AppUser;Password=yp/THDd?xM+pZ$;Connection Timeout=5;" + Public Shared lokalDBDoku As String = "Server=localhost\SQLExpress;Initial Catalog=Doku;Integrated Security=SSPI;Connection Timeout=5;" + 'Public Shared DBDoku As String = "Server=dokusql.verag.ost.dmn\sqlexpress;Initial Catalog=Doku;User ID=sa;Password=BmWr501956;Connection Timeout=5;" Public Shared DBDokuTest As String = "Server=DEVELOPER.verag.ost.dmn\DEVSQL;Initial Catalog=Doku;User ID=AppUser;Password=yp/THDd?xM+pZ$;Connection Timeout=5;" 'Public Shared FilePath As String = "\\192.168.0.253\backup\temp_Sebastian\Spielwiese\Doku" @@ -50,6 +53,8 @@ Public Class Class1 If i > 0 Then If s = "/d" Or s = "-d" Then Startparameter = "debug" + ElseIf s = "/offline" Or s = "-offline" Then + Class1.offline = True Else End If End If @@ -61,6 +66,8 @@ Public Class Class1 Class1.DBConString = DBDokuTest '"Server=DEVELOPER.verag.ost.dmn\DEVSQL;Initial Catalog=Doku;User ID=sa;Password=BmWr501956;Connection Timeout=5;" Class1.FilePath = "\\192.168.0.253\backup\temp_Sebastian\DokuTest" + ElseIf offline = True Then + DBConString = lokalDBDoku Else Class1.DBConString = DBDoku '"Server=sqlguide01.verag.ost.dmn;Initial Catalog=Doku;User ID=sa;Password=BmWr501956;Connection Timeout=5;" Class1.FilePath = "\\DEVELOPER.verag.ost.dmn\f\EDV-Wartung\Dokumentation" diff --git a/Dokumentation/Classes/cBerechtigungen.vb b/Dokumentation/Classes/cBerechtigungen.vb index 8ea923d..902b2e9 100644 --- a/Dokumentation/Classes/cBerechtigungen.vb +++ b/Dokumentation/Classes/cBerechtigungen.vb @@ -115,7 +115,7 @@ Public Class cBerechtigungen If ds.Tables(0).Rows.Count > 0 Then Return ds.Tables(0).Rows(0).Item(0).ToString Else - MsgBox("Keine Berechtigung gefunden") + If Not Class1.offline Then MsgBox("Keine Berechtigung gefunden") Return "0" End If End Function diff --git a/Dokumentation/Classes/cDomUser.vb b/Dokumentation/Classes/cDomUser.vb index 173c1aa..3ae8a21 100644 --- a/Dokumentation/Classes/cDomUser.vb +++ b/Dokumentation/Classes/cDomUser.vb @@ -71,6 +71,7 @@ Public Class cDomUser End Function Public Function getDomUserByID(ID As String) + If Class1.offline Then Exit Function Dim ds As New DataSet cSQL.SQL2DS("select " & SelectItems & " from [SQLGuide01.verag.ost.dmn].doku.dbo.tbl_domuser as Doku left join [SQLGuide01.verag.ost.dmn].ADMIN.dbo.tblMitarbeiter on mit_AliasAD_Username = du_sAMAc WHERE du_ID = '" & ID & "'", ds) @@ -152,6 +153,7 @@ Public Class cDomUser End If End Function Public Function getFromAvisoUser(Optional ByVal AvisoUser As String = "") + If Class1.offline Then Exit Function If AvisoUser = "" Then AvisoUser = Me.mit_username End If @@ -180,6 +182,7 @@ Public Class cDomUser End Function Public Function getFromAvisoUserLIST(AvisoUser As String) + If Class1.offline Then Exit Function Dim ds As New DataSet Dim AvisoUserList As New List(Of cDomUser) cSQL.SQL2DS("select * from ADMIN.dbo.tblMitarbeiter where mit_username = '" & AvisoUser & "'", ds, Class1.DBADMINBuchhaltung) diff --git a/Dokumentation/Classes/cPascom.vb b/Dokumentation/Classes/cPascom.vb index 868be15..4528444 100644 --- a/Dokumentation/Classes/cPascom.vb +++ b/Dokumentation/Classes/cPascom.vb @@ -3,7 +3,7 @@ Imports Chilkat Public Class cPascom - Dim API_USER_AUTHORIZATION = "bW9ieTpnWlhTSVprTnhmaUQxOEU=" + Dim API_USER_AUTHORIZATION = "" Property Arbeitsplatz As String = "" Property Username As String = "" Dim TelUrl As String = "" @@ -14,9 +14,18 @@ Public Class cPascom If ds.Tables(0).Rows.Count > 0 Then TelUrl = ds.Tables(0).Rows(0).Item(0).ToString End If + ds.Clear() + + + cSQL.SQL2DS("SELECT Parameter FROM [Doku].[dbo].[TbL_Dienste] where name = 'PascomAPICred'", ds) + If ds.Tables(0).Rows.Count > 0 Then + API_USER_AUTHORIZATION = ds.Tables(0).Rows(0).Item(0).ToString + End If End Sub + + Public Function Anmelden() As Boolean If Arbeitsplatz.Length > 0 And Username.Length > 0 Then Try @@ -129,7 +138,7 @@ Public Class cPascom End If rest.AddHeader("Content-Type", "application/json") - rest.SetAuthBasic("moby", "XgDsFmMSutaMLA1") + rest.SetAuthBasic("qYAnX6SpQ62SK4ZZfi8IMRIHJ", "10vO6fO2CMVfL1P0hFuqWzvvh") Dim json As New Chilkat.JsonObject @@ -171,7 +180,7 @@ Public Class cPascom Dim Resp_errorCode = jsonResp.StringOf("errorCode") Target = jsonResp.StringOf("target") - ' MsgBox("Hier!!!") + 'MsgBox("Hier!!!") Return True diff --git a/Dokumentation/Classes/cSQL.vb b/Dokumentation/Classes/cSQL.vb index 506bd91..2f5702c 100644 --- a/Dokumentation/Classes/cSQL.vb +++ b/Dokumentation/Classes/cSQL.vb @@ -15,6 +15,95 @@ Public Class cSQL con.Close() End Sub + Sub UpdateDatenbankStruktur() + Dim conn As New SqlConnection(Class1.DBDoku) + Dim cmd As New SqlCommand("SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'", conn) + conn.Open() + Dim reader As SqlDataReader = cmd.ExecuteReader() + + While reader.Read() + Dim tableName As String = reader("TABLE_NAME").ToString() + Console.WriteLine("CREATE TABLE " & tableName) + ' Hier kannst du dann den CREATE TABLE Befehl generieren + UpdateOrCreateTable(Class1.DBDoku, Class1.lokalDBDoku, tableName) + SyncDatenbank(tableName) + End While + conn.Close() + + End Sub + Sub SyncDatenbank(tabelle As String) + Dim conn As New SqlConnection(Class1.lokalDBDoku) + Dim cmd As New SqlCommand($" + DELETE FROM {tabelle}; + INSERT INTO {tabelle} + SELECT * FROM [sqlcluster.verag.ost.dmn].doku.dbo.{tabelle};", conn) + + Try + conn.Open() + cmd.ExecuteNonQuery() + conn.Close() + Console.WriteLine("Datenbank erfolgreich synchronisiert!") + Catch ex As Exception + Console.WriteLine("Fehler bei der Synchronisation: " & ex.Message) + End Try + End Sub + + Sub UpdateOrCreateTable(sqlServerConnectionString As String, localSqlServerConnectionString As String, tableName As String) + ' SQL Server-Abfrage für die Spalteninformationen + Dim query As String = $"SELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, IS_NULLABLE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '{tableName}'" + Dim columnDefinitions As New List(Of String) + + ' Abfrage für die Spaltenstruktur der Remote-Tabelle + Using con As New SqlConnection(sqlServerConnectionString) + con.Open() + Using cmd As New SqlCommand(query, con) + Using reader As SqlDataReader = cmd.ExecuteReader() + While reader.Read() + Dim columnName As String = reader("COLUMN_NAME").ToString() + Dim dataType As String = reader("DATA_TYPE").ToString() + If reader("CHARACTER_MAXIMUM_LENGTH") IsNot DBNull.Value Then + dataType &= $"({reader("CHARACTER_MAXIMUM_LENGTH").ToString()})" + If dataType = "varchar(-1)" Then dataType = "varchar(max)" + End If + Dim isNullable As String = If(reader("IS_NULLABLE").ToString() = "YES", "NULL", "NOT NULL") + columnDefinitions.Add($"{columnName} {dataType} {isNullable}") + End While + End Using + End Using + End Using + + ' Die lokale SQL Server-Datenbank, in der die Tabelle erstellt wird + Using localSqlCon As New SqlConnection(localSqlServerConnectionString) + localSqlCon.Open() + + ' Prüfen, ob die Tabelle bereits existiert + Dim tableExistsQuery As String = $"SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '{tableName}'" + Using cmd As New SqlCommand(tableExistsQuery, localSqlCon) + Dim exists As Object = cmd.ExecuteScalar() + If exists Is Nothing Then + ' Erstelle die Tabelle, wenn sie nicht existiert + Dim createTableSQL As String = $"CREATE TABLE {tableName} ({String.Join(", ", columnDefinitions)});" + Using createCmd As New SqlCommand(createTableSQL, localSqlCon) + createCmd.ExecuteNonQuery() + End Using + Else + ' Falls die Tabelle bereits existiert, überprüfe und füge neue Spalten hinzu + For Each columnDef In columnDefinitions + Dim columnName As String = columnDef.Split(" ")(0) + Dim addColumnSQL As String = $"ALTER TABLE {tableName} ADD COLUMN {columnDef};" + Try + Using alterCmd As New SqlCommand(addColumnSQL, localSqlCon) + alterCmd.ExecuteNonQuery() + End Using + Catch ex As Exception + ' Falls die Spalte bereits existiert, wird die Exception ignoriert + End Try + Next + End If + End Using + End Using + End Sub + Public Shared Sub UpdateSQL(ByRef table As String, ByRef values As String, ByRef where As String, Optional ByRef DBConnect As String = "") If DBConnect = "" Then DBConnect = Class1.DBConString Dim con As New SqlConnection diff --git a/Dokumentation/Classes/cSQL2SQLLite.vb b/Dokumentation/Classes/cSQL2SQLLite.vb new file mode 100644 index 0000000..a6a1e64 --- /dev/null +++ b/Dokumentation/Classes/cSQL2SQLLite.vb @@ -0,0 +1,128 @@ +Imports System.Data.SqlClient +Imports System.Data.SQLite + +Public Class cSQL2SQLLite + + + Function Main(tableName As String) + + Dim sqlServerConString = Class1.DBDoku + Dim sqliteFile As String = "C:\verag\offline_db.sqlite" + Dim sqliteConnString As String = $"Data Source={sqliteFile};Version=3;" + + + + UpdateOrCreateTable(sqlServerConString, sqliteConnString, tableName) + CopyDataIncrementally(sqlServerConString, sqliteConnString, tableName) + + End Function + + + Sub UpdateOrCreateTable(sqlServerConnectionString As String, localSqlServerConnectionString As String, tableName As String) + ' SQL Server-Abfrage für die Spalteninformationen + Dim query As String = $"SELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, IS_NULLABLE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '{tableName}'" + Dim columnDefinitions As New List(Of String) + + ' Abfrage für die Spaltenstruktur der Remote-Tabelle + Using con As New SqlConnection(sqlServerConnectionString) + con.Open() + Using cmd As New SqlCommand(query, con) + Using reader As SqlDataReader = cmd.ExecuteReader() + While reader.Read() + Dim columnName As String = reader("COLUMN_NAME").ToString() + Dim dataType As String = reader("DATA_TYPE").ToString() + If reader("CHARACTER_MAXIMUM_LENGTH") IsNot DBNull.Value Then + dataType &= $"({reader("CHARACTER_MAXIMUM_LENGTH").ToString()})" + End If + Dim isNullable As String = If(reader("IS_NULLABLE").ToString() = "YES", "NULL", "NOT NULL") + columnDefinitions.Add($"{columnName} {dataType} {isNullable}") + End While + End Using + End Using + End Using + + ' Die lokale SQL Server-Datenbank, in der die Tabelle erstellt wird + Using localSqlCon As New SqlConnection(localSqlServerConnectionString) + localSqlCon.Open() + + ' Prüfen, ob die Tabelle bereits existiert + Dim tableExistsQuery As String = $"SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '{tableName}'" + Using cmd As New SqlCommand(tableExistsQuery, localSqlCon) + Dim exists As Object = cmd.ExecuteScalar() + If exists Is Nothing Then + ' Erstelle die Tabelle, wenn sie nicht existiert + Dim createTableSQL As String = $"CREATE TABLE {tableName} ({String.Join(", ", columnDefinitions)});" + Using createCmd As New SqlCommand(createTableSQL, localSqlCon) + createCmd.ExecuteNonQuery() + End Using + Else + ' Falls die Tabelle bereits existiert, überprüfe und füge neue Spalten hinzu + For Each columnDef In columnDefinitions + Dim columnName As String = columnDef.Split(" ")(0) + Dim addColumnSQL As String = $"ALTER TABLE {tableName} ADD COLUMN {columnDef};" + Try + Using alterCmd As New SqlCommand(addColumnSQL, localSqlCon) + alterCmd.ExecuteNonQuery() + End Using + Catch ex As Exception + ' Falls die Spalte bereits existiert, wird die Exception ignoriert + End Try + Next + End If + End Using + End Using + End Sub + + + Sub CopyDataIncrementally(sqlServerConnectionString As String, sqliteConnectionString As String, tableName As String) + Dim query As String = $"SELECT * FROM {tableName}" + + Using sqlCon As New SqlConnection(sqlServerConnectionString) + sqlCon.Open() + Using cmd As New SqlCommand(query, sqlCon) + Using reader As SqlDataReader = cmd.ExecuteReader() + Using sqliteCon As New SQLiteConnection(sqliteConnectionString) + sqliteCon.Open() + + While reader.Read() + Dim columns As New List(Of String) + Dim values As New List(Of String) + Dim parameters As New List(Of SQLiteParameter) + + For i As Integer = 0 To reader.FieldCount - 1 + Dim columnName As String = reader.GetName(i) + columns.Add(columnName) + values.Add($"@{columnName}") + parameters.Add(New SQLiteParameter($"@{columnName}", reader.GetValue(i))) + Next + + Dim insertSQL As String = $"INSERT OR IGNORE INTO {tableName} ({String.Join(", ", columns)}) VALUES ({String.Join(", ", values)})" + Using insertCmd As New SQLiteCommand(insertSQL, sqliteCon) + insertCmd.Parameters.AddRange(parameters.ToArray()) + insertCmd.ExecuteNonQuery() + End Using + End While + End Using + End Using + End Using + End Using + End Sub + + Function MapSQLServerToSQLiteType(sqlType As String, length As Object) As String + Select Case sqlType.ToLower() + Case "int", "bigint", "smallint", "tinyint" + Return "INTEGER" + Case "bit" + Return "BOOLEAN" + Case "decimal", "numeric", "money", "smallmoney", "float", "real" + Return "REAL" + Case "char", "nchar", "varchar", "nvarchar", "text", "ntext" + Return "TEXT" + Case "datetime", "smalldatetime", "date", "time", "datetime2" + Return "TEXT" + Case Else + Return "TEXT" + End Select + End Function + +End Class diff --git a/Dokumentation/Classes/cSQLSync.vb b/Dokumentation/Classes/cSQLSync.vb new file mode 100644 index 0000000..762cc2a --- /dev/null +++ b/Dokumentation/Classes/cSQLSync.vb @@ -0,0 +1,127 @@ +Imports System.Data.SqlClient +Imports System.Data.SQLite +Imports System.IO +Public Class cSQLSync + + + + Dim sqlConnString As String = Class1.DBDoku + Dim sqliteFile As String = "C:\verag\offline_db.sqlite" + Dim sqliteConnString As String = $"Data Source={sqliteFile};Version=3;" + + Property TbL As String + + Sub Main() + ' Falls die lokale Datenbank nicht existiert, erstelle sie + If Not File.Exists(sqliteFile) Then + SQLiteConnection.CreateFile(sqliteFile) + + End If + + ' Daten synchronisieren + 'CreateLocalTables() + + SyncDatabase() + End Sub + + ' Erstellt Tabellen in der lokalen SQLite-Datenbank + Sub CreateLocalTables() + Using sqliteConn As New SQLiteConnection(sqliteConnString) + Dim convert As New cSQL2SQLLite + sqliteConn.Open() + Dim sql As String = convert.Main(TbL) + Using cmd As New SQLiteCommand(sql, sqliteConn) + cmd.ExecuteNonQuery() + End Using + End Using + End Sub + + ' Synchronisiert Daten von SQL Server zu SQLite + Sub SyncDatabase() + Using sqlConn As New SqlConnection(sqlConnString) + sqlConn.Open() + + ' TbL_Netzwerkclients-Daten abrufen + Dim sqlQuery As String = "SELECT * FROM TbL_Netzwerkclients" + Using sqlCmd As New SqlCommand(sqlQuery, sqlConn) + Using reader As SqlDataReader = sqlCmd.ExecuteReader() + Using sqliteConn As New SQLiteConnection(sqliteConnString) + sqliteConn.Open() + + ' Einfügen oder Aktualisieren (Upsert) + While reader.Read() + Dim upsertQuery As String = "INSERT INTO TbL_Netzwerkclients ( + IPAdresse, FQDN, QINFO, NETNAME, Seriennummer, MAC, Benutzer, Passwort, LINK, INFO, TYPE, HOST, NWSTANDORT, Modell, + Linked, LinkedWith, AddIP, Standort, DHCP, Netzwerk, Firewall, TeamviewerID, TeamviewerKennwort, SSHPort, AnydeskID, AnydeskPassword + ) VALUES ( + @IP, @FQDN, @QINFO, @NETNAME, @Seriennummer, @MAC, @Benutzer, @Passwort, @LINK, @INFO, @TYPE, @HOST, @NWSTANDORT, @Modell, + @Linked, @LinkedWith, @AddIP, @Standort, @DHCP, @Netzwerk, @Firewall, @TeamviewerID, @TeamviewerKennwort, @SSHPort, @AnydeskID, @AnydeskPassword + ) + ON CONFLICT(IPAdresse) DO UPDATE SET + FQDN = excluded.FQDN, + QINFO = excluded.QINFO, + NETNAME = excluded.NETNAME, + Seriennummer = excluded.Seriennummer, + MAC = excluded.MAC, + Benutzer = excluded.Benutzer, + Passwort = excluded.Passwort, + LINK = excluded.LINK, + INFO = excluded.INFO, + TYPE = excluded.TYPE, + HOST = excluded.HOST, + NWSTANDORT = excluded.NWSTANDORT, + Modell = excluded.Modell, + Linked = excluded.Linked, + LinkedWith = excluded.LinkedWith, + AddIP = excluded.AddIP, + Standort = excluded.Standort, + DHCP = excluded.DHCP, + Netzwerk = excluded.Netzwerk, + Firewall = excluded.Firewall, + TeamviewerID = excluded.TeamviewerID, + TeamviewerKennwort = excluded.TeamviewerKennwort, + SSHPort = excluded.SSHPort, + AnydeskID = excluded.AnydeskID, + AnydeskPassword = excluded.AnydeskPassword;" + + Using upsertCmd As New SQLiteCommand(upsertQuery, sqliteConn) + upsertCmd.Parameters.AddWithValue("@IP", reader("IPAdresse")) + upsertCmd.Parameters.AddWithValue("@FQDN", reader("FQDN")) + upsertCmd.Parameters.AddWithValue("@QINFO", reader("QINFO")) + upsertCmd.Parameters.AddWithValue("@NETNAME", reader("NETNAME")) + upsertCmd.Parameters.AddWithValue("@Seriennummer", reader("Seriennummer")) + upsertCmd.Parameters.AddWithValue("@MAC", reader("MAC")) + upsertCmd.Parameters.AddWithValue("@Benutzer", reader("Benutzer")) + upsertCmd.Parameters.AddWithValue("@Passwort", reader("Passwort")) + upsertCmd.Parameters.AddWithValue("@LINK", reader("LINK")) + upsertCmd.Parameters.AddWithValue("@INFO", reader("INFO")) + upsertCmd.Parameters.AddWithValue("@TYPE", reader("TYPE")) + upsertCmd.Parameters.AddWithValue("@HOST", reader("HOST")) + upsertCmd.Parameters.AddWithValue("@NWSTANDORT", reader("NWSTANDORT")) + upsertCmd.Parameters.AddWithValue("@Modell", reader("Modell")) + upsertCmd.Parameters.AddWithValue("@Linked", reader("Linked")) + upsertCmd.Parameters.AddWithValue("@LinkedWith", reader("LinkedWith")) + upsertCmd.Parameters.AddWithValue("@AddIP", reader("AddIP")) + upsertCmd.Parameters.AddWithValue("@Standort", reader("Standort")) + upsertCmd.Parameters.AddWithValue("@DHCP", reader("DHCP")) + upsertCmd.Parameters.AddWithValue("@Netzwerk", reader("Netzwerk")) + upsertCmd.Parameters.AddWithValue("@Firewall", reader("Firewall")) + upsertCmd.Parameters.AddWithValue("@TeamviewerID", reader("TeamviewerID")) + upsertCmd.Parameters.AddWithValue("@TeamviewerKennwort", reader("TeamviewerKennwort")) + upsertCmd.Parameters.AddWithValue("@SSHPort", reader("SSHPort")) + upsertCmd.Parameters.AddWithValue("@AnydeskID", reader("AnydeskID")) + upsertCmd.Parameters.AddWithValue("@AnydeskPassword", reader("AnydeskPassword")) + + upsertCmd.ExecuteNonQuery() + End Using + End While + End Using + End Using + End Using + End Using + Console.WriteLine("Synchronisation abgeschlossen!") + End Sub + + + +End Class diff --git a/Dokumentation/Dokumentation.vbproj b/Dokumentation/Dokumentation.vbproj index a0b63e4..86a29a2 100644 --- a/Dokumentation/Dokumentation.vbproj +++ b/Dokumentation/Dokumentation.vbproj @@ -1,5 +1,6 @@  + Debug @@ -33,6 +34,8 @@ false true true + + x64 @@ -127,6 +130,12 @@ ..\packages\Dynamsoft.DotNet.TWAIN.8.0.0\lib\net40\Dynamsoft.WPF.Viewer.dll + + ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\packages\ExcelNumberFormat.1.0.3\lib\net20\ExcelNumberFormat.dll @@ -187,9 +196,19 @@ ..\packages\Spire.PDF.6.3.10\lib\net46\Spire.Pdf.dll + + + ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0\lib\net46\System.Data.SQLite.dll + + + ..\packages\System.Data.SQLite.EF6.1.0.119.0\lib\net46\System.Data.SQLite.EF6.dll + + + ..\packages\System.Data.SQLite.Linq.1.0.119.0\lib\net46\System.Data.SQLite.Linq.dll + @@ -265,8 +284,10 @@ + + True True @@ -701,6 +722,7 @@ + @@ -716,4 +738,14 @@ + + + Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}". + + + + + + + \ No newline at end of file diff --git a/Dokumentation/Login/Login.vb b/Dokumentation/Login/Login.vb index 61ff08a..be684a9 100644 --- a/Dokumentation/Login/Login.vb +++ b/Dokumentation/Login/Login.vb @@ -7,14 +7,17 @@ Public Class Login Property BenutzeranmeldeName As String = "" Private Sub Login_Load(sender As Object, e As EventArgs) Handles MyBase.Load + 'Class1.offline = True + Class1.CheckDebug() + Dim LDAP As String = ReturnLDAP(Environment.UserDomainName) - Class1.LoggedOnUser.FillWithLoggedOnUser(True, LDAP) + If Not Class1.offline Then Class1.LoggedOnUser.FillWithLoggedOnUser(Not Class1.offline, LDAP) Class1.DebugText = LDAP ' Class1.DebugText &= Environment.UserDomainName & vbCrLf 'Class1.DebugText &= ReturnLDAP(Environment.UserDomainName) & vbCrLf - Class1.CheckDebug(True) + Try - userPrincipalName = System.DirectoryServices.AccountManagement.UserPrincipal.Current.UserPrincipalName + If Not Class1.offline Then userPrincipalName = System.DirectoryServices.AccountManagement.UserPrincipal.Current.UserPrincipalName Catch ex As Exception MsgBox("Login_Load: " & ex.Message) End Try @@ -35,6 +38,7 @@ Public Class Login End Function Public Function LoadUSRID() + If Class1.offline Then Exit Function Dim ds As New DataSet cSQL.SQL2DS("select * from [ADMIN].dbo.tblMitarbeiter where mit_aliasad_domain = '" & Environment.UserDomainName & "' AND mit_AliasAD_Username = '" & Environment.UserName & "'", ds) VERAG_PROG_ALLGEMEIN.cAllgemein.USRID = ds.Tables(0).Rows(0).Item("mit_id") @@ -51,15 +55,20 @@ Public Class Login Public Sub Login() Timer1.Enabled = False - Try - Abfrage(userPrincipalName) - ' LoadUSRID() - Catch ex As Exception - 'MsgBox("Fehler beim Anmelden!") - MsgBox("Loginfehler! Zeile 59" & vbCrLf & ex.Message & vbCrLf & userPrincipalName) + If Class1.offline = False Then + Try + Abfrage(userPrincipalName) + ' LoadUSRID() + Catch ex As Exception + 'MsgBox("Fehler beim Anmelden!") + MsgBox("Loginfehler! Zeile 59" & vbCrLf & ex.Message & vbCrLf & userPrincipalName) + PasswortabfrageLogin.Show() + End Try + Else PasswortabfrageLogin.Show() - End Try + End If + End Sub Public Function Abfrage(user As String, Optional ByVal txt As Boolean = False) diff --git a/Dokumentation/Main.Designer.vb b/Dokumentation/Main.Designer.vb index f86c717..a90cb1a 100644 --- a/Dokumentation/Main.Designer.vb +++ b/Dokumentation/Main.Designer.vb @@ -27,6 +27,7 @@ Partial Class Main Dim DataGridViewCellStyle1 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() Me.Panel2 = New System.Windows.Forms.Panel() Me.Panel4 = New System.Windows.Forms.Panel() + Me.lblOfflinemodus = New System.Windows.Forms.Label() Me.Button3 = New System.Windows.Forms.Button() Me.Button2 = New System.Windows.Forms.Button() Me.lblNotruf = New System.Windows.Forms.Label() @@ -74,6 +75,7 @@ Partial Class Main Me.PascomToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.UnifiToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.Panel3 = New System.Windows.Forms.Panel() + Me.btnSync = New System.Windows.Forms.Button() Me.lblCount = New System.Windows.Forms.Label() Me.btnNeu = New System.Windows.Forms.Button() Me.ChkDHCPClients = New System.Windows.Forms.CheckBox() @@ -95,8 +97,13 @@ Partial Class Main Me.DGVMainContext = New System.Windows.Forms.ContextMenuStrip(Me.components) Me.DgvMainContextMenuItemHost = New System.Windows.Forms.ToolStripMenuItem() Me.DateienToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.SMBToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.AnydeskToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.PuttyToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator4 = New System.Windows.Forms.ToolStripSeparator() Me.DgvMainContextMenuItemLink = New System.Windows.Forms.ToolStripMenuItem() + Me.LinkÖffnenMitEdgeToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator5 = New System.Windows.Forms.ToolStripSeparator() + Me.SMBToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.IPAdresseInZwischenablageToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.TeamviewerVerbindenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.RDPToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() @@ -121,11 +128,6 @@ Partial Class Main Me.panTSSitzungen = New System.Windows.Forms.Panel() Me.Timer_Refresh = New System.Windows.Forms.Timer(Me.components) Me.Timer1 = New System.Windows.Forms.Timer(Me.components) - Me.ToolStripSeparator4 = New System.Windows.Forms.ToolStripSeparator() - Me.ToolStripSeparator5 = New System.Windows.Forms.ToolStripSeparator() - Me.LinkÖffnenMitEdgeToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.AnydeskToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() - Me.PuttyToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.Panel2.SuspendLayout() Me.Panel4.SuspendLayout() CType(Me.picAVISOMessenger, System.ComponentModel.ISupportInitialize).BeginInit() @@ -157,6 +159,7 @@ Partial Class Main 'Panel4 ' Me.Panel4.BackColor = System.Drawing.SystemColors.GradientInactiveCaption + Me.Panel4.Controls.Add(Me.lblOfflinemodus) Me.Panel4.Controls.Add(Me.Button3) Me.Panel4.Controls.Add(Me.Button2) Me.Panel4.Controls.Add(Me.lblNotruf) @@ -184,6 +187,17 @@ Partial Class Main Me.Panel4.Size = New System.Drawing.Size(1222, 106) Me.Panel4.TabIndex = 14 ' + 'lblOfflinemodus + ' + Me.lblOfflinemodus.AutoSize = True + Me.lblOfflinemodus.Font = New System.Drawing.Font("Microsoft Sans Serif", 20.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblOfflinemodus.ForeColor = System.Drawing.Color.Red + Me.lblOfflinemodus.Location = New System.Drawing.Point(968, 0) + Me.lblOfflinemodus.Name = "lblOfflinemodus" + Me.lblOfflinemodus.Size = New System.Drawing.Size(251, 31) + Me.lblOfflinemodus.TabIndex = 47 + Me.lblOfflinemodus.Text = "OFFLINE MODUS" + ' 'Button3 ' Me.Button3.BackColor = System.Drawing.SystemColors.ControlLightLight @@ -408,7 +422,7 @@ Partial Class Main ' Me.PictureBox1.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.PictureBox1.Image = CType(resources.GetObject("PictureBox1.Image"), System.Drawing.Image) - Me.PictureBox1.Location = New System.Drawing.Point(873, 4) + Me.PictureBox1.Location = New System.Drawing.Point(873, 6) Me.PictureBox1.Name = "PictureBox1" Me.PictureBox1.Size = New System.Drawing.Size(340, 74) Me.PictureBox1.TabIndex = 1 @@ -526,54 +540,54 @@ Partial Class Main 'NetzwerkeToolStripMenuItem ' Me.NetzwerkeToolStripMenuItem.Name = "NetzwerkeToolStripMenuItem" - Me.NetzwerkeToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.NetzwerkeToolStripMenuItem.Size = New System.Drawing.Size(176, 22) Me.NetzwerkeToolStripMenuItem.Text = "Tabellen bearbeiten" ' 'AnsichtDruckenToolStripMenuItem ' Me.AnsichtDruckenToolStripMenuItem.Name = "AnsichtDruckenToolStripMenuItem" - Me.AnsichtDruckenToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.AnsichtDruckenToolStripMenuItem.Size = New System.Drawing.Size(176, 22) Me.AnsichtDruckenToolStripMenuItem.Text = "Drucken" ' 'ExportToolStripMenuItem ' Me.ExportToolStripMenuItem.Name = "ExportToolStripMenuItem" - Me.ExportToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.ExportToolStripMenuItem.Size = New System.Drawing.Size(176, 22) Me.ExportToolStripMenuItem.Text = "Export" ' 'ImportToolStripMenuItem ' Me.ImportToolStripMenuItem.Name = "ImportToolStripMenuItem" - Me.ImportToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.ImportToolStripMenuItem.Size = New System.Drawing.Size(176, 22) Me.ImportToolStripMenuItem.Text = "Import" ' 'BenutzerToolStripMenuItem ' Me.BenutzerToolStripMenuItem.Name = "BenutzerToolStripMenuItem" - Me.BenutzerToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.BenutzerToolStripMenuItem.Size = New System.Drawing.Size(176, 22) Me.BenutzerToolStripMenuItem.Text = "Benutzer" ' 'AllesSichernCSVToolStripMenuItem ' Me.AllesSichernCSVToolStripMenuItem.Name = "AllesSichernCSVToolStripMenuItem" - Me.AllesSichernCSVToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.AllesSichernCSVToolStripMenuItem.Size = New System.Drawing.Size(176, 22) Me.AllesSichernCSVToolStripMenuItem.Text = "Alles Sichern (CSV)" ' 'ToolStripSeparator1 ' Me.ToolStripSeparator1.Name = "ToolStripSeparator1" - Me.ToolStripSeparator1.Size = New System.Drawing.Size(177, 6) + Me.ToolStripSeparator1.Size = New System.Drawing.Size(173, 6) ' 'UpdateToolStripMenuItem ' Me.UpdateToolStripMenuItem.Name = "UpdateToolStripMenuItem" - Me.UpdateToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.UpdateToolStripMenuItem.Size = New System.Drawing.Size(176, 22) Me.UpdateToolStripMenuItem.Text = "Update" ' 'ExitToolStripMenuItem ' Me.ExitToolStripMenuItem.Name = "ExitToolStripMenuItem" - Me.ExitToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.ExitToolStripMenuItem.Size = New System.Drawing.Size(176, 22) Me.ExitToolStripMenuItem.Text = "Exit" ' 'ToolStripMenuItem2 @@ -610,6 +624,7 @@ Partial Class Main 'Panel3 ' Me.Panel3.BackColor = System.Drawing.SystemColors.GradientInactiveCaption + Me.Panel3.Controls.Add(Me.btnSync) Me.Panel3.Controls.Add(Me.lblCount) Me.Panel3.Controls.Add(Me.btnNeu) Me.Panel3.Controls.Add(Me.ChkDHCPClients) @@ -628,6 +643,21 @@ Partial Class Main Me.Panel3.Size = New System.Drawing.Size(200, 765) Me.Panel3.TabIndex = 2 ' + 'btnSync + ' + Me.btnSync.BackColor = System.Drawing.SystemColors.ControlLightLight + Me.btnSync.FlatAppearance.MouseOverBackColor = System.Drawing.Color.FromArgb(CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer)) + Me.btnSync.FlatStyle = System.Windows.Forms.FlatStyle.Flat + Me.btnSync.Image = Global.Dokumentation.My.Resources.Resources.sign_sync_icon_34357 + Me.btnSync.ImageAlign = System.Drawing.ContentAlignment.MiddleRight + Me.btnSync.Location = New System.Drawing.Point(51, 613) + Me.btnSync.Name = "btnSync" + Me.btnSync.Size = New System.Drawing.Size(73, 43) + Me.btnSync.TabIndex = 19 + Me.btnSync.Text = "SYNC" + Me.btnSync.TextAlign = System.Drawing.ContentAlignment.MiddleLeft + Me.btnSync.UseVisualStyleBackColor = False + ' 'lblCount ' Me.lblCount.AutoSize = True @@ -853,7 +883,7 @@ Partial Class Main ' Me.DGVMainContext.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.DgvMainContextMenuItemHost, Me.DateienToolStripMenuItem, Me.AnydeskToolStripMenuItem, Me.PuttyToolStripMenuItem, Me.ToolStripSeparator4, Me.DgvMainContextMenuItemLink, Me.LinkÖffnenMitEdgeToolStripMenuItem, Me.ToolStripSeparator5, Me.SMBToolStripMenuItem, Me.IPAdresseInZwischenablageToolStripMenuItem, Me.TeamviewerVerbindenToolStripMenuItem, Me.RDPToolStripMenuItem, Me.RDPFensterToolStripMenuItem, Me.ToolStripSeparator3, Me.ObjektLöschenToolStripMenuItem, Me.ToolStripSeparator2, Me.NetzwerkdateienToolStripMenuItem, Me.ToolsToolStripMenuItem}) Me.DGVMainContext.Name = "ContextMenuStrip2" - Me.DGVMainContext.Size = New System.Drawing.Size(230, 358) + Me.DGVMainContext.Size = New System.Drawing.Size(230, 336) ' 'DgvMainContextMenuItemHost ' @@ -867,11 +897,22 @@ Partial Class Main Me.DateienToolStripMenuItem.Size = New System.Drawing.Size(229, 22) Me.DateienToolStripMenuItem.Text = "Dateien" ' - 'SMBToolStripMenuItem + 'AnydeskToolStripMenuItem ' - Me.SMBToolStripMenuItem.Name = "SMBToolStripMenuItem" - Me.SMBToolStripMenuItem.Size = New System.Drawing.Size(229, 22) - Me.SMBToolStripMenuItem.Text = "SMB" + Me.AnydeskToolStripMenuItem.Name = "AnydeskToolStripMenuItem" + Me.AnydeskToolStripMenuItem.Size = New System.Drawing.Size(229, 22) + Me.AnydeskToolStripMenuItem.Text = "Anydesk" + ' + 'PuttyToolStripMenuItem + ' + Me.PuttyToolStripMenuItem.Name = "PuttyToolStripMenuItem" + Me.PuttyToolStripMenuItem.Size = New System.Drawing.Size(229, 22) + Me.PuttyToolStripMenuItem.Text = "Putty" + ' + 'ToolStripSeparator4 + ' + Me.ToolStripSeparator4.Name = "ToolStripSeparator4" + Me.ToolStripSeparator4.Size = New System.Drawing.Size(226, 6) ' 'DgvMainContextMenuItemLink ' @@ -879,6 +920,23 @@ Partial Class Main Me.DgvMainContextMenuItemLink.Size = New System.Drawing.Size(229, 22) Me.DgvMainContextMenuItemLink.Text = "Link öffnen" ' + 'LinkÖffnenMitEdgeToolStripMenuItem + ' + Me.LinkÖffnenMitEdgeToolStripMenuItem.Name = "LinkÖffnenMitEdgeToolStripMenuItem" + Me.LinkÖffnenMitEdgeToolStripMenuItem.Size = New System.Drawing.Size(229, 22) + Me.LinkÖffnenMitEdgeToolStripMenuItem.Text = "Link öffnen mit Edge" + ' + 'ToolStripSeparator5 + ' + Me.ToolStripSeparator5.Name = "ToolStripSeparator5" + Me.ToolStripSeparator5.Size = New System.Drawing.Size(226, 6) + ' + 'SMBToolStripMenuItem + ' + Me.SMBToolStripMenuItem.Name = "SMBToolStripMenuItem" + Me.SMBToolStripMenuItem.Size = New System.Drawing.Size(229, 22) + Me.SMBToolStripMenuItem.Text = "SMB" + ' 'IPAdresseInZwischenablageToolStripMenuItem ' Me.IPAdresseInZwischenablageToolStripMenuItem.Name = "IPAdresseInZwischenablageToolStripMenuItem" @@ -935,19 +993,19 @@ Partial Class Main 'PingToolStripMenuItem ' Me.PingToolStripMenuItem.Name = "PingToolStripMenuItem" - Me.PingToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.PingToolStripMenuItem.Size = New System.Drawing.Size(176, 22) Me.PingToolStripMenuItem.Text = "Ping" ' 'PingtToolStripMenuItem ' Me.PingtToolStripMenuItem.Name = "PingtToolStripMenuItem" - Me.PingtToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.PingtToolStripMenuItem.Size = New System.Drawing.Size(176, 22) Me.PingtToolStripMenuItem.Text = "Ping -t" ' 'SpoolerNeuStartenToolStripMenuItem ' Me.SpoolerNeuStartenToolStripMenuItem.Name = "SpoolerNeuStartenToolStripMenuItem" - Me.SpoolerNeuStartenToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.SpoolerNeuStartenToolStripMenuItem.Size = New System.Drawing.Size(176, 22) Me.SpoolerNeuStartenToolStripMenuItem.Text = "Spooler neu starten" ' 'PanTools @@ -1047,34 +1105,6 @@ Partial Class Main 'Timer1 ' ' - 'ToolStripSeparator4 - ' - Me.ToolStripSeparator4.Name = "ToolStripSeparator4" - Me.ToolStripSeparator4.Size = New System.Drawing.Size(226, 6) - ' - 'ToolStripSeparator5 - ' - Me.ToolStripSeparator5.Name = "ToolStripSeparator5" - Me.ToolStripSeparator5.Size = New System.Drawing.Size(226, 6) - ' - 'LinkÖffnenMitEdgeToolStripMenuItem - ' - Me.LinkÖffnenMitEdgeToolStripMenuItem.Name = "LinkÖffnenMitEdgeToolStripMenuItem" - Me.LinkÖffnenMitEdgeToolStripMenuItem.Size = New System.Drawing.Size(229, 22) - Me.LinkÖffnenMitEdgeToolStripMenuItem.Text = "Link öffnen mit Edge" - ' - 'AnydeskToolStripMenuItem - ' - Me.AnydeskToolStripMenuItem.Name = "AnydeskToolStripMenuItem" - Me.AnydeskToolStripMenuItem.Size = New System.Drawing.Size(229, 22) - Me.AnydeskToolStripMenuItem.Text = "Anydesk" - ' - 'PuttyToolStripMenuItem - ' - Me.PuttyToolStripMenuItem.Name = "PuttyToolStripMenuItem" - Me.PuttyToolStripMenuItem.Size = New System.Drawing.Size(229, 22) - Me.PuttyToolStripMenuItem.Text = "Putty" - ' 'Main ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) @@ -1217,4 +1247,6 @@ Partial Class Main Friend WithEvents LinkÖffnenMitEdgeToolStripMenuItem As ToolStripMenuItem Friend WithEvents AnydeskToolStripMenuItem As ToolStripMenuItem Friend WithEvents PuttyToolStripMenuItem As ToolStripMenuItem + Friend WithEvents lblOfflinemodus As Label + Friend WithEvents btnSync As Button End Class diff --git a/Dokumentation/Main.vb b/Dokumentation/Main.vb index 6f7223f..98bf95d 100644 --- a/Dokumentation/Main.vb +++ b/Dokumentation/Main.vb @@ -50,6 +50,11 @@ Public Class Main SetAnsichtLautIni() Class1.EnableDoubleBuffered(DgVMain) + picAVISOMessenger.Visible = Not Class1.offline + btnBenutzerverwaltung.Enabled = Not Class1.offline + chkTSSitzungen.Checked = Not Class1.offline + lblOfflinemodus.Visible = Class1.offline + Me.KeyPreview = True If Class1.DebugMode = True Then @@ -190,6 +195,10 @@ Public Class Main LstStandort.Items.Add(dr.Item(0)) Class1.Standorte.Add(dr.Item(0)) End Select + If Class1.offline Then + LstStandort.Items.Add(dr.Item(0)) + Class1.Standorte.Add(dr.Item(0)) + End If Next Catch ex As Exception @@ -651,11 +660,17 @@ Public Class Main End Function Private Sub CmdTest_Click(sender As Object, e As EventArgs) Handles CmdTest.Click - + Dim sync As New cSQLSync + sync.Main() End Sub Private Sub CMdTest2_Click(sender As Object, e As EventArgs) Handles CMdTest2.Click - SMB.Show() + Dim sync As New cSQL + + sync.UpdateDatenbankStruktur() + + + End Sub Public Sub btnTest3_Click(sender As Object, e As EventArgs) Handles btnTest3.Click Dim ps = cExtProgramme.RunRemotePSScript("stor10", "veragost\administrator", "+d#XisdBbSt!", "C:\Tools\SMBOpenFiles.ps1", True) @@ -1241,6 +1256,7 @@ exit" End Sub Public Function CheckUpdate(starter As String) + If Class1.offline Then Exit Function dbload() Dim pascom As New cPascom lblNotruf.Text = "Notruf geht an: " & pascom.getredirect("555") @@ -1432,6 +1448,7 @@ exit" Exit Sub End If Try + If Class1.offline Then Exit Try If VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_ChatBenutzer And picAVISOMessenger.Visible Then Dim newMsg = VERAG_PROG_ALLGEMEIN.cMessenger.GET_NewMSG_COUNT() ' MsgBox(newMsg) @@ -1759,7 +1776,10 @@ exit" End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click + Me.Cursor = Cursors.WaitCursor + SMB.Show() + Me.Cursor = Cursors.Default End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click @@ -1787,6 +1807,19 @@ exit" cExtProgramme.startputty(host.IPAdresse, host.SSHPort) End Sub + Private Sub btnSync_Click(sender As Object, e As EventArgs) Handles btnSync.Click + Dim sync As New cSQL + Me.Cursor = Cursors.WaitCursor + + Try + sync.UpdateDatenbankStruktur() + Catch ex As Exception + MsgBox("Sync fehlgeschlagen! " & ex.Message) + End Try + Me.Cursor = Cursors.Default + + End Sub + Private Sub Main_Closed(sender As Object, e As EventArgs) Handles Me.Closed Class1.ini.prop_Kompansicht = ChkKompAnsicht.Checked diff --git a/Dokumentation/My Project/Resources.Designer.vb b/Dokumentation/My Project/Resources.Designer.vb index 7b62509..21c7b38 100644 --- a/Dokumentation/My Project/Resources.Designer.vb +++ b/Dokumentation/My Project/Resources.Designer.vb @@ -298,6 +298,16 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + ''' + Friend ReadOnly Property sign_sync_icon_34357() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("sign-sync-icon_34357", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + ''' ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. ''' @@ -309,7 +319,7 @@ Namespace My.Resources End Property ''' - ''' Sucht eine lokalisierte Zeichenfolge, die 0.0.1.98 ähnelt. + ''' Sucht eine lokalisierte Zeichenfolge, die 0.0.2.02 ähnelt. ''' Friend ReadOnly Property Version() As String Get diff --git a/Dokumentation/My Project/Resources.resx b/Dokumentation/My Project/Resources.resx index 9de6e1c..a5a8f5e 100644 --- a/Dokumentation/My Project/Resources.resx +++ b/Dokumentation/My Project/Resources.resx @@ -124,14 +124,20 @@ ..\Resources\Hakerl20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\msg.exe;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + DOKU ..\Resources\del.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Admin20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\pdf512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\mail20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + 0.0.2.02 ..\Resources\Link.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -139,35 +145,29 @@ ..\Resources\ico_putty_exe0001.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Admin.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\Netzwerk20.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\external-content.duckduckgo.com.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\iconfinder-contat-us-27phone-4211855_115040 (Benutzerdefiniert).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - 0.0.1.98 + + ..\Resources\iconfinder-contat-us-27phone-4211855_115040.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Admin20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\mstsc1.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\aviso_messenger.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - Dokumentation ..\Resources\Link.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\excel20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\iconfinder-contat-us-27phone-4211855_115040.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\aviso_messenger.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Print20x20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -181,19 +181,22 @@ ..\Resources\Print.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\pdf512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\excel20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\mail20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\msg.exe;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - DOKU + + ..\Resources\external-content.duckduckgo.com.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\Bearbeiten20.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\iconfinder-contat-us-27phone-4211855_115040 (Benutzerdefiniert).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Admin.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\sign-sync-icon_34357.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a \ No newline at end of file diff --git a/Dokumentation/Resources/sign-sync-icon_34357.ico b/Dokumentation/Resources/sign-sync-icon_34357.ico new file mode 100644 index 0000000000000000000000000000000000000000..c0ea8284bff6465428b467449d52c8703270c7fc GIT binary patch literal 4286 zcmds3UrbwN6#pg_J|Zn3*{jr+YIdMtv|wAGh1gm7xy9 zm=xFsajYWSk|o9|#fg+Mfl=`-0%JKXz`L4J3-WF=`K`%Lc-~GOG ze!p|RbG~yc#3ugRzFpwI=zLg+twIO~3onU%ELg|m;l2O*^NmvK>{c9avNQygogEO& zv4*{WBfcxjmWP<5>q*6k^y8z;)B&s$FYrz$kT9BbGMD2~al<2&E)Wt)xgrAsM2 z9Pl`jJs<3%;nPkU|FnwKCO5^J_v8rHum>IJ!sc7H{ii-$c}bK6jysw-u9cBb9<${% z`yk)p3v6Hu3}6-GhoXoFIG>%NnsSQxtg%X-wMN(i16aUZuMeDO??7!u-k1^J*jX2i z)>mqRxm`}+AJ&1z^;5GR{_bO?d;4n2|Fpx4ay&nN?9^)w^(N&zu0QNS$9yip0w%E6 z@_})Njb}c@^#nY`*mGhR-SizGHPlM;(?8MjQc@Gl)zAg%Z+u>>z45bE79W5K>_Yrq zO4)O$8>9aN&4+04quta~G$lStzb{>Z=)V>B~9>MFydei?7%Tcbv_@0 zC(Hcib6;ARrNP#tG&j+k!zs>b zpAoAu=H>ZGx_kW{j_vWB_-4O)n=*;0?g#RL`ZVK(Pdk^uW%ePU?06LY!>n&S>&4_0 zjh@?Y(UCS&?fWT{R5c&6%PG2b{(wan9N;qZ_j@a<&1Vl>BR_I6cIk+1jY}Wye*La) z6aS&r!VixA+6qez+-`6llo-Zw;g@S#r=XEKG&<>V~l;ltc$+Wd-88x*_X_E+B5W`6ZdBD= zp28h(+1@E>Gwwe^s8M6h$~`%P16*c)yz^c}>dEoW7l-)%r!>s;Z&3=??W2JYchl_# z7e%?2A(-FfZ%ki(HQ|mH;*T}EBX-X7;%IZ`$j2Y`?RkX#yKk{M_avp&?{#d%mx@o&%*dCTq~~(`Z#vdTGuK|D z<@BuS&baTZXWTpT@nfCOv(3VfyT?Avhud>{vGJTSN6hmhpHuAoUX6G9>d{< H- zy-A;QE9W6)>jV2S-FcY(xJXO!QOahLl;v;mQv7FaZTj-dxqQZ+!I;2aiy!-3hv>!D zJQ(qcm;-ByG1tQ_b+{kAvJpN2Lv5;hRpJ&ivTb#tT;$7dq)1!f0CPnM1^5&!A-cDXNmrl0 E0Bnv7E&u=k literal 0 HcmV?d00001 diff --git a/Dokumentation/SMB.vb b/Dokumentation/SMB.vb index 4ba0a39..f0f5cd7 100644 --- a/Dokumentation/SMB.vb +++ b/Dokumentation/SMB.vb @@ -2,6 +2,7 @@ Public Class SMB + Property fileserver As String = "pandorasbox.verag.ost.dmn" Dim ds As New DataSet Private Sub SMB_Load(sender As Object, e As EventArgs) Handles Me.Load Class1.EnableDoubleBuffered(dgv) @@ -12,7 +13,7 @@ Public Class SMB End Sub Function LoadSitzungen() - Dim ps = cExtProgramme.RunRemotePSScript("pandorasbox.verag.ost.dmn", "administrator@verag.ost.dmn", "+d#XisdBbSt!", "C:\Tools\SMBOpenFiles.ps1", True) + Dim ps = cExtProgramme.RunRemotePSScript(fileserver, "administrator@verag.ost.dmn", "+d#XisdBbSt!", "C:\Tools\SMBOpenFiles.ps1", True) cSMB.obj2DS(ps, ds, "SMB") End Function @@ -43,7 +44,7 @@ Public Class SMB Private Sub SitzungBeendenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SitzungBeendenToolStripMenuItem.Click Dim datei As String = dgv.CurrentRow.Cells("Datei").Value - Dim ps = cExtProgramme.RunRemotePSScript("stor10", "veragost\administrator", "+d#XisdBbSt!", "Get-SmbOpenFile | Where-Object {$_.ShareRelativePath -like '*" & datei & "*'} | close-SmbOpenFile -Force", False) + Dim ps = cExtProgramme.RunRemotePSScript(fileserver, "veragost\administrator", "+d#XisdBbSt!", "Get-SmbOpenFile | Where-Object {$_.ShareRelativePath -like '*" & datei & "*'} | close-SmbOpenFile -Force", False) End Sub diff --git a/Dokumentation/packages.config b/Dokumentation/packages.config index 38ef578..3eaeef2 100644 --- a/Dokumentation/packages.config +++ b/Dokumentation/packages.config @@ -4,6 +4,7 @@ + @@ -13,6 +14,11 @@ + + + + + \ No newline at end of file