From 528a341f7a5daa728ff74138a2d4ca8a4d9406e6 Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Fri, 26 Apr 2019 17:20:58 +0200 Subject: [PATCH] lots of bugfixing for lookupgrid --- Controls.LookupGrid/LookupControl2.vb | 92 +++++++++--- .../My Project/AssemblyInfo.vb | 2 +- Controls.LookupGrid/frmLookupGrid.vb | 3 +- DDMonorepo.sln | 7 + GUIs.Test.TestGUI/ConfigTest.vb | 1 - GUIs.Test.TestGUI/Form1.Designer.vb | 28 ---- GUIs.Test.TestGUI/Form1.resx | 9 -- GUIs.Test.TestGUI/Form1.vb | 5 - GUIs.Test.TestGUI/TestGUI.vbproj | 4 - LookupControlGui/App.config | 6 + LookupControlGui/Form1.Designer.vb | 89 ++++++++++++ LookupControlGui/Form1.resx | 120 ++++++++++++++++ LookupControlGui/Form1.vb | 37 +++++ LookupControlGui/LookupControlGui.vbproj | 132 ++++++++++++++++++ .../My Project/Application.Designer.vb | 38 +++++ LookupControlGui/My Project/Application.myapp | 11 ++ LookupControlGui/My Project/AssemblyInfo.vb | 35 +++++ .../My Project/Resources.Designer.vb | 62 ++++++++ LookupControlGui/My Project/Resources.resx | 117 ++++++++++++++++ .../My Project/Settings.Designer.vb | 73 ++++++++++ LookupControlGui/My Project/Settings.settings | 7 + .../ActiveDirectoryInterface.vb | 4 +- .../SyncUsers.Firebird.vb | 2 +- .../SyncUsers.MSSQL.vb | 12 +- 24 files changed, 819 insertions(+), 77 deletions(-) create mode 100644 LookupControlGui/App.config create mode 100644 LookupControlGui/Form1.Designer.vb create mode 100644 LookupControlGui/Form1.resx create mode 100644 LookupControlGui/Form1.vb create mode 100644 LookupControlGui/LookupControlGui.vbproj create mode 100644 LookupControlGui/My Project/Application.Designer.vb create mode 100644 LookupControlGui/My Project/Application.myapp create mode 100644 LookupControlGui/My Project/AssemblyInfo.vb create mode 100644 LookupControlGui/My Project/Resources.Designer.vb create mode 100644 LookupControlGui/My Project/Resources.resx create mode 100644 LookupControlGui/My Project/Settings.Designer.vb create mode 100644 LookupControlGui/My Project/Settings.settings diff --git a/Controls.LookupGrid/LookupControl2.vb b/Controls.LookupGrid/LookupControl2.vb index ea3f8de0..b1df6d2e 100644 --- a/Controls.LookupGrid/LookupControl2.vb +++ b/Controls.LookupGrid/LookupControl2.vb @@ -21,10 +21,6 @@ Public Class RepositoryItemLookupControl2 Public Const CustomEditName As String = "LookupControl2" - Public Sub New() - - End Sub - Public Overrides ReadOnly Property EditorTypeName As String Get Return CustomEditName @@ -59,54 +55,110 @@ Public Class LookupControl2 Public Property PreventDuplicates As Boolean Public Property DataSource As DataTable Public Property SelectedValues As List(Of String) + Get + Return _SelectedValues + End Get + Set(value As List(Of String)) + _SelectedValues = value + UpdateSelectedValues(value) + End Set + End Property + + Private LookupFormButton As EditorButton + Private DropdownButton As EditorButton Private Const TAG_BUTTON_LOOKUP_FORM = "openLookupForm" + Private Const TEXT_NO_RECORDS = "Keine Datensätze ausgewählt" + Private Const TEXT_ONE_RECORD = "Ein Datensatz ausgewählt" Private Const TEXT_N_RECORDS = "{0} Datensätze ausgewählt" + Private _SelectedValues As List(Of String) + Shared Sub New() RepositoryItemLookupControl2.RegisterLookupControl2() End Sub Public Sub New() - Properties.Buttons.Add(New EditorButton() With { + MyClass.New(MultiSelect:=False) + End Sub + + Public Sub New(MultiSelect As Boolean) + LookupFormButton = New EditorButton() With { .Kind = ButtonPredefines.Ellipsis, .Tag = TAG_BUTTON_LOOKUP_FORM - }) + } + + Properties.Buttons.AddRange({LookupFormButton}) AddHandler ButtonClick, AddressOf HandleButtonClick AddHandler EditValueChanging, AddressOf HandleEditValueChanging + AddHandler QueryPopUp, AddressOf HandleQueryPopup End Sub - Private Sub HandleEditValueChanging(sender As Object, e As ChangingEventArgs) - e.Cancel = True + ''' + ''' Prevents popup from opening when multiselect is false + ''' + Private Sub HandleQueryPopup(sender As Object, e As CancelEventArgs) + If MultiSelect = False Then + e.Cancel = True + End If End Sub - Private Sub HandleButtonClick(sender As Object, e As ButtonPressedEventArgs) - If e.Button.Tag <> TAG_BUTTON_LOOKUP_FORM Then - Exit Sub + ''' + ''' Prevents Editvalue changing when multiselect is true + ''' + Private Sub HandleEditValueChanging(sender As Object, e As ChangingEventArgs) + If MultiSelect Then + e.Cancel = True End If + End Sub - Dim oForm As frmLookupGrid = GetLookupForm() - Dim oResult = oForm.ShowDialog() + ''' + ''' Handles opening frmLookup when ellipsis button is clicked + ''' + Private Sub HandleButtonClick(sender As Object, e As ButtonPressedEventArgs) + Select Case e.Button.Tag + Case TAG_BUTTON_LOOKUP_FORM + Dim oForm As frmLookupGrid = GetLookupForm() + Dim oResult = oForm.ShowDialog() - If oResult = Windows.Forms.DialogResult.OK Then - Dim oValues = oForm.SelectedValues + If oResult = Windows.Forms.DialogResult.OK Then + Dim oValues = oForm.SelectedValues - UpdateSelectedValues(oValues) + UpdateSelectedValues(oValues) + SelectedValues = oValues + ElseIf oResult = Windows.Forms.DialogResult.Cancel Then + Dim oValues = New List(Of String) - SelectedValues = oValues - End If + UpdateSelectedValues(oValues) + SelectedValues = oValues + End If - oForm.Dispose() + oForm.Dispose() + End Select End Sub Private Sub UpdateSelectedValues(Values As List(Of String)) + If Values Is Nothing Then + Exit Sub + End If + If MultiSelect = True Then Properties.DataSource = Values - Properties.NullText = IIf(Values.Count = 0, TEXT_NO_RECORDS, String.Format(TEXT_N_RECORDS, Values.Count)) + + Select Case Values.Count + Case 0 + Properties.NullText = TEXT_NO_RECORDS + Case 1 + Properties.NullText = TEXT_ONE_RECORD + Case Else + Properties.NullText = String.Format(TEXT_N_RECORDS, Values.Count) + End Select Else + Properties.NullText = Values.FirstOrDefault() Text = Values.FirstOrDefault() + EditValue = Nothing End If End Sub diff --git a/Controls.LookupGrid/My Project/AssemblyInfo.vb b/Controls.LookupGrid/My Project/AssemblyInfo.vb index a9d9594c..2eb9f91d 100644 --- a/Controls.LookupGrid/My Project/AssemblyInfo.vb +++ b/Controls.LookupGrid/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - + diff --git a/Controls.LookupGrid/frmLookupGrid.vb b/Controls.LookupGrid/frmLookupGrid.vb index e0beba62..44517082 100644 --- a/Controls.LookupGrid/frmLookupGrid.vb +++ b/Controls.LookupGrid/frmLookupGrid.vb @@ -17,6 +17,7 @@ Public Class frmLookupGrid view = viewLookup grid = gridLookup + If DataSource Is Nothing Then Exit Sub End If @@ -136,7 +137,7 @@ Public Class frmLookupGrid End Sub Private Sub btnClear_Click(sender As Object, e As EventArgs) Handles btnClear.Click - SelectedValues.Clear() + SelectedValues = New List(Of String) DialogResult = DialogResult.Cancel Close() diff --git a/DDMonorepo.sln b/DDMonorepo.sln index a21dd992..bced3c9e 100644 --- a/DDMonorepo.sln +++ b/DDMonorepo.sln @@ -73,6 +73,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "GUIs.Test", "GUIs.Test", "{ EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "JobRunner", "Service.JobRunner\JobRunner.vbproj", "{926E6474-5613-4373-BB99-B101158B91EF}" EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "LookupControlGui", "LookupControlGui\LookupControlGui.vbproj", "{B65E24B3-D334-455D-A0BF-B33B8358B013}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -179,6 +181,10 @@ Global {926E6474-5613-4373-BB99-B101158B91EF}.Debug|Any CPU.Build.0 = Debug|Any CPU {926E6474-5613-4373-BB99-B101158B91EF}.Release|Any CPU.ActiveCfg = Release|Any CPU {926E6474-5613-4373-BB99-B101158B91EF}.Release|Any CPU.Build.0 = Release|Any CPU + {B65E24B3-D334-455D-A0BF-B33B8358B013}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B65E24B3-D334-455D-A0BF-B33B8358B013}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B65E24B3-D334-455D-A0BF-B33B8358B013}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B65E24B3-D334-455D-A0BF-B33B8358B013}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -209,6 +215,7 @@ Global {5EBACBFA-F11A-4BBF-8D02-91461F2293ED} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC} {7386AB04-DF8D-4DFB-809D-1FAC8212CB7E} = {CC368D6A-6AC4-4EB9-A092-14700FABEF7A} {926E6474-5613-4373-BB99-B101158B91EF} = {7AF3F9C2-C939-4A08-95C1-0453207E298A} + {B65E24B3-D334-455D-A0BF-B33B8358B013} = {CC368D6A-6AC4-4EB9-A092-14700FABEF7A} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {C1BE4090-A0FD-48AF-86CB-39099D14B286} diff --git a/GUIs.Test.TestGUI/ConfigTest.vb b/GUIs.Test.TestGUI/ConfigTest.vb index 8e0dbbc7..356bc62a 100644 --- a/GUIs.Test.TestGUI/ConfigTest.vb +++ b/GUIs.Test.TestGUI/ConfigTest.vb @@ -12,7 +12,6 @@ Public Class ConfigTest End Sub Public Class Config - Public Property StringEntry As String = "TEST" Public Property BoolEntry As Boolean = True Public Property IntEntry As Integer = 123 diff --git a/GUIs.Test.TestGUI/Form1.Designer.vb b/GUIs.Test.TestGUI/Form1.Designer.vb index 8888ec79..e744c1bb 100644 --- a/GUIs.Test.TestGUI/Form1.Designer.vb +++ b/GUIs.Test.TestGUI/Form1.Designer.vb @@ -22,7 +22,6 @@ Partial Class Form1 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. Private Sub InitializeComponent() - Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form1)) Me.Button1 = New System.Windows.Forms.Button() Me.Button3 = New System.Windows.Forms.Button() Me.Label1 = New System.Windows.Forms.Label() @@ -44,8 +43,6 @@ Partial Class Form1 Me.TextBox1 = New System.Windows.Forms.TextBox() Me.Label6 = New System.Windows.Forms.Label() Me.Button4 = New System.Windows.Forms.Button() - Me.LookupControl1 = New DigitalData.Controls.LookupGrid.LookupControl() - Me.Button6 = New System.Windows.Forms.Button() CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.GridView1, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() @@ -231,34 +228,11 @@ Partial Class Form1 Me.Button4.Text = "Test Background Worker Logging" Me.Button4.UseVisualStyleBackColor = True ' - 'LookupControl1 - ' - Me.LookupControl1.AutoSize = True - Me.LookupControl1.BackColor = System.Drawing.Color.Transparent - Me.LookupControl1.DataSource = Nothing - Me.LookupControl1.Location = New System.Drawing.Point(695, 214) - Me.LookupControl1.MultiSelect = True - Me.LookupControl1.Name = "LookupControl1" - Me.LookupControl1.SelectedValues = CType(resources.GetObject("LookupControl1.SelectedValues"), System.Collections.Generic.List(Of String)) - Me.LookupControl1.Size = New System.Drawing.Size(270, 23) - Me.LookupControl1.TabIndex = 23 - ' - 'Button6 - ' - Me.Button6.Location = New System.Drawing.Point(764, 308) - Me.Button6.Name = "Button6" - Me.Button6.Size = New System.Drawing.Size(75, 23) - Me.Button6.TabIndex = 24 - Me.Button6.Text = "Button6" - Me.Button6.UseVisualStyleBackColor = True - ' 'Form1 ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(1050, 487) - Me.Controls.Add(Me.Button6) - Me.Controls.Add(Me.LookupControl1) Me.Controls.Add(Me.Button4) Me.Controls.Add(Me.Label6) Me.Controls.Add(Me.TextBox1) @@ -310,6 +284,4 @@ Partial Class Form1 Friend WithEvents TextBox1 As TextBox Friend WithEvents Label6 As Label Friend WithEvents Button4 As Button - Friend WithEvents LookupControl1 As DigitalData.Controls.LookupGrid.LookupControl - Friend WithEvents Button6 As Button End Class diff --git a/GUIs.Test.TestGUI/Form1.resx b/GUIs.Test.TestGUI/Form1.resx index 7a53cff0..1af7de15 100644 --- a/GUIs.Test.TestGUI/Form1.resx +++ b/GUIs.Test.TestGUI/Form1.resx @@ -117,13 +117,4 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - AAEAAAD/////AQAAAAAAAAAMAgAAAJoBbXNjb3JsaWIsIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1u - ZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5XV0sIG1zY29ybGliLCBWZXJzaW9u - PTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjc3YTVjNTYxOTM0ZTA4OQUB - AAAAMFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljLkxpc3RgMVtbU3lzdGVtLlN0cmluZwMAAAAGX2l0 - ZW1zBV9zaXplCF92ZXJzaW9uBgAACAgCAAAACQMAAAAAAAAAAAAAABEDAAAAAAAAAAs= - - \ No newline at end of file diff --git a/GUIs.Test.TestGUI/Form1.vb b/GUIs.Test.TestGUI/Form1.vb index 6f8babf9..a41b5a2a 100644 --- a/GUIs.Test.TestGUI/Form1.vb +++ b/GUIs.Test.TestGUI/Form1.vb @@ -79,11 +79,6 @@ Public Class Form1 datatable.Rows.Add(dr) datatable.Rows.Add(dr2) datatable.Rows.Add(dr3) - - LookupControl1.DataSource = datatable - LookupControl1.SelectedValues = New List(Of String) From {"foo"} - - End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles GetValue.Click diff --git a/GUIs.Test.TestGUI/TestGUI.vbproj b/GUIs.Test.TestGUI/TestGUI.vbproj index 07ece0c7..95ee6b2a 100644 --- a/GUIs.Test.TestGUI/TestGUI.vbproj +++ b/GUIs.Test.TestGUI/TestGUI.vbproj @@ -176,10 +176,6 @@ {991d0231-4623-496d-8bd0-9ca906029cbc} Filesystem - - {3dcd6d1a-c830-4241-b7e4-27430e7ea483} - LookupControl - {903b2d7d-3b80-4be9-8713-7447b704e1b0} Logging diff --git a/LookupControlGui/App.config b/LookupControlGui/App.config new file mode 100644 index 00000000..5534e287 --- /dev/null +++ b/LookupControlGui/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LookupControlGui/Form1.Designer.vb b/LookupControlGui/Form1.Designer.vb new file mode 100644 index 00000000..20e29cfc --- /dev/null +++ b/LookupControlGui/Form1.Designer.vb @@ -0,0 +1,89 @@ + +Partial Class Form1 + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + + Private Sub InitializeComponent() + Dim EditorButtonImageOptions1 As DevExpress.XtraEditors.Controls.EditorButtonImageOptions = New DevExpress.XtraEditors.Controls.EditorButtonImageOptions() + Dim SerializableAppearanceObject1 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() + Dim SerializableAppearanceObject2 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() + Dim SerializableAppearanceObject3 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() + Dim SerializableAppearanceObject4 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() + Dim EditorButtonImageOptions2 As DevExpress.XtraEditors.Controls.EditorButtonImageOptions = New DevExpress.XtraEditors.Controls.EditorButtonImageOptions() + Dim SerializableAppearanceObject5 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() + Dim SerializableAppearanceObject6 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() + Dim SerializableAppearanceObject7 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() + Dim SerializableAppearanceObject8 As DevExpress.Utils.SerializableAppearanceObject = New DevExpress.Utils.SerializableAppearanceObject() + Me.Button1 = New System.Windows.Forms.Button() + Me.LookupControl = New DigitalData.Controls.LookupGrid.LookupControl2() + Me.LookupControl21View = New DevExpress.XtraGrid.Views.Grid.GridView() + CType(Me.LookupControl.Properties, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.LookupControl21View, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'Button1 + ' + Me.Button1.Location = New System.Drawing.Point(12, 12) + Me.Button1.Name = "Button1" + Me.Button1.Size = New System.Drawing.Size(94, 23) + Me.Button1.TabIndex = 2 + Me.Button1.Text = "Get Text" + Me.Button1.UseVisualStyleBackColor = True + ' + 'LookupControl + ' + Me.LookupControl.AllowAddNewValues = False + Me.LookupControl.DataSource = Nothing + Me.LookupControl.Location = New System.Drawing.Point(393, 31) + Me.LookupControl.MultiSelect = True + Me.LookupControl.Name = "LookupControl" + Me.LookupControl.PreventDuplicates = False + Me.LookupControl.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo, "", -1, True, True, False, EditorButtonImageOptions1, New DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), SerializableAppearanceObject1, SerializableAppearanceObject2, SerializableAppearanceObject3, SerializableAppearanceObject4, "", "openDropdown", Nothing, DevExpress.Utils.ToolTipAnchor.[Default]), New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Ellipsis, "", -1, True, True, False, EditorButtonImageOptions2, New DevExpress.Utils.KeyShortcut(System.Windows.Forms.Keys.None), SerializableAppearanceObject5, SerializableAppearanceObject6, SerializableAppearanceObject7, SerializableAppearanceObject8, "", "openLookupForm", Nothing, DevExpress.Utils.ToolTipAnchor.[Default])}) + Me.LookupControl.Properties.PopupView = Me.LookupControl21View + Me.LookupControl.SelectedValues = Nothing + Me.LookupControl.Size = New System.Drawing.Size(342, 20) + Me.LookupControl.TabIndex = 3 + ' + 'LookupControl21View + ' + Me.LookupControl21View.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus + Me.LookupControl21View.Name = "LookupControl21View" + Me.LookupControl21View.OptionsSelection.EnableAppearanceFocusedCell = False + Me.LookupControl21View.OptionsView.ShowGroupPanel = False + ' + 'Form1 + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(800, 450) + Me.Controls.Add(Me.LookupControl) + Me.Controls.Add(Me.Button1) + Me.Name = "Form1" + Me.Text = "Form1" + CType(Me.LookupControl.Properties, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.LookupControl21View, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + Friend WithEvents Button1 As Button + Friend WithEvents LookupControl As DigitalData.Controls.LookupGrid.LookupControl2 + Friend WithEvents LookupControl21View As DevExpress.XtraGrid.Views.Grid.GridView +End Class diff --git a/LookupControlGui/Form1.resx b/LookupControlGui/Form1.resx new file mode 100644 index 00000000..1af7de15 --- /dev/null +++ b/LookupControlGui/Form1.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/LookupControlGui/Form1.vb b/LookupControlGui/Form1.vb new file mode 100644 index 00000000..fb9958f7 --- /dev/null +++ b/LookupControlGui/Form1.vb @@ -0,0 +1,37 @@ + + + +Public Class Form1 + Private _Datasource As New List(Of String) From {"Foo", "bar", "baz", "quux"} + + Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load + + Dim oDatatable = GetDatatable() + Dim oSelectedValues = _Datasource.Take(1).ToList() + + LookupControl.DataSource = oDatatable + LookupControl.SelectedValues = oSelectedValues + End Sub + + Private Function GetDatatable() As DataTable + Dim oDatatable As New DataTable + Dim oColumns As New List(Of DataColumn) From { + New DataColumn("Col1", GetType(String)) + } + + oDatatable.Columns.AddRange(oColumns.ToArray) + + For Each Item In _Datasource + Dim oRow = oDatatable.NewRow() + oRow.Item("Col1") = Item + oDatatable.Rows.Add(oRow) + Next + + + Return oDatatable + End Function + + Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click + MsgBox(LookupControl.SelectedValues.Count) + End Sub +End Class diff --git a/LookupControlGui/LookupControlGui.vbproj b/LookupControlGui/LookupControlGui.vbproj new file mode 100644 index 00000000..e7f8927a --- /dev/null +++ b/LookupControlGui/LookupControlGui.vbproj @@ -0,0 +1,132 @@ + + + + + Debug + AnyCPU + {B65E24B3-D334-455D-A0BF-B33B8358B013} + WinExe + LookupControlGui.My.MyApplication + LookupControlGui + LookupControlGui + 512 + WindowsForms + v4.6.1 + true + + + AnyCPU + true + full + true + true + bin\Debug\ + LookupControlGui.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + AnyCPU + pdbonly + false + true + true + bin\Release\ + LookupControlGui.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + On + + + Binary + + + Off + + + On + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Form + + + Form1.vb + Form + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + Form1.vb + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + + {3dcd6d1a-c830-4241-b7e4-27430e7ea483} + LookupControl + + + + \ No newline at end of file diff --git a/LookupControlGui/My Project/Application.Designer.vb b/LookupControlGui/My Project/Application.Designer.vb new file mode 100644 index 00000000..50b0d981 --- /dev/null +++ b/LookupControlGui/My Project/Application.Designer.vb @@ -0,0 +1,38 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + 'NOTE: This file is auto-generated; do not modify it directly. To make changes, + ' or if you encounter build errors in this file, go to the Project Designer + ' (go to Project Properties or double-click the My Project node in + ' Solution Explorer), and make changes on the Application tab. + ' + Partial Friend Class MyApplication + + _ + Public Sub New() + MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows) + Me.IsSingleInstance = false + Me.EnableVisualStyles = true + Me.SaveMySettingsOnExit = true + Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses + End Sub + + _ + Protected Overrides Sub OnCreateMainForm() + Me.MainForm = Global.LookupControlGui.Form1 + End Sub + End Class +End Namespace diff --git a/LookupControlGui/My Project/Application.myapp b/LookupControlGui/My Project/Application.myapp new file mode 100644 index 00000000..1243847f --- /dev/null +++ b/LookupControlGui/My Project/Application.myapp @@ -0,0 +1,11 @@ + + + true + Form1 + false + 0 + true + 0 + 0 + true + diff --git a/LookupControlGui/My Project/AssemblyInfo.vb b/LookupControlGui/My Project/AssemblyInfo.vb new file mode 100644 index 00000000..66ae7a4b --- /dev/null +++ b/LookupControlGui/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' Allgemeine Informationen über eine Assembly werden über die folgenden +' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, +' die einer Assembly zugeordnet sind. + +' Werte der Assemblyattribute überprüfen + + + + + + + + + + +'Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird. + + +' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: +' +' Hauptversion +' Nebenversion +' Buildnummer +' Revision +' +' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden, +' übernehmen, indem Sie "*" eingeben: +' + + + diff --git a/LookupControlGui/My Project/Resources.Designer.vb b/LookupControlGui/My Project/Resources.Designer.vb new file mode 100644 index 00000000..3cf88756 --- /dev/null +++ b/LookupControlGui/My Project/Resources.Designer.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("LookupControlGui.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/LookupControlGui/My Project/Resources.resx b/LookupControlGui/My Project/Resources.resx new file mode 100644 index 00000000..af7dbebb --- /dev/null +++ b/LookupControlGui/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/LookupControlGui/My Project/Settings.Designer.vb b/LookupControlGui/My Project/Settings.Designer.vb new file mode 100644 index 00000000..dcfe7c8c --- /dev/null +++ b/LookupControlGui/My Project/Settings.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.LookupControlGui.My.MySettings + Get + Return Global.LookupControlGui.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/LookupControlGui/My Project/Settings.settings b/LookupControlGui/My Project/Settings.settings new file mode 100644 index 00000000..85b890b3 --- /dev/null +++ b/LookupControlGui/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Modules.Interfaces/ActiveDirectoryInterface.vb b/Modules.Interfaces/ActiveDirectoryInterface.vb index 56ddbb10..bd12e115 100644 --- a/Modules.Interfaces/ActiveDirectoryInterface.vb +++ b/Modules.Interfaces/ActiveDirectoryInterface.vb @@ -52,8 +52,8 @@ Public Class ActiveDirectoryInterface Dim oSyncedUsers As New List(Of ADUser) Dim oGroupId As Int64 = Nothing - Dim oFirebirdSync As New SyncUsers.FirebirdSync(_logConfig, _firebird) - Dim oSQLSync As New SyncUsers.MSSQLSync(_logConfig, _mssql) + Dim oFirebirdSync As New SyncUsers.SyncUsersFirebird(_logConfig, _firebird) + Dim oSQLSync As New SyncUsers.SyncUsersMSSQL(_logConfig, _mssql) Dim oSyncedUsersFirebird, oSyncedUsersMSSQL As List(Of ADUser) Try diff --git a/Modules.Interfaces/ActiveDirectoryInterface/SyncUsers.Firebird.vb b/Modules.Interfaces/ActiveDirectoryInterface/SyncUsers.Firebird.vb index b15e9d4d..c772db48 100644 --- a/Modules.Interfaces/ActiveDirectoryInterface/SyncUsers.Firebird.vb +++ b/Modules.Interfaces/ActiveDirectoryInterface/SyncUsers.Firebird.vb @@ -3,7 +3,7 @@ Imports DigitalData.Modules.Interfaces Imports DigitalData.Modules.Logging Namespace SyncUsers - Public Class FirebirdSync + Public Class SyncUsersFirebird Implements ISyncUsers Private ReadOnly _logConfig As LogConfig diff --git a/Modules.Interfaces/ActiveDirectoryInterface/SyncUsers.MSSQL.vb b/Modules.Interfaces/ActiveDirectoryInterface/SyncUsers.MSSQL.vb index 7448a9b2..032a7dfc 100644 --- a/Modules.Interfaces/ActiveDirectoryInterface/SyncUsers.MSSQL.vb +++ b/Modules.Interfaces/ActiveDirectoryInterface/SyncUsers.MSSQL.vb @@ -2,14 +2,16 @@ Imports DigitalData.Modules.Logging Namespace SyncUsers - Public Class MSSQLSync + Public Class SyncUsersMSSQL Implements ISyncUsers Private _logConfig As LogConfig Private _logger As Logger Private _mssql As MSSQLServer - Public Sub New(LogConfig As LogConfig, MSSQL As Database.MSSQLServer) + Private Const ADDED_WHO = "Active Directory Sync" + + Public Sub New(LogConfig As LogConfig, MSSQL As MSSQLServer) _logConfig = LogConfig _logger = LogConfig.GetLogger() _mssql = MSSQL @@ -88,7 +90,7 @@ Namespace SyncUsers Private Sub AddUserToGroup(UserId As Integer, GroupId As Integer) Implements ISyncUsers.AddUserToGroup Try - Dim oSQL As String = $"INSERT INTO TBDD_GROUPS_USER (USER_ID, GROUP_ID) VALUES ({UserId}, {GroupId})" + Dim oSQL As String = $"INSERT INTO TBDD_GROUPS_USER (USER_ID, GROUP_ID, ADDED_WHO) VALUES ({UserId}, {GroupId}, '{ADDED_WHO}')" Dim oResult = _mssql.NewExecutenonQuery(oSQL) If oResult = False Then @@ -135,7 +137,7 @@ Namespace SyncUsers Private Function CreateUser(User As ADUser) As Integer Implements ISyncUsers.CreateUser Try - Dim oSQL As String = $"INSERT INTO TBDD_USER (PRENAME, NAME, USERNAME, EMAIL) VALUES ('{User.GivenName}', '{User.Surname}', '{User.samAccountName}', '{User.Email}')" + Dim oSQL As String = $"INSERT INTO TBDD_USER (PRENAME, NAME, USERNAME, EMAIL, ADDED_WHO) VALUES ('{User.GivenName}', '{User.Surname}', '{User.samAccountName}', '{User.Email}', '{ADDED_WHO}')" Dim oResult = _mssql.NewExecutenonQuery(oSQL) If oResult = True Then @@ -154,7 +156,7 @@ Namespace SyncUsers Dim oCustomAttributes = User.CustomAttributes For Each oAttribute In oCustomAttributes - Dim oSQL As String = $"UPDATE TBDD_USER SET {oAttribute.MSSQLColumn} = '{oAttribute.Value}' WHERE GUID = {UserId}" + Dim oSQL As String = $"UPDATE TBDD_USER SET {oAttribute.MSSQLColumn} = '{oAttribute.Value}', CHANGED_WHO = '{ADDED_WHO}' WHERE GUID = {UserId}" Dim oResult = _mssql.NewExecutenonQuery(oSQL) If oResult = False Then