From 3753cab8a64862dcc586764d0de27997ba435ece Mon Sep 17 00:00:00 2001 From: Digital Data - Marlon Schreiber Date: Wed, 6 May 2020 12:55:11 +0200 Subject: [PATCH] =?UTF-8?q?MS=20VErkn=C3=BCpfungen=20und=20Licenses?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ToolCollection/ClassNIEmail.vb | 16 +- ToolCollection/ClassNIProfil.vb | 4 +- ToolCollection/ClassNIVerknüpfung.vb | 5 +- ToolCollection/ModuleSettings.vb | 4 + ToolCollection/My Project/AssemblyInfo.vb | 2 +- ToolCollection/ToolCollection.vbproj | 4 +- ToolCollection/frmDIHauptseite.vb | 38 ++- ToolCollection/frmDIProfilEigenschaften.vb | 24 +- ToolCollection/frmLizenzmanager.vb | 66 ++--- ToolCollection/frmNIHauptseite.vb | 275 +++++++++++---------- ToolCollection/frmNIProfileigenschaften.vb | 41 +-- ToolCollection/frmNIVerknuepfungen.vb | 38 +-- ToolCollection/frmStart.vb | 140 ++++++----- 13 files changed, 372 insertions(+), 285 deletions(-) create mode 100644 ToolCollection/ModuleSettings.vb diff --git a/ToolCollection/ClassNIEmail.vb b/ToolCollection/ClassNIEmail.vb index 1acf13a..6cfe831 100644 --- a/ToolCollection/ClassNIEmail.vb +++ b/ToolCollection/ClassNIEmail.vb @@ -94,7 +94,7 @@ Public Class ClassNIEmail End Try '######### Dim empfaenger As String() - Dim EMAIL_EMP As String = "support@didalog.de" + Dim EMAIL_EMP As String = "support-flow@digitaldata.works" 'If EMAIL_EMP.Contains(";") Then empfaenger = EMAIL_EMP.Split(";") 'Else @@ -104,13 +104,13 @@ Public Class ClassNIEmail 'Für jeden Empfänger eine Neue Mail erzeugen For Each _mailempfaenger As String In empfaenger ' Neue Nachricht erzeugen: - Dim message As New MailMessage("alarm@didalog.de", _mailempfaenger, "Tool Collection - Critical Error - Domain: " & Environment.UserDomainName, _ - "" & vBody & "
>> Maschine: " & Environment.MachineName & _ - "
Kunde: " & frmStart._company & "
" & _ - "
Domain-Name: " & Environment.UserDomainName & "
" & _ - "
Gesendet am: " & My.Computer.Clock.LocalTime.ToShortDateString & "-" & _ + Dim message As New MailMessage("support-flow@digitaldata.works", _mailempfaenger, "Tool Collection - Urgent Error - Domain: " & Environment.UserDomainName, + "" & vBody & "
>> Machine: " & Environment.MachineName & + "
Kunde: " & frmStart._company & "
" & + "
Domain: " & Environment.UserDomainName & "
" & + "
Send-Time: " & My.Computer.Clock.LocalTime.ToShortDateString & "-" & My.Computer.Clock.LocalTime.ToLongTimeString & "
") - + With message @@ -121,7 +121,7 @@ Public Class ClassNIEmail 'Einen SMTP Client erzeugen und Anmeldungsinformationen hinterlegen Dim emailClient As New SmtpClient("mail.triplew.de") 'Email mit Authentifizierung - Dim SMTPUserInfo As New System.Net.NetworkCredential("alarm@didalog.de", "ddemail72") + Dim SMTPUserInfo As New System.Net.NetworkCredential("support-flow@digitaldata.works", "ddemail105") emailClient.UseDefaultCredentials = False emailClient.Credentials = SMTPUserInfo emailClient.Port = My.Settings.vemailPort diff --git a/ToolCollection/ClassNIProfil.vb b/ToolCollection/ClassNIProfil.vb index 8e5dc33..de16ebc 100644 --- a/ToolCollection/ClassNIProfil.vb +++ b/ToolCollection/ClassNIProfil.vb @@ -173,7 +173,7 @@ ''' ''' ''' - Public Function Save(ByVal msg As Boolean) + Public Function Save(ByVal msg As Boolean, item As String) Try ' wenn das Profil nicht gespeichert ist @@ -288,7 +288,7 @@ ' Profil auf gespeichert setzen Me._saved = True - If msg = True Then MsgBox("Das Profil '" & Me._originalProfilname & "' wurde erfolgreich gespeichert.", MsgBoxStyle.Information, "Profil gespeichert") + If msg = True And item = "profile" Then MsgBox("Das Profil '" & Me._originalProfilname & "' wurde erfolgreich gespeichert.", MsgBoxStyle.Information, "Profil gespeichert") Return True Else diff --git a/ToolCollection/ClassNIVerknüpfung.vb b/ToolCollection/ClassNIVerknüpfung.vb index 17e89aa..faba46b 100644 --- a/ToolCollection/ClassNIVerknüpfung.vb +++ b/ToolCollection/ClassNIVerknüpfung.vb @@ -45,7 +45,7 @@ End Function Public Function Save_DB_Link(ByVal profilname As String) ' wenn ein Profilname für dieses Profil gesetzt ist - If Me.SelectAnweisung.ToLower.StartsWith("select") Or (Me.SelectAnweisung.StartsWith("(") And Me.SelectAnweisung.EndsWith("])")) Or Me.Spalte.StartsWith("%") And Me.Spalte.EndsWith("%") Then + If Me.SelectAnweisung.ToLower.Contains("select") Then 'If Me.SelectAnweisung IsNot Nothing And Me.SelectAnweisung.StartsWith("SELECT [%spalte] FROM [%view] WHERE ") And Me.SelectAnweisung.Length > "SELECT [%spalte] FROM [%view] WHERE ".Length Then Dim xml As New Xml.XmlDocument() Dim xmlProfil As Xml.XmlElement @@ -71,7 +71,8 @@ Return True End If Else - Return True + MsgBox("Command must at least contain a 'select' to verify and store!", MsgBoxStyle.Exclamation, "No Saving possible!") + Return False 'If Me.SelectAnweisung.Contains("=") = False Or Me.SelectAnweisung.Contains("where") = False Then ' MsgBox("Die Verknüpfung konnte nicht gespeichert werden weil weder ein '=' oder 'where' vorhanden sind. Bitte überprüfen Sie die Verknüpfung " & Me.Index & " <-> " & Me.Spalte & " (in " & Me.From & ").", MsgBoxStyle.Information, "Verknüpfung konnte nicht gespeichert werden") 'Else diff --git a/ToolCollection/ModuleSettings.vb b/ToolCollection/ModuleSettings.vb new file mode 100644 index 0000000..9d0330d --- /dev/null +++ b/ToolCollection/ModuleSettings.vb @@ -0,0 +1,4 @@ +Module ModuleSettings + Public LICENSE_MoveRename As Boolean + Public LICENSE_AD As Boolean +End Module diff --git a/ToolCollection/My Project/AssemblyInfo.vb b/ToolCollection/My Project/AssemblyInfo.vb index 4dafa8c..439f696 100644 --- a/ToolCollection/My Project/AssemblyInfo.vb +++ b/ToolCollection/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - + diff --git a/ToolCollection/ToolCollection.vbproj b/ToolCollection/ToolCollection.vbproj index decec8d..060e817 100644 --- a/ToolCollection/ToolCollection.vbproj +++ b/ToolCollection/ToolCollection.vbproj @@ -95,7 +95,8 @@ ..\..\DDMonorepo\Modules.Filesystem\bin\Debug\DigitalData.Modules.Filesystem.dll - + + False ..\..\DDMonorepo\Modules.Logging\bin\Debug\DigitalData.Modules.Logging.dll @@ -406,6 +407,7 @@ + diff --git a/ToolCollection/frmDIHauptseite.vb b/ToolCollection/frmDIHauptseite.vb index 9d035ba..34748ca 100644 --- a/ToolCollection/frmDIHauptseite.vb +++ b/ToolCollection/frmDIHauptseite.vb @@ -27,8 +27,6 @@ Public Class frmDIHauptseite Return _Instance End Function - - Public Sub New() Try ' Dieser Aufruf ist für den Designer erforderlich. @@ -432,10 +430,17 @@ Public Class frmDIHauptseite Else Me.ImportFileList = My.Computer.FileSystem.GetFiles(Me.selectedProfile.OriginalQuellordner, FileIO.SearchOption.SearchTopLevelOnly, "*.*") End If - Me.TBTC_DI_REGEX_MATCHTableAdapter.Connection.ConnectionString = My.Settings.DDECMConString - Me.TBTC_DI_REGEX_MATCHTableAdapter.Fill(Me.MyDataset.TBTC_DI_REGEX_MATCH, Me.selectedProfile.OriginalProfilname) + Dim oError As Boolean = False + Try + Me.TBTC_DI_REGEX_MATCHTableAdapter.Connection.ConnectionString = My.Settings.DDECMConString + Me.TBTC_DI_REGEX_MATCHTableAdapter.Fill(Me.MyDataset.TBTC_DI_REGEX_MATCH, Me.selectedProfile.OriginalProfilname) + Catch ex As Exception + ClassLoggerDI.Add("Error while connecting via My.Settings.DDECMConString: " + ex.Message) + oError = True + End Try - If Me.ImportFileList IsNot Nothing Then + + If Me.ImportFileList IsNot Nothing And oError = False Then Me.CountFilesImported = 0 If Durchlauf = True Then Me.CountFiles2Import = Gesamtfiles @@ -669,7 +674,19 @@ Public Class frmDIHauptseite If My.Settings.vLogErrorsonly = False Then ClassLoggerDI.Add(" >> Stream war erfolgreich", False) If Me.selectedProfile.DateiLöschen Then If My.Settings.vLogErrorsonly = False Then ClassLoggerDI.Add(" - Datei soll gelöscht werden: " & bgwQuelldatei, False) - My.Computer.FileSystem.DeleteFile(Me.bgwQuelldatei) + Try + My.Computer.FileSystem.DeleteFile(Me.bgwQuelldatei) + Catch ex As Exception + Try + Dim opath = Path.GetDirectoryName(Me.bgwQuelldatei) & "\Delete_Error" + Dim oFilename = Path.GetFileName(Me.bgwQuelldatei) + File.Move(Me.bgwQuelldatei, opath & "\" & oFilename) + Catch ex1 As Exception + ClassLoggerDI.Add("## Unbehandelter Fehler FileMove after NoDelete : " & ex.Message, False) + End Try + + End Try + If My.Settings.vLogErrorsonly = False Then ClassLoggerDI.Add(" - Datei wurde gelöscht", False) End If @@ -2069,6 +2086,15 @@ Public Class frmDIHauptseite wert = wert.ToString.Replace(".", ",") temp_arr.Add(CDbl(wert)) Next + Case 4100 + If My.Settings.vLogErrorsonly = False Then ClassLoggerDI.Add("- VektorIndex vom Typ 4100 (Boolean)", False) + If count_Values = 1 Then + temp_arr.Add(CBool(werte)) + Else + For Each wert As Object In werte + temp_arr.Add(CBool(wert)) + Next + End If Case 4101 If My.Settings.vLogErrorsonly = False Then ClassLoggerDI.Add("- VektorIndex vom Typ 4101 Date", False) For Each wert As Object In werte diff --git a/ToolCollection/frmDIProfilEigenschaften.vb b/ToolCollection/frmDIProfilEigenschaften.vb index 4480973..5240185 100644 --- a/ToolCollection/frmDIProfilEigenschaften.vb +++ b/ToolCollection/frmDIProfilEigenschaften.vb @@ -256,17 +256,23 @@ Public Class frmDIProfilEigenschaften End Sub Private Sub btnHinzufügen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHinzufügen.Click + Try + For Each license As ClassLicense In Me.licenseManager.Licenses.Licenses() + Select Case license.Modulename.ToUpper + Case "DATEIIMPORT" + If Prof_Anzahl + 1 > license.Anz_Profile Then + MsgBox("Die Maximalanzahl der lizensierten Dateiimport-Profile (" & license.Anz_Profile.ToString & ") ist erreicht!", MsgBoxStyle.Exclamation, "Achtung - Lizenzfehler:") + Exit Sub + End If + End Select - For Each license As ClassLicense In Me.licenseManager.Licenses.Licenses() - Select Case license.Modulename.ToUpper - Case "DATEIIMPORT" - If Prof_Anzahl + 1 > license.Anz_Profile Then - MsgBox("Die Maximalanzahl der lizensierten Dateiimport-Profile (" & license.Anz_Profile.ToString & ") ist erreicht!", MsgBoxStyle.Exclamation, "Achtung - Lizenzfehler:") - Exit Sub - End If - End Select + Next + Catch ex As Exception + If My.Settings.licensekey <> "DD MaxLicense" Then + MsgBox("Error Adding Profile due to license issue!", MsgBoxStyle.Critical) + End If + End Try - Next ' das Formular zum Erstellen eines neuen Profil öffnen frmLogin_DI.ShowDialog() 'frmDIProfilHinzufuegen.ShowDialog() diff --git a/ToolCollection/frmLizenzmanager.vb b/ToolCollection/frmLizenzmanager.vb index 60b3422..6a318f1 100644 --- a/ToolCollection/frmLizenzmanager.vb +++ b/ToolCollection/frmLizenzmanager.vb @@ -18,36 +18,44 @@ Public Class frmLizenzmanager Me.lvLicense.Items.Clear() If Not Me.txtKey.Text = "" Then - Me.licenseManager.licenseString = Me.licenseManager.DecodeLicenseKey(Me.txtKey.Text) - Me.licenseManager.licenseStringArray = Me.licenseManager.SplitLicenseString(Me.licenseManager.licenseString) - Me.licenseManager.LoadLicenses() - - Dim i As Integer = 0 - - If Me.licenseManager.Licenses.Licenses IsNot Nothing Then - Me.txtCompany.Text = Me.licenseManager.Licenses.Company - Me.txtmachine.Text = Me.licenseManager.Licenses.machine - Me.lvLicense.Items.Clear() - For Each license As ClassLicense In Me.licenseManager.Licenses.Licenses() - Dim expires As String = license.Expires.Date - Dim type As String = license.Type - Dim anzProf As String = license.Anz_Profile - If anzProf = 99 Then - anzProf = "Unlimited" - End If - - 'Date.TryParse(expires, license.Expires) - If Not expires = "" Then - Me.lvLicense.Items.Add(license.Modulename) - ' MsgBox(license.Modulename) - Dim test = Me.lvLicense.Items.Item(i) - Me.lvLicense.Items(i).SubItems.Add(expires) - lvLicense.Items(i).SubItems.Add(type) - lvLicense.Items(i).SubItems.Add(anzProf) - i += 1 - End If - Next + If Me.txtKey.Text = "DD MaxLicense" Then + Me.txtCompany.Text = "Digital Data" + Me.txtmachine.Text = "None" + Else + Me.licenseManager.licenseString = Me.licenseManager.DecodeLicenseKey(Me.txtKey.Text) + Me.licenseManager.licenseStringArray = Me.licenseManager.SplitLicenseString(Me.licenseManager.licenseString) + Me.licenseManager.LoadLicenses() + + Dim i As Integer = 0 + + If Me.licenseManager.Licenses.Licenses IsNot Nothing Then + Me.txtCompany.Text = Me.licenseManager.Licenses.Company + Me.txtmachine.Text = Me.licenseManager.Licenses.machine + Me.lvLicense.Items.Clear() + For Each license As ClassLicense In Me.licenseManager.Licenses.Licenses() + Dim expires As String = license.Expires.Date + Dim type As String = license.Type + Dim anzProf As String = license.Anz_Profile + If anzProf = 99 Then + anzProf = "Unlimited" + End If + + 'Date.TryParse(expires, license.Expires) + If Not expires = "" Then + Me.lvLicense.Items.Add(license.Modulename) + ' MsgBox(license.Modulename) + Dim test = Me.lvLicense.Items.Item(i) + Me.lvLicense.Items(i).SubItems.Add(expires) + lvLicense.Items(i).SubItems.Add(type) + lvLicense.Items(i).SubItems.Add(anzProf) + i += 1 + End If + Next + End If End If + + + End If End Sub diff --git a/ToolCollection/frmNIHauptseite.vb b/ToolCollection/frmNIHauptseite.vb index 63936ab..d38c188 100644 --- a/ToolCollection/frmNIHauptseite.vb +++ b/ToolCollection/frmNIHauptseite.vb @@ -33,7 +33,6 @@ Public Class frmNIHauptseite Private oNiArrayIndexe() As String = Nothing ' zum Speichern der Indexe Private oNiArrayValues() As String = Nothing ' zum Speichern der Werte Public _MRDokumentart, _MRKundenKennzeichen, _MRDeskrIndex As String - Private _MRlicense As Boolean = False Public Shared _MRKONVERT_FEHLER As Integer = 0 Private windreamSucheErgebnisse As WMObjects @@ -120,7 +119,7 @@ Public Class frmNIHauptseite End Sub Private Sub frmNIHauptseite_Load(sender As Object, e As System.EventArgs) Handles Me.Load Try - LoadAllModules() + 'LoadAllModules() TBTC_MOVE_RENAMETableAdapter.Connection.ConnectionString = My.Settings.DDECMConString Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler bei frmNIHauptseite_Load") @@ -151,43 +150,44 @@ Public Class frmNIHauptseite ' Return Nothing ' End Select 'End Function - Public Sub LoadAllModules() - Me._validModules = Nothing - - If Not My.Settings.licensekey = "" Then - 'Me.licenseManager = New ClassLicenseManager = Nothing - Me.licenseManager = New ClassLicenseManager("#DigitalData9731258!#", My.Settings.licensekey) - - Me.licenseManager.licenseString = Me.licenseManager.DecodeLicenseKey(My.Settings.licensekey) - Me.licenseManager.licenseStringArray = Me.licenseManager.SplitLicenseString(Me.licenseManager.licenseString) - Me.licenseManager.LoadLicenses() - - Dim i As Integer = 0 - - If Me.licenseManager.Licenses.Licenses IsNot Nothing Then - For Each license As ClassLicense In Me.licenseManager.Licenses.Licenses() - Dim expires As String = license.Expires.Date - If IsExpired(license.Expires.Date) = False Then - ' MsgBox(license.Modulename & vbNewLine & expires) - - Select Case license.Modulename.ToUpper - Case "MOVEANDRENAME" - _MRlicense = True - End Select - i += 1 - Else - Select Case license.Modulename - Case "MOVEANDRENAME" - _MRlicense = False - End Select - i += 1 - End If - 'Date.TryParse(expires, license.Expires) - - Next - End If - End If - End Sub + 'Public Sub LoadAllModules() + ' Me._validModules = Nothing + + ' If Not My.Settings.licensekey = "" Then + ' 'Me.licenseManager = New ClassLicenseManager = Nothing + ' Me.licenseManager = New ClassLicenseManager("#DigitalData9731258!#", My.Settings.licensekey) + + ' Me.licenseManager.licenseString = Me.licenseManager.DecodeLicenseKey(My.Settings.licensekey) + ' Me.licenseManager.licenseStringArray = Me.licenseManager.SplitLicenseString(Me.licenseManager.licenseString) + ' Me.licenseManager.LoadLicenses() + + ' Dim i As Integer = 0 + + ' If Me.licenseManager.Licenses.Licenses IsNot Nothing Then + ' For Each license As ClassLicense In Me.licenseManager.Licenses.Licenses() + ' Dim expires As String = license.Expires.Date + ' If IsExpired(license.Expires.Date) = False Then + ' ' MsgBox(license.Modulename & vbNewLine & expires) + + ' Select Case license.Modulename.ToUpper + ' Case "MOVEANDRENAME" + ' LICENSE_MoveRename = True + ' _Logger.Info("LICENSE MoveandRename aktiv") + ' End Select + ' i += 1 + ' Else + ' Select Case license.Modulename + ' Case "MOVEANDRENAME" + ' LICENSE_MoveRename = False + ' End Select + ' i += 1 + ' End If + ' 'Date.TryParse(expires, license.Expires) + + ' Next + ' End If + ' End If + 'End Sub Private Function IsExpired(ByVal _Date As Date) If Date.Today > _Date Then Return True @@ -318,7 +318,7 @@ Public Class frmNIHauptseite bwProfil.ReportProgress(-3) ' Ausgabe an Logdatei über nächstes Profil - + _Logger.Debug("########################################################") _Logger.Debug("Starte Durchlauf für Profil: " & profil.Profilname & " - " & Now) ' Überprüfen ob Profil aktiv oder inaktiv @@ -360,9 +360,9 @@ Public Class frmNIHauptseite If minutes >= 2 Then Select Case minutes Case 3 - _Logger.Warn("Die Ausführung der Suche dauerte zu lange MinutesSinceRunWD-Search: " & minutes.ToString) + _Logger.Warn($"Die Ausführung der Suche [{Me.aktivesProfil.WindreamSuche}] dauerte zu lange - MinutesSinceRunWD-Search: " & minutes.ToString) _Logger.Warn("Die Nachindexierung wird abgebrochen und läuft wieder im Intervall an!") - ClassNIEmail.Send_Urgent("Achtung - die Ausführung der Suche: " & Me.aktivesProfil.WindreamSuche & " dauerte viel zu lange!

Prüfen Sie schnellst möglich die Client-Konfiguration") + 'ClassNIEmail.Send_Urgent("Achtung - die Ausführung der Suche: " & Me.aktivesProfil.WindreamSuche & " dauerte viel zu lange!

Prüfen Sie schnellst möglich die Client-Konfiguration") Abbruch_NI("Abbruch nach Timeout Suche", False, True) CURRENT_STATE = "Abbruch Timeout" Exit Sub @@ -405,7 +405,7 @@ Public Class frmNIHauptseite Else _Logger.Debug("NachbearbeitungAD inaktiv") End If - _Logger.Debug($"...Row 397...") + If _Fehler = False Then 'profil() ' nun Profilabhängige Parameter laden @@ -833,97 +833,105 @@ Public Class frmNIHauptseite If IsNothing(Me.aktivesProfil.Verknüpfungen.Links) = False And oUnexpectedError = False And unvollstaendig = False And Me.aktivesProfil.Ni_Art.ToLower <> "fulltext" Then ' alle Verknüpfungen/Links des aktuellen Suchergebnisses durchlaufen + Dim ocounter As Integer = 0 For Each INDEX_SQL_BEFEHL As ClassNIVerknüpfung In Me.aktivesProfil.Verknüpfungen.Links - + ocounter += 1 + _Logger.Debug($"### For each Verknüpfung [{ocounter}]...###") 'Regulären Ausdruck zum Auslesen der windream-Indexe definieren Dim preg As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}" ' SQL-String für aktuelle Verknüpfung laden Dim oSqlCommand As String = INDEX_SQL_BEFEHL.SelectAnweisung - 'Ersetzen des Dateinamens - für CURSOR NachindexierungPr - If oSqlCommand.Contains("[DATEINAME]") Then - oSqlCommand = oSqlCommand.Replace("[DATEINAME]", dokument.aName) - End If - If oSqlCommand.Contains("[FULLNAME]") Then - oSqlCommand = oSqlCommand.Replace("[FULLNAME]", My.Settings.MRWD_Laufwerk & ":" & dokument.aPath) - End If + If Len(oSqlCommand) > 0 Then + 'Ersetzen des Dateinamens - für CURSOR NachindexierungPr + If oSqlCommand.Contains("[DATEINAME]") Then + oSqlCommand = oSqlCommand.Replace("[DATEINAME]", dokument.aName) + End If + If oSqlCommand.Contains("[FULLNAME]") Then + oSqlCommand = oSqlCommand.Replace("[FULLNAME]", My.Settings.MRWD_Laufwerk & ":" & dokument.aPath) + End If - If oSqlCommand.Contains("[%DOCFilename]") Then - oSqlCommand = oSqlCommand.Replace("[%DOCFilename]", dokument.aName) - End If - If oSqlCommand.Contains("[%DOCFilenameoE]") Then - Dim Filename As String = aktivesDokument.aName.ToString.Substring(0, aktivesDokument.aName.LastIndexOf(".")) - oSqlCommand = oSqlCommand.Replace("[%DOCFilenameoE]", Path.GetFileNameWithoutExtension(Filename)) - End If + If oSqlCommand.Contains("[%DOCFilename]") Then + oSqlCommand = oSqlCommand.Replace("[%DOCFilename]", dokument.aName) + End If + If oSqlCommand.Contains("[%DOCFilenameoE]") Then + Dim Filename As String = aktivesDokument.aName.ToString.Substring(0, aktivesDokument.aName.LastIndexOf(".")) + oSqlCommand = oSqlCommand.Replace("[%DOCFilenameoE]", Path.GetFileNameWithoutExtension(Filename)) + End If - If oSqlCommand.Contains("[%DOCPath]") Then - oSqlCommand = oSqlCommand.Replace("[FULLNAME]", Path.GetDirectoryName(My.Settings.vWLaufwerk & ":" & dokument.aPath)) - End If - If oSqlCommand.Contains("[%DATENow]") Then - oSqlCommand = oSqlCommand.Replace("[%DATENow]", Now.ToShortDateString) - End If - If oSqlCommand.Contains("[%DOCFULLPATH]") Then - oSqlCommand = oSqlCommand.Replace("[%DOCFULLPATH]", My.Settings.MRWD_Laufwerk & ":" & dokument.aPath) - End If + If oSqlCommand.Contains("[%DOCPath]") Then + oSqlCommand = oSqlCommand.Replace("[FULLNAME]", Path.GetDirectoryName(My.Settings.vWLaufwerk & ":" & dokument.aPath)) + End If + If oSqlCommand.Contains("[%DATENow]") Then + oSqlCommand = oSqlCommand.Replace("[%DATENow]", Now.ToShortDateString) + End If + If oSqlCommand.Contains("[%DOCFULLPATH]") Then + oSqlCommand = oSqlCommand.Replace("[%DOCFULLPATH]", My.Settings.MRWD_Laufwerk & ":" & dokument.aPath) + End If + _Logger.Debug($"oSqlCommand after Replace 1([{oSqlCommand}])") + ' einen Regulären Ausdruck laden + Dim regulärerAusdruck As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex(preg) + ' die Vorkommen im SQL-String auslesen + Dim elemente As System.Text.RegularExpressions.MatchCollection = regulärerAusdruck.Matches(oSqlCommand) + + ' alle Vorkommen der windream-Indexe im SQL-String durchlaufen + For Each element As System.Text.RegularExpressions.Match In elemente + ' wenn es sich nicht um die Spalten- oder Viewangabe handelt (es sollen ja nur die Indexe ausgelesen werden) + If Not element.Value.ToUpper = "[%SPALTE]" And Not element.Value.ToUpper = "[%VIEW]" Then + + ' die Zeichen [% und ] entfernen (liefert den wirklichen windream-Index) + Dim idxName_ohneSonderzeichen As String = element.Value.Substring(2, element.Value.Length - 3) + _Logger.Debug("### Working on Index(" & idxName_ohneSonderzeichen & ")...###") + Try + ' den Wert des deskriptiven Indexes für das aktuelle Dokument auslesen + IndexwertAusWindream = dokument.GetVariableValue(idxName_ohneSonderzeichen) + If element.ToString = aktivesProfil.Desk_windreamIndex Then + eindeutigerWertausWindream = IndexwertAusWindream + End If + Catch ex As Exception + _Logger.Error(ex) - ' einen Regulären Ausdruck laden - Dim regulärerAusdruck As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex(preg) - ' die Vorkommen im SQL-String auslesen - Dim elemente As System.Text.RegularExpressions.MatchCollection = regulärerAusdruck.Matches(oSqlCommand) - - ' alle Vorkommen der windream-Indexe im SQL-String durchlaufen - For Each element As System.Text.RegularExpressions.Match In elemente - ' wenn es sich nicht um die Spalten- oder Viewangabe handelt (es sollen ja nur die Indexe ausgelesen werden) - If Not element.Value.ToUpper = "[%SPALTE]" And Not element.Value.ToUpper = "[%VIEW]" Then - ' die Zeichen [% und ] entfernen (liefert den wirklichen windream-Index) - Dim idxName_ohneSonderzeichen As String = element.Value.Substring(2, element.Value.Length - 3) - Try - ' den Wert des deskriptiven Indexes für das aktuelle Dokument auslesen - IndexwertAusWindream = dokument.GetVariableValue(idxName_ohneSonderzeichen) - If element.ToString = aktivesProfil.Desk_windreamIndex Then - eindeutigerWertausWindream = IndexwertAusWindream - End If - Catch ex As Exception - _Logger.Error(ex) - - ' wenn ein Fehler aufgetreten ist, muss das Flag gesetzt werden - result &= vbNewLine & " - Schwerwiegender Fehler bei Auslesen des einschränkenden Wertes aus Index':" & idxName_ohneSonderzeichen & "'" - oUnexpectedError = True - fehlermsg &= vbNewLine & "Schwerwiegender Fehler bei Auslesen des einschränkenden Wertes aus Index':" & idxName_ohneSonderzeichen & "' - Fehler: " & ex.Message - If My.Settings.vNIMailsenden = True Then - email.Send_EMail("Beim Indexieren der Datei " & dokument.aName.ToString & " ist ein Fehler aufgetreten (GetVariableValue bei Auslesen des einschränkenden Wertes): " & ex.Message) - End If - End Try + ' wenn ein Fehler aufgetreten ist, muss das Flag gesetzt werden + result &= vbNewLine & " - Schwerwiegender Fehler bei Auslesen des einschränkenden Wertes aus Index':" & idxName_ohneSonderzeichen & "'" + oUnexpectedError = True + fehlermsg &= vbNewLine & "Schwerwiegender Fehler bei Auslesen des einschränkenden Wertes aus Index':" & idxName_ohneSonderzeichen & "' - Fehler: " & ex.Message + If My.Settings.vNIMailsenden = True Then + email.Send_EMail("Beim Indexieren der Datei " & dokument.aName.ToString & " ist ein Fehler aufgetreten (GetVariableValue bei Auslesen des einschränkenden Wertes): " & ex.Message) + End If + End Try - ' wenn beim Auslesen des Wertes für den aktuellen windream-Index kein Fehler auftrat - ' und die Abfrage ein Ergebnis zurück gab - If IndexwertAusWindream Is Nothing And Not oUnexpectedError Then - ' IndexwertAusWindream ist Nothing (idxName_ohneSonderzeichen) - _Logger.Warn("ACHTUNG: der einschränkende Wert aus Windream für Index '" & idxName_ohneSonderzeichen & "' ist EMPTY oder NOTHING") - _Logger.Warn("SQL-String bisher: " & oSqlCommand) - ' wenn die Abfrage in windream kein Ergebnis gab, muss das error_in_Indexierungflag gesetzt werden - oUnexpectedError = True - Else - ' den Platzhalter im SQL-String durch den Wert ersetzen - oSqlCommand = oSqlCommand.Replace(element.Value, IndexwertAusWindream.ToString) - _Logger.Debug("SqlString.Replace(" & element.Value & ", " & IndexwertAusWindream.ToString) + ' wenn beim Auslesen des Wertes für den aktuellen windream-Index kein Fehler auftrat + ' und die Abfrage ein Ergebnis zurück gab + If IndexwertAusWindream Is Nothing And Not oUnexpectedError Then + ' IndexwertAusWindream ist Nothing (idxName_ohneSonderzeichen) + _Logger.Warn("ACHTUNG: der einschränkende Wert aus Windream für Index '" & idxName_ohneSonderzeichen & "' ist EMPTY oder NOTHING") + _Logger.Warn("SQL-String bisher: " & oSqlCommand) + ' wenn die Abfrage in windream kein Ergebnis gab, muss das error_in_Indexierungflag gesetzt werden + oUnexpectedError = True + Else + ' den Platzhalter im SQL-String durch den Wert ersetzen + oSqlCommand = oSqlCommand.Replace(element.Value, IndexwertAusWindream.ToString) - End If + End If - Else ' wenn es sich um den Platzhalter für die Spalte bzw. den View handelt - ' wenn es sich um den Platzhalter für die Spalte handelt - If element.Value.ToUpper = "[%SPALTE]" Then - ' den Platzhalter für die auszulesende Spalte durch den Spaltennamen ersetzen - oSqlCommand = oSqlCommand.Replace(element.Value, INDEX_SQL_BEFEHL.Spalte) + Else ' wenn es sich um den Platzhalter für die Spalte bzw. den View handelt + ' wenn es sich um den Platzhalter für die Spalte handelt + If element.Value.ToUpper = "[%SPALTE]" Then + ' den Platzhalter für die auszulesende Spalte durch den Spaltennamen ersetzen + oSqlCommand = oSqlCommand.Replace(element.Value, INDEX_SQL_BEFEHL.Spalte) - ElseIf element.Value.ToUpper = "[%VIEW]" Then - ' den Platzhalter für den auszulesenden View durch den Viewnamen ersetzen - oSqlCommand = oSqlCommand.Replace(element.Value, INDEX_SQL_BEFEHL.From) - End If + ElseIf element.Value.ToUpper = "[%VIEW]" Then + ' den Platzhalter für den auszulesenden View durch den Viewnamen ersetzen + oSqlCommand = oSqlCommand.Replace(element.Value, INDEX_SQL_BEFEHL.From) + End If - End If + End If - Next ' zum nächsten Wert in der SQL-Anweisung gehen - result &= vbNewLine & " " & oSqlCommand + Next ' zum nächsten Wert in der SQL-Anweisung gehen + result &= vbNewLine & " " & oSqlCommand + _Logger.Debug($"oSqlCommand after Replace 2([{oSqlCommand}])") + Else + _Logger.Debug("### oSqlCommand is empty!! ###") + End If ' wenn kein error_in_Indexierung aufgetreten ist If oUnexpectedError = False Then @@ -942,7 +950,7 @@ Public Class frmNIHauptseite If IndexwertAusWindream Is Nothing = False Then 'Es wird gegen ein Vektorfeld nachindexiert If IndexwertAusWindream.GetType.ToString.Contains("System.Object") Then - _Logger.Debug("INDEXIERUNG GEGEN EIN VEKTORFELD") + _Logger.Debug("...INDEXIERUNG GEGEN EIN VEKTORFELD") 'Zuweisen der Indexwerte des Vektorfeldes zu Array Arr = IndexwertAusWindream For Each str As Object In Arr @@ -967,10 +975,13 @@ Public Class frmNIHauptseite i += 1 Next Else - ReDim Preserve selectArray(0) - 'MsgBox("Nur ein Einfachindex :(" & vbNewLine & IndexwertAusWindream.ToString) - selectArray(0) = oSqlCommand - _Logger.Debug("Indexierung gegen einen Einfachindex") + _Logger.Debug("...Indexierung gegen einen Einfachindex") + If Len(oSqlCommand) > 0 Then + ReDim Preserve selectArray(0) + 'MsgBox("Nur ein Einfachindex :(" & vbNewLine & IndexwertAusWindream.ToString) + selectArray(0) = oSqlCommand + End If + End If Else ReDim Preserve selectArray(0) @@ -981,11 +992,11 @@ Public Class frmNIHauptseite 'Nur wenn KEIN INDEXWERT also KEIN MANUELLER WERT - If oResultNachindexierung Is Nothing Then + If oResultNachindexierung Is Nothing And selectArray.Length > 0 Then 'Indexwert über DB oder Datei Select Case aktivesProfil.Ni_Art.ToLower Case "db" - _Logger.Debug("SQL-Abfragen durchlaufen!") + _Logger.Debug("SQL-Abfrage/n durchlaufen...") Dim i As Integer Dim Quelle_is_vektor = False If selectArray.Length > 1 Then @@ -998,6 +1009,7 @@ Public Class frmNIHauptseite If Me.aktivesProfil.DbArt = "Oracle" Then oResultNachindexierung = database.GetValueFromOracleDb(aktivesProfil.Profilname, selectArray(i), Me.aktivesProfil.DataSource, aktivesProfil.InitialCatalog, aktivesProfil.UserId, aktivesProfil.Password, MyDataset, INDEX_SQL_BEFEHL.Index, Quelle_is_vektor) ElseIf Me.aktivesProfil.DbArt = "MS-SQL" Then + _Logger.Debug($"Executing MSSQL ...") oResultNachindexierung = database.GetValueFromMssqlDb(dokument.aName, aktivesProfil.Profilname, selectArray(i), Me.aktivesProfil.DataSource, aktivesProfil.UserId, aktivesProfil.Password, MyDataset, aktivesProfil.InitialCatalog, INDEX_SQL_BEFEHL.Index, Quelle_is_vektor) ElseIf Me.aktivesProfil.DbArt = "ODBC" Then oResultNachindexierung = database.GetValueFromOdbcDb(aktivesProfil.Profilname, selectArray(i), Me.aktivesProfil.DataSource, aktivesProfil.UserId, aktivesProfil.Password, INDEX_SQL_BEFEHL.Index) @@ -1145,6 +1157,10 @@ Public Class frmNIHauptseite '###### 'nur wenn kein Fehler If Not oUnexpectedError Then + If oResultNachindexierung Is Nothing Then + _Logger.Debug("oResultNachindexierung is nothing...Continue next") + Continue For + End If Try If Not IsNothing(oResultNachindexierung) Then _Logger.Debug("oResultNachindexierung is not nothing...") @@ -1527,7 +1543,7 @@ Public Class frmNIHauptseite If msgindex <> "" Then _Logger.Info(($"SWResult: {msgindex}")) 'Move and Rename ausführen - If _MRlicense = True And Not oUnexpectedError And unvollstaendig = False Then + If LICENSE_MoveRename = True And Not oUnexpectedError And unvollstaendig = False Then Dim swMoveandrename As New ClassStopwatch("MoveandRename - Complete") oUnexpectedError = FNMoveRename(dokument) @@ -1557,8 +1573,9 @@ Public Class frmNIHauptseite If msg1 <> "" Then _Logger.Info($"SWResult: {msg1}") ' MsgBox("Dokument wird in Ordnerbaum verschoben und umbenannt!" & vbNewLine & Me.aktivesProfil.MR_DAIndex & vbNewLine & Me.aktivesProfil.MR_KDIndex & vbNewLine & Me.aktivesProfil.Desk_windreamIndex, MsgBoxStyle.Information, dokument.aPath) Else - If _MRlicense = True And oUnexpectedError = True Or unvollstaendig = True Then + If LICENSE_MoveRename = True And oUnexpectedError = True Or unvollstaendig = True Then _Logger.Info("MoveRename Yes but error_in_Indexierung = True Or unvollstaendig = True") + _Logger.Debug("MoveRename Yes but error_in_Indexierung = True Or unvollstaendig = True") End If 'Dim Err As Boolean = MRGetValuesFromFile(My.Settings.MRWD_Laufwerk & ":" & dokument.aPath, Me.aktivesProfil.MR_DAIndex, Me.aktivesProfil.MR_KDIndex, Me.aktivesProfil.Desk_windreamIndex) diff --git a/ToolCollection/frmNIProfileigenschaften.vb b/ToolCollection/frmNIProfileigenschaften.vb index 5e3ca54..f96692d 100644 --- a/ToolCollection/frmNIProfileigenschaften.vb +++ b/ToolCollection/frmNIProfileigenschaften.vb @@ -137,7 +137,7 @@ Public Class frmNIProfileigenschaften If result = MsgBoxResult.Yes Then ' wenn die Daten gespeichert werden sollen ' die Änderungen speichern - If Me._selectedProfile.Save(True) = True Then ' wenn das Speichern erfolgreich war + If Me._selectedProfile.Save(True, "profile") = True Then ' wenn das Speichern erfolgreich war ' die Profile neu in die Combobox der Toolbar laden (für den Fall das Profilname geändert wurde) Me.LoadProfilesInCombobox() @@ -511,7 +511,7 @@ Public Class frmNIProfileigenschaften If Me._selectedProfile IsNot Nothing Then Me.cmbIndexValidierung.SelectedIndex = -1 If _selectedProfile.HasChanges Then - _selectedProfile.Save(True) + _selectedProfile.Save(True, "profile") Me.lblSave.Visible = True Else Me.lblSave.Visible = False @@ -532,16 +532,23 @@ Public Class frmNIProfileigenschaften End Sub Private Sub btnHinzufügen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHinzufügen.Click - For Each license As ClassLicense In Me.licenseManager.Licenses.Licenses() - Select Case license.Modulename.ToUpper - Case "NACHINDEXIERUNG" - If Prof_Anzahl + 1 > license.Anz_Profile Then - MsgBox("Die Maximalanzahl der lizensierten Nachindexierungs-Profile (" & license.Anz_Profile.ToString & ") ist erreicht!", MsgBoxStyle.Exclamation, "Achtung - Lizenzfehler:") - Exit Sub - End If - End Select + Try + For Each license As ClassLicense In Me.licenseManager.Licenses.Licenses() + Select Case license.Modulename.ToUpper + Case "NACHINDEXIERUNG" + If Prof_Anzahl + 1 > license.Anz_Profile Then + MsgBox("Die Maximalanzahl der lizensierten Nachindexierungs-Profile (" & license.Anz_Profile.ToString & ") ist erreicht!", MsgBoxStyle.Exclamation, "Achtung - Lizenzfehler:") + Exit Sub + End If + End Select + + Next + Catch ex As Exception + If My.Settings.licensekey <> "DD MaxLicense" Then + MsgBox("Error Adding Profile due to license issue!", MsgBoxStyle.Critical) + End If + End Try - Next frmLogin_NI.ShowDialog() ' wenn das Formular geschlossen wurde, werden die Profile neu in die Combobox geladen Me.LoadProfilesInCombobox() @@ -613,7 +620,7 @@ Public Class frmNIProfileigenschaften ' die Änderungen speichern - If Me._selectedProfile.Save(False) = True Then ' wenn das Speichern erfolgreich war + If Me._selectedProfile.Save(False, "profile") = True Then ' wenn das Speichern erfolgreich war Me.lblSave.Visible = True ' den Speichern-Button deaktivieren Me.btnSpeichern.Enabled = False @@ -886,7 +893,7 @@ Public Class frmNIProfileigenschaften Private Sub tsbtnFirstProfil_Click(sender As System.Object, e As System.EventArgs) Handles tsbtnfirst.Click If Me._selectedProfile IsNot Nothing Then If _selectedProfile.HasChanges Then - _selectedProfile.Save(True) + _selectedProfile.Save(True, "profile") End If Else 'Noch kein Profil geladen also das erste laden @@ -906,7 +913,7 @@ Public Class frmNIProfileigenschaften Private Sub tsbtnpreviousProfil_Click(sender As System.Object, e As System.EventArgs) Handles tsbtnprevious.Click If Me._selectedProfile IsNot Nothing Then If _selectedProfile.HasChanges Then - _selectedProfile.Save(True) + _selectedProfile.Save(True, "profile") End If Else 'Noch kein Profil geladen also das erste laden @@ -935,7 +942,7 @@ Public Class frmNIProfileigenschaften Private Sub tsbtnnextProfil_Click(sender As System.Object, e As System.EventArgs) Handles tsbtnnext.Click If Me._selectedProfile IsNot Nothing Then If _selectedProfile.HasChanges Then - _selectedProfile.Save(True) + _selectedProfile.Save(True, "profile") End If Else 'Noh kein Profil geladen also das erste laden @@ -964,7 +971,7 @@ Public Class frmNIProfileigenschaften Private Sub tsbtnLastProfil_Click(sender As System.Object, e As System.EventArgs) Handles tsbtnlast.Click If Me._selectedProfile IsNot Nothing Then If _selectedProfile.HasChanges Then - _selectedProfile.Save(True) + _selectedProfile.Save(True, "profile") End If Else 'Noch kein Profil geladen also das erste laden @@ -1095,7 +1102,7 @@ Public Class frmNIProfileigenschaften End Sub Private Sub frmNIProfileigenschaften_Load(sender As Object, e As EventArgs) Handles Me.Load - If frmStart.licMore = True Then + If LICENSE_MoveRename = True Then grpbxMORE.Enabled = True Else grpbxMORE.Enabled = False diff --git a/ToolCollection/frmNIVerknuepfungen.vb b/ToolCollection/frmNIVerknuepfungen.vb index 0ab74aa..6e56016 100644 --- a/ToolCollection/frmNIVerknuepfungen.vb +++ b/ToolCollection/frmNIVerknuepfungen.vb @@ -482,7 +482,7 @@ Public Class frmNIVerknuepfungen Me.pnlZielQuelle.Enabled = True Else ' wenn bereits ein Profil geladen war If Me._selectedProfil.HasChanges Then - Me._selectedProfil.Save(True) + Me._selectedProfil.Save(True, "profile") End If ' wenn ein anderes Profil ausgewählt wurde If Not e.ClickedItem.Text = Me._selectedProfil.OriginalProfilname Then @@ -2015,8 +2015,10 @@ Public Class frmNIVerknuepfungen If Me._selectedProfil._links.selectedLink IsNot Nothing Then If Me._selectedProfil.IsSaved = False Then - Me._selectedProfil.Save(True) - Me._selectedProfil._links.selectedLink.SaveLink(Me._selectedProfil.Profilname, Me._selectedProfil.Ni_Art) + Me._selectedProfil.Save(True, "link") + If Me._selectedProfil._links.selectedLink.SaveLink(Me._selectedProfil.Profilname, Me._selectedProfil.Ni_Art) = True Then + MsgBox("Verknüpfung erfolgreich gespeichert!", MsgBoxStyle.Information) + End If With btnsave_select .Enabled = False .ForeColor = Drawing.Color.Black @@ -2144,7 +2146,7 @@ Public Class frmNIVerknuepfungen 'Private Sub btnSQL_Updatespeichern_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSQL_Updatespeichern.Click ' Try ' ' die Änderungen speichern - ' If Me._selectedProfil.Save(True) = True Then ' wenn das Speichern erfolgreich war + ' If Me._selectedProfil.Save(True,"profile") = True Then ' wenn das Speichern erfolgreich war ' ' den Speichern-Button deaktivieren ' Me.btnSQL_Updatespeichern.Enabled = False ' Else @@ -2159,7 +2161,7 @@ Public Class frmNIVerknuepfungen 'If Me.txtfinalSkriptUpdate.Text <> "" Then ' Try ' ' die Änderungen speichern - ' If Me._selectedProfil.Save(True) = True Then ' wenn das Speichern erfolgreich war + ' If Me._selectedProfil.Save(True,"profile") = True Then ' wenn das Speichern erfolgreich war ' Me._selectedProfil.setChanged() ' Else ' MsgBox("Das Profil konnte nicht erfolgreich gespeichert werden.", MsgBoxStyle.Exclamation, "Fehler beim Speichern eines Profils") @@ -2274,7 +2276,7 @@ Public Class frmNIVerknuepfungen If Me._selectedProfil Is Nothing = False Then Me.tabctrlbottom.Visible = False If Me._selectedProfil.HasChanges Then - Me._selectedProfil.Save(True) + Me._selectedProfil.Save(True, "profile") End If End If End If @@ -2598,7 +2600,7 @@ Public Class frmNIVerknuepfungen If Me.txtCheckIndexSQL.Text <> "" Then Try ' die Änderungen speichern - If Me._selectedProfil.Save(True) = True Then ' wenn das Speichern erfolgreich war + If Me._selectedProfil.Save(True, "profile") = True Then ' wenn das Speichern erfolgreich war ' den Speichern-Button deaktivieren Else MsgBox("Das Profil konnte nicht erfolgreich gespeichert werden.", MsgBoxStyle.Exclamation, "Fehler beim Speichern eines Profils") @@ -2711,7 +2713,7 @@ Public Class frmNIVerknuepfungen Private Sub tsbtnFirstProfil_Click(sender As System.Object, e As System.EventArgs) Handles tsbtnfirst.Click If Me._selectedProfil IsNot Nothing Then If _selectedProfil.HasChanges Then - _selectedProfil.Save(True) + Me._selectedProfil.Save(True, "profile") End If Else 'Noch kein Profil geladen also das erste laden @@ -2731,7 +2733,7 @@ Public Class frmNIVerknuepfungen Private Sub tsbtnpreviousProfil_Click(sender As System.Object, e As System.EventArgs) Handles tsbtnprevious.Click If Me._selectedProfil IsNot Nothing Then If _selectedProfil.HasChanges Then - _selectedProfil.Save(True) + Me._selectedProfil.Save(True, "profile") End If Else 'Noch kein Profil geladen also das erste laden @@ -2760,7 +2762,7 @@ Public Class frmNIVerknuepfungen Private Sub tsbtnnextProfil_Click(sender As System.Object, e As System.EventArgs) Handles tsbtnnext.Click If Me._selectedProfil IsNot Nothing Then If _selectedProfil.HasChanges Then - _selectedProfil.Save(True) + Me._selectedProfil.Save(True, "profile") End If Else 'Noh kein Profil geladen also das erste laden @@ -2789,7 +2791,7 @@ Public Class frmNIVerknuepfungen Private Sub tsbtnLastProfil_Click(sender As System.Object, e As System.EventArgs) Handles tsbtnlast.Click If Me._selectedProfil IsNot Nothing Then If _selectedProfil.HasChanges Then - _selectedProfil.Save(True) + Me._selectedProfil.Save(True, "profile") End If Else 'Noch kein Profil geladen also das erste laden @@ -3129,7 +3131,7 @@ Public Class frmNIVerknuepfungen Try If Me._selectedProfil._links.selectedLink IsNot Nothing Then If Me._selectedProfil.IsSaved = False Then - Me._selectedProfil.Save(True) + Me._selectedProfil.Save(True, "profile") Me._selectedProfil._links.selectedLink.SaveLink(Me._selectedProfil.Profilname, Me._selectedProfil.Ni_Art) With btnSaveLDAP .Enabled = False @@ -3291,8 +3293,10 @@ Public Class frmNIVerknuepfungen Try If Me._selectedProfil._links.selectedLink IsNot Nothing Then If Me._selectedProfil.IsSaved = False Then - Me._selectedProfil.Save(False) - Me._selectedProfil._links.selectedLink.SaveLink(Me._selectedProfil.Profilname, Me._selectedProfil.Ni_Art) + Me._selectedProfil.Save(False, "FTLink") + If Me._selectedProfil._links.selectedLink.SaveLink(Me._selectedProfil.Profilname, Me._selectedProfil.Ni_Art) = True Then + MsgBox("Speichern erfolgreich!", MsgBoxStyle.Information) + End If If Me._selectedProfil.Ni_Art <> "fulltext" Then Dim vktState = Getvktinsert_State() Me._selectedProfil._links.RenewLinks(Me.lvwVerknuepfungen, vktState) @@ -3496,7 +3500,7 @@ Public Class frmNIVerknuepfungen Me._selectedProfil.SQL_Anweisung = Me.txtfinalSkriptUpdate.Text If Not Me._selectedProfil.SQL_Anweisung = Me._selectedProfil.OriginalSQL_Anweisung Then Me._selectedProfil.setChanged() - If Me._selectedProfil.Save(True) = True Then + If Me._selectedProfil.Save(True, "profile") = True Then Me.lblsaveSQLAnweisung.Text = "Data saved - " & Now.ToString End If @@ -3512,7 +3516,7 @@ Public Class frmNIVerknuepfungen Me._selectedProfil.SQL_Anweisung = Me.txtfinalSkriptUpdate.Text If Not Me._selectedProfil.SQL_Anweisung = Me._selectedProfil.OriginalSQL_Anweisung Then Me._selectedProfil.setChanged() - If Me._selectedProfil.Save(True) = True Then + If Me._selectedProfil.Save(True, "profile") = True Then Me.lblsaveSQLAnweisung.Text = "Data saved - " & Now.ToString End If End If @@ -3527,7 +3531,7 @@ Public Class frmNIVerknuepfungen End Sub Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click - If Me._selectedProfil.Save(True) = True Then + If Me._selectedProfil.Save(True, "profile") = True Then ' wenn das Speichern erfolgreich war Me.lblsaveSQLAnweisung.Text = "Data saved - " & Now.ToString Else diff --git a/ToolCollection/frmStart.vb b/ToolCollection/frmStart.vb index fa50124..3abc0da 100644 --- a/ToolCollection/frmStart.vb +++ b/ToolCollection/frmStart.vb @@ -8,8 +8,6 @@ Public Class frmStart Private _MyLogger As LogConfig Private Shared _Logger As DigitalData.Modules.Logging.Logger Public _validModules() - Public licMore As Boolean = False - Public licNB_AD As Boolean = False Public _company As String ' Dim timediff As Integer = 0 Private licenseManager As ClassLicenseManager = Nothing @@ -45,7 +43,8 @@ Public Class frmStart End If End Sub Private Sub FMStart_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load - _MyLogger = New LogConfig(LogConfig.PathType.CustomPath, Path.Combine(My.Application.Info.DirectoryPath, "Log")) + _MyLogger = New LogConfig(LogConfig.PathType.CustomPath, Path.Combine(My.Application.Info.DirectoryPath, "Log"), Nothing, My.Application.Info.CompanyName, + My.Application.Info.ProductName) _Logger = _MyLogger.GetLogger() CURR_Logger = _Logger CURR_LogConfig = _MyLogger @@ -121,77 +120,90 @@ Public Class frmStart Me.GBNachindexierung.Visible = False Me.GroupBoxIntegration.Visible = False Me.grbxMoRe.Visible = False - licMore = False - licNB_AD = False + LICENSE_MoveRename = False + LICENSE_AD = False End Sub Public Sub LoadAllModules() Me._validModules = Nothing If Not My.Settings.licensekey = "" Then - 'Me.licenseManager = New ClassLicenseManager = Nothing - Me.licenseManager = New ClassLicenseManager("#DigitalData9731258!#", My.Settings.licensekey) - - Me.licenseManager.licenseString = Me.licenseManager.DecodeLicenseKey(My.Settings.licensekey) - - Me.licenseManager.licenseStringArray = Me.licenseManager.SplitLicenseString(Me.licenseManager.licenseString) - Me.licenseManager.LoadLicenses() + If My.Settings.licensekey = "DD MaxLicense" Then + Me.grbDI.Visible = True + Me.GBNachindexierung.Visible = True + Me.GroupBoxIntegration.Visible = True + 'Me.grbxMoRe.Visible = True + btnNachbearbeitungAD.Visible = True + LICENSE_AD = True + LICENSE_MoveRename = True + Else + 'Me.licenseManager = New ClassLicenseManager = Nothing + Me.licenseManager = New ClassLicenseManager("#DigitalData9731258!#", My.Settings.licensekey) + + Me.licenseManager.licenseString = Me.licenseManager.DecodeLicenseKey(My.Settings.licensekey) + + Me.licenseManager.licenseStringArray = Me.licenseManager.SplitLicenseString(Me.licenseManager.licenseString) + Me.licenseManager.LoadLicenses() + + If Me.licenseManager.Licenses.machine.ToLower <> "all" Then + If Me.licenseManager.Licenses.machine.ToLower <> My.Computer.Name.ToLower Then + MsgBox("Ihre Lizenz gilt nicht für diese Maschine. " & vbNewLine & "Gelesener Computer Name: '" & My.Computer.Name & "'" & vbNewLine & "License Computer Name: '" & Me.licenseManager.Licenses.machine & "'" & vbNewLine & + "Bitte setzen Sie sich mit Digital Data in Verbindung.", MsgBoxStyle.Exclamation, "Lizenz ungültig:") + Me.grbDI.Visible = False + Me.GBNachindexierung.Visible = False + Me.GroupBoxIntegration.Visible = False + Me.grbxMoRe.Visible = False + Exit Sub + End If + End If - If Me.licenseManager.Licenses.machine.ToLower <> "all" Then - If Me.licenseManager.Licenses.machine.ToLower <> My.Computer.Name.ToLower Then - MsgBox("Ihre Lizenz gilt nicht für diese Maschine. " & vbNewLine & "Gelesener Computer Name: '" & My.Computer.Name & "'" & vbNewLine & "License Computer Name: '" & Me.licenseManager.Licenses.machine & "'" & vbNewLine & - "Bitte setzen Sie sich mit Digital Data in Verbindung.", MsgBoxStyle.Exclamation, "Lizenz ungültig:") - Me.grbDI.Visible = False - Me.GBNachindexierung.Visible = False - Me.GroupBoxIntegration.Visible = False - Me.grbxMoRe.Visible = False - Exit Sub + Dim i As Integer = 0 + + If Me.licenseManager.Licenses.Licenses IsNot Nothing Then + For Each license As ClassLicense In Me.licenseManager.Licenses.Licenses() + Dim expires As String = license.Expires.Date + If IsExpired(license.Expires.Date) = False Then + ' MsgBox(license.Modulename & vbNewLine & expires) + Select Case license.Modulename + Case "Dateiimport" + Me.grbDI.Visible = True + Case "Nachindexierung" + Me.GBNachindexierung.Visible = True + Case "MerkatorIntegration" + Me.GroupBoxIntegration.Visible = True + Case "MoveandRename" + 'Me.grbxMoRe.Visible = True + LICENSE_MoveRename = True + Case "NachbearbeitungAD" + btnNachbearbeitungAD.Visible = True + LICENSE_AD = True + End Select + i += 1 + Else + MsgBox("Ihre Lizenz für das Modul '" & license.Modulename & "' ist am ' " & license.Expires.Date.ToShortDateString & "' abgelaufen" & vbNewLine & "Bitte setzen Sie sich mit Digital Data in Verbindung.", MsgBoxStyle.Exclamation, "Lizenz abgelaufen:") + Select Case license.Modulename + Case "Dateiimport" + Me.grbDI.Visible = False + Case "Nachindexierung" + Me.GBNachindexierung.Visible = False + Case "MerkatorIntegration" + Me.GroupBoxIntegration.Visible = False + Case "MoveandRename" + Me.GroupBoxIntegration.Visible = False + LICENSE_MoveRename = False + Case "NachbearbeitungAD" + btnNachbearbeitungAD.Visible = False + LICENSE_AD = False + End Select + i += 1 + End If + 'Date.TryParse(expires, license.Expires) + + Next End If End If - Dim i As Integer = 0 - - If Me.licenseManager.Licenses.Licenses IsNot Nothing Then - For Each license As ClassLicense In Me.licenseManager.Licenses.Licenses() - Dim expires As String = license.Expires.Date - If IsExpired(license.Expires.Date) = False Then - ' MsgBox(license.Modulename & vbNewLine & expires) - Select Case license.Modulename - Case "Dateiimport" - Me.grbDI.Visible = True - Case "Nachindexierung" - Me.GBNachindexierung.Visible = True - Case "MerkatorIntegration" - Me.GroupBoxIntegration.Visible = True - Case "MoveandRename" - 'Me.grbxMoRe.Visible = True - licMore = True - Case "NachbearbeitungAD" - btnNachbearbeitungAD.Visible = True - licNB_AD = True - End Select - i += 1 - Else - MsgBox("Ihre Lizenz für das Modul '" & license.Modulename & "' ist am ' " & license.Expires.Date.ToShortDateString & "' abgelaufen" & vbNewLine & "Bitte setzen Sie sich mit Digital Data in Verbindung.", MsgBoxStyle.Exclamation, "Lizenz abgelaufen:") - Select Case license.Modulename - Case "Dateiimport" - Me.grbDI.Visible = False - Case "Nachindexierung" - Me.GBNachindexierung.Visible = False - Case "MerkatorIntegration" - Me.GroupBoxIntegration.Visible = False - Case "MoveandRename" - Me.GroupBoxIntegration.Visible = False - licMore = False - Case "NachbearbeitungAD" - btnNachbearbeitungAD.Visible = False - licNB_AD = False - End Select - i += 1 - End If - 'Date.TryParse(expires, license.Expires) - Next - End If + End If End Sub Private Function IsExpired(ByVal _Date As Date)