Merge branch 'master' of http://dd-vmp07-com04:3000/AppStd/Monorepo
This commit is contained in:
@@ -49,6 +49,7 @@ Public Class RepositoryItemLookupControl3
|
|||||||
SetDropdownButtonEnabled(_MultiSelect)
|
SetDropdownButtonEnabled(_MultiSelect)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Const NAME_DATATABLE_INTERNAL = "__INTERNAL_DATATABLE__"
|
||||||
Private Const TAG_DROPDOWN = "openDropdown"
|
Private Const TAG_DROPDOWN = "openDropdown"
|
||||||
Private Const TAG_BUTTON_LOOKUP_FORM = "openLookupForm"
|
Private Const TAG_BUTTON_LOOKUP_FORM = "openLookupForm"
|
||||||
|
|
||||||
@@ -165,8 +166,12 @@ Public Class RepositoryItemLookupControl3
|
|||||||
NullText = Values.FirstOrDefault()
|
NullText = Values.FirstOrDefault()
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If DataSource Is Nothing Then
|
' If No external Datasource is supplied, create one containing the currently selected values
|
||||||
Dim oDataTable As New DataTable()
|
' If the current datasource is the internal one, update it
|
||||||
|
If DataSource Is Nothing OrElse (TypeOf DataSource Is DataTable AndAlso DirectCast(DataSource, DataTable).TableName = NAME_DATATABLE_INTERNAL) Then
|
||||||
|
Dim oDataTable As New DataTable() With {
|
||||||
|
.TableName = NAME_DATATABLE_INTERNAL
|
||||||
|
}
|
||||||
oDataTable.Columns.Add(New DataColumn("Data", GetType(String)))
|
oDataTable.Columns.Add(New DataColumn("Data", GetType(String)))
|
||||||
|
|
||||||
For Each oValue In Values
|
For Each oValue In Values
|
||||||
@@ -224,6 +229,18 @@ Public Class RepositoryItemLookupControl3
|
|||||||
If oResult = Windows.Forms.DialogResult.OK Then
|
If oResult = Windows.Forms.DialogResult.OK Then
|
||||||
Dim oValues = oForm.SelectedValues
|
Dim oValues = oForm.SelectedValues
|
||||||
UpdateSelectedValues(oValues)
|
UpdateSelectedValues(oValues)
|
||||||
|
|
||||||
|
If oForm.NewValues.Count > 0 AndAlso TypeOf DataSource Is DataTable Then
|
||||||
|
Dim oTable As DataTable = DirectCast(DataSource, DataTable)
|
||||||
|
|
||||||
|
If oTable.TableName <> NAME_DATATABLE_INTERNAL Then
|
||||||
|
For Each oValue In oForm.NewValues
|
||||||
|
Dim oRow = oTable.NewRow()
|
||||||
|
oRow.Item(0) = oValue
|
||||||
|
oTable.Rows.Add(oRow)
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
End Using
|
End Using
|
||||||
End If
|
End If
|
||||||
@@ -248,9 +265,9 @@ Public Class RepositoryItemLookupControl3
|
|||||||
If DataSource IsNot Nothing AndAlso DataSource.Columns.Count > 0 Then
|
If DataSource IsNot Nothing AndAlso DataSource.Columns.Count > 0 Then
|
||||||
Dim oFirstColumn As String = DataSource.Columns.Item(0).ColumnName
|
Dim oFirstColumn As String = DataSource.Columns.Item(0).ColumnName
|
||||||
|
|
||||||
Dim oWrapped = SelectedValues.Select(Function(v As String)
|
Dim oWrapped = SelectedValues.
|
||||||
Return $"'{v}'"
|
Select(Function(v As String) $"'{v}'").
|
||||||
End Function).ToArray()
|
ToArray()
|
||||||
Dim oValueString As String = String.Join(",", oWrapped)
|
Dim oValueString As String = String.Join(",", oWrapped)
|
||||||
Dim oCriterium As String = $"[{oFirstColumn}] IN ({oValueString})"
|
Dim oCriterium As String = $"[{oFirstColumn}] IN ({oValueString})"
|
||||||
View.ActiveFilterCriteria = DevExpress.Data.Filtering.CriteriaOperator.Parse(oCriterium)
|
View.ActiveFilterCriteria = DevExpress.Data.Filtering.CriteriaOperator.Parse(oCriterium)
|
||||||
|
|||||||
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
|
|||||||
' übernehmen, indem Sie "*" eingeben:
|
' übernehmen, indem Sie "*" eingeben:
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
' <Assembly: AssemblyVersion("1.0.*")>
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("3.0.1.0")>
|
<Assembly: AssemblyVersion("3.0.3.0")>
|
||||||
<Assembly: AssemblyFileVersion("3.0.1.0")>
|
<Assembly: AssemblyFileVersion("3.0.3.0")>
|
||||||
|
|||||||
@@ -9,6 +9,9 @@ Public Class frmLookupGrid
|
|||||||
Public Property PreventDuplicates As Boolean
|
Public Property PreventDuplicates As Boolean
|
||||||
Public Property DataSource As DataTable
|
Public Property DataSource As DataTable
|
||||||
Public Property SelectedValues As List(Of String)
|
Public Property SelectedValues As List(Of String)
|
||||||
|
Public Property NewValues As New HashSet(Of String)
|
||||||
|
|
||||||
|
Public Const COLUMN_SELECTED = "SELECTED"
|
||||||
|
|
||||||
Private _DataColumn As Integer
|
Private _DataColumn As Integer
|
||||||
Private _DataSourceTemp As DataTable
|
Private _DataSourceTemp As DataTable
|
||||||
@@ -29,7 +32,7 @@ Public Class frmLookupGrid
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
If MultiSelect Then
|
If MultiSelect Then
|
||||||
If Not _DataSourceTemp.Columns.Contains("SELECTED") Then
|
If Not _DataSourceTemp.Columns.Contains(COLUMN_SELECTED) Then
|
||||||
Dim selectedColumn = New DataColumn() With {
|
Dim selectedColumn = New DataColumn() With {
|
||||||
.ColumnName = "SELECTED",
|
.ColumnName = "SELECTED",
|
||||||
.DataType = GetType(Boolean),
|
.DataType = GetType(Boolean),
|
||||||
@@ -96,7 +99,7 @@ Public Class frmLookupGrid
|
|||||||
For oIndex = 0 To viewLookup.DataRowCount - 1
|
For oIndex = 0 To viewLookup.DataRowCount - 1
|
||||||
Dim oRow As DataRow = _View.GetDataRow(oIndex)
|
Dim oRow As DataRow = _View.GetDataRow(oIndex)
|
||||||
Dim oSelected As Boolean = oRow.Item(0)
|
Dim oSelected As Boolean = oRow.Item(0)
|
||||||
Dim oValue As Object = oRow.Item(1)
|
Dim oValue As Object = GetValueFromRow(oRow)
|
||||||
|
|
||||||
If oSelected Then
|
If oSelected Then
|
||||||
oValues.Add(oValue)
|
oValues.Add(oValue)
|
||||||
@@ -115,7 +118,7 @@ Public Class frmLookupGrid
|
|||||||
Dim oValues As New List(Of String)
|
Dim oValues As New List(Of String)
|
||||||
|
|
||||||
If oRow IsNot Nothing Then
|
If oRow IsNot Nothing Then
|
||||||
Dim oValue = oRow.Item(0)
|
Dim oValue = GetValueFromRow(oRow)
|
||||||
oValues.Add(oValue)
|
oValues.Add(oValue)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@@ -123,6 +126,13 @@ Public Class frmLookupGrid
|
|||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Function GetValueFromRow(pRow As DataRow) As String
|
||||||
|
If MultiSelect Then
|
||||||
|
Return pRow.Item(1)
|
||||||
|
Else
|
||||||
|
Return pRow.Item(0)
|
||||||
|
End If
|
||||||
|
End Function
|
||||||
|
|
||||||
Private Sub SyncItemsWithView(view As GridView)
|
Private Sub SyncItemsWithView(view As GridView)
|
||||||
' Wenn Vorbelegungen existieren, werden diese angehakt
|
' Wenn Vorbelegungen existieren, werden diese angehakt
|
||||||
@@ -145,8 +155,6 @@ Public Class frmLookupGrid
|
|||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
|
||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
@@ -235,9 +243,15 @@ Public Class frmLookupGrid
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub viewLookup_ValidateRow(sender As Object, e As ValidateRowEventArgs) Handles viewLookup.ValidateRow
|
Private Sub viewLookup_ValidateRow(sender As Object, e As ValidateRowEventArgs) Handles viewLookup.ValidateRow
|
||||||
If MultiSelect And e.RowHandle = GridControl.NewItemRowHandle Then
|
If e.RowHandle = GridControl.NewItemRowHandle Then
|
||||||
Dim oRow As DataRowView = viewLookup.GetRow(e.RowHandle)
|
Dim oRowView As DataRowView = viewLookup.GetRow(e.RowHandle)
|
||||||
oRow.Row.Item("SELECTED") = True
|
Dim oValue = GetValueFromRow(oRowView.Row)
|
||||||
|
NewValues.Add(oValue)
|
||||||
|
|
||||||
|
' Automatically select newly added row when MultiSelect is enabled
|
||||||
|
If MultiSelect Then
|
||||||
|
oRowView.Row.Item(COLUMN_SELECTED) = True
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
End Class
|
End Class
|
||||||
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
|
|||||||
' indem Sie "*" wie unten gezeigt eingeben:
|
' indem Sie "*" wie unten gezeigt eingeben:
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
' <Assembly: AssemblyVersion("1.0.*")>
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("1.0.0.0")>
|
<Assembly: AssemblyVersion("1.0.1.0")>
|
||||||
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
<Assembly: AssemblyFileVersion("1.0.1.0")>
|
||||||
|
|||||||
@@ -9,18 +9,22 @@ Public Class frmLookup
|
|||||||
|
|
||||||
Dim LookupControl31 As New LookupControl3 With {
|
Dim LookupControl31 As New LookupControl3 With {
|
||||||
.Location = New Point(10, 10),
|
.Location = New Point(10, 10),
|
||||||
.Size = New Drawing.Size(100, 27)
|
.Size = New Size(300, 27)
|
||||||
}
|
}
|
||||||
Dim LookupControl32 As New LookupControl3 With {
|
Dim LookupControl32 As New LookupControl3 With {
|
||||||
.Location = New Point(10, 60),
|
.Location = New Point(10, 60),
|
||||||
.Size = New Drawing.Size(100, 27)
|
.Size = New Size(300, 27)
|
||||||
}
|
}
|
||||||
Dim LookupControl33 As New LookupControl3 With {
|
Dim LookupControl33 As New LookupControl3 With {
|
||||||
.Location = New Point(10, 110),
|
.Location = New Point(10, 110),
|
||||||
.Size = New Drawing.Size(100, 27)
|
.Size = New Size(300, 27)
|
||||||
|
}
|
||||||
|
Dim LookupControl34 As New LookupControl3 With {
|
||||||
|
.Location = New Point(10, 160),
|
||||||
|
.Size = New Size(300, 27)
|
||||||
}
|
}
|
||||||
|
|
||||||
Controls.AddRange({LookupControl31, LookupControl32, LookupControl33})
|
Controls.AddRange({LookupControl31, LookupControl32, LookupControl33, LookupControl34})
|
||||||
|
|
||||||
LookupControl31.Properties.DataSource = oTable
|
LookupControl31.Properties.DataSource = oTable
|
||||||
|
|
||||||
@@ -31,6 +35,10 @@ Public Class frmLookup
|
|||||||
|
|
||||||
LookupControl33.Properties.AllowAddNewValues = True
|
LookupControl33.Properties.AllowAddNewValues = True
|
||||||
LookupControl33.Properties.MultiSelect = True
|
LookupControl33.Properties.MultiSelect = True
|
||||||
|
LookupControl33.Properties.DataSource = oTable
|
||||||
|
|
||||||
|
LookupControl34.Properties.AllowAddNewValues = True
|
||||||
|
LookupControl34.Properties.MultiSelect = True
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Function GetDatatable(Limit As Integer) As DataTable
|
Private Function GetDatatable(Limit As Integer) As DataTable
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ Public Class ConfigManager(Of T)
|
|||||||
|
|
||||||
_WriteAllValuesToUserConfig = ForceUserConfig
|
_WriteAllValuesToUserConfig = ForceUserConfig
|
||||||
|
|
||||||
Config = LoadConfig()
|
_Config = LoadConfig()
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
''' <summary>
|
''' <summary>
|
||||||
@@ -145,6 +145,20 @@ Public Class ConfigManager(Of T)
|
|||||||
End Try
|
End Try
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Reloads the config object from file.
|
||||||
|
''' </summary>
|
||||||
|
''' <returns>True if reload was successful, False otherwise</returns>
|
||||||
|
Public Function Reload() As Boolean
|
||||||
|
Try
|
||||||
|
_Config = LoadConfig()
|
||||||
|
Return True
|
||||||
|
Catch ex As Exception
|
||||||
|
_Logger.Error(ex)
|
||||||
|
Return False
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
|
|
||||||
''' <summary>
|
''' <summary>
|
||||||
''' Copies all properties from Source to Target, except those who have an attribute
|
''' Copies all properties from Source to Target, except those who have an attribute
|
||||||
''' listed in ExcludedAttributeTypes
|
''' listed in ExcludedAttributeTypes
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ Imports System.Runtime.InteropServices
|
|||||||
<Assembly: AssemblyDescription("")>
|
<Assembly: AssemblyDescription("")>
|
||||||
<Assembly: AssemblyCompany("")>
|
<Assembly: AssemblyCompany("")>
|
||||||
<Assembly: AssemblyProduct("Modules.Config")>
|
<Assembly: AssemblyProduct("Modules.Config")>
|
||||||
<Assembly: AssemblyCopyright("Copyright © 2019")>
|
<Assembly: AssemblyCopyright("Copyright © 2021")>
|
||||||
<Assembly: AssemblyTrademark("")>
|
<Assembly: AssemblyTrademark("")>
|
||||||
|
|
||||||
<Assembly: ComVisible(False)>
|
<Assembly: ComVisible(False)>
|
||||||
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
|
|||||||
' übernehmen, indem Sie "*" eingeben:
|
' übernehmen, indem Sie "*" eingeben:
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
' <Assembly: AssemblyVersion("1.0.*")>
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("1.0.11.0")>
|
<Assembly: AssemblyVersion("1.1.0.0")>
|
||||||
<Assembly: AssemblyFileVersion("1.0.11.0")>
|
<Assembly: AssemblyFileVersion("1.1.0.0")>
|
||||||
|
|||||||
@@ -4,7 +4,10 @@
|
|||||||
</configSections>
|
</configSections>
|
||||||
<system.diagnostics>
|
<system.diagnostics>
|
||||||
<sources>
|
<sources>
|
||||||
<source name="System.ServiceModel" switchValue="Information,ActivityTracing" propagateActivity="true">
|
<source name="System.ServiceModel"
|
||||||
|
switchValue="Warning"
|
||||||
|
switchType="DigitalData.Services.EDMIService.TraceSwitch, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
|
||||||
|
propagateActivity="true">
|
||||||
<listeners>
|
<listeners>
|
||||||
<add name="xml" />
|
<add name="xml" />
|
||||||
</listeners>
|
</listeners>
|
||||||
|
|||||||
@@ -133,6 +133,7 @@
|
|||||||
<Compile Include="Helpers\Exceptions.vb" />
|
<Compile Include="Helpers\Exceptions.vb" />
|
||||||
<Compile Include="Helpers\DatabaseResult.vb" />
|
<Compile Include="Helpers\DatabaseResult.vb" />
|
||||||
<Compile Include="EDMIService.vb" />
|
<Compile Include="EDMIService.vb" />
|
||||||
|
<Compile Include="Helpers\TraceSwitch.vb" />
|
||||||
<Compile Include="Scheduler\Scheduler.vb" />
|
<Compile Include="Scheduler\Scheduler.vb" />
|
||||||
<Compile Include="Scheduler\DatatableJob.vb" />
|
<Compile Include="Scheduler\DatatableJob.vb" />
|
||||||
<Compile Include="Scheduler\JobListener.vb" />
|
<Compile Include="Scheduler\JobListener.vb" />
|
||||||
|
|||||||
34
Service.EDMIService/Helpers/TraceSwitch.vb
Normal file
34
Service.EDMIService/Helpers/TraceSwitch.vb
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
Public Class TraceSwitch
|
||||||
|
Inherits SourceSwitch
|
||||||
|
|
||||||
|
Public Sub New(Name As String)
|
||||||
|
MyBase.New("System.ServiceModel")
|
||||||
|
Level = SourceLevels.Information
|
||||||
|
WcfTracesController.Instance.LevelController = AddressOf WcfTracesLevelController
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Sub WcfTracesLevelController(ByVal level As SourceLevels)
|
||||||
|
Me.Level = level
|
||||||
|
End Sub
|
||||||
|
End Class
|
||||||
|
|
||||||
|
Public Class WcfTracesController
|
||||||
|
Private Shared Controller As WcfTracesController = Nothing
|
||||||
|
|
||||||
|
Private Sub New()
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Public Delegate Sub TraceLevelController(ByVal level As SourceLevels)
|
||||||
|
Public LevelController As TraceLevelController
|
||||||
|
|
||||||
|
Public Shared ReadOnly Property Instance As WcfTracesController
|
||||||
|
Get
|
||||||
|
|
||||||
|
If Controller Is Nothing Then
|
||||||
|
Controller = New WcfTracesController()
|
||||||
|
End If
|
||||||
|
|
||||||
|
Return Controller
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
End Class
|
||||||
@@ -9,15 +9,11 @@ Public Class ServiceHost(Of T)
|
|||||||
MyBase.New(GetType(T), baseAddresses)
|
MyBase.New(GetType(T), baseAddresses)
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Public Sub EnableMetadataExchange(ByVal Optional EnableHttpGet As Boolean = True)
|
Public Sub EnableMetadataExchange(ByVal Optional EnableHttpGet As Boolean = True)
|
||||||
If State = CommunicationState.Opened Then
|
If State = CommunicationState.Opened Then
|
||||||
Throw New InvalidOperationException("Host is already opened")
|
Throw New InvalidOperationException("Host is already opened")
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Dim oMetadataBehavior As ServiceMetadataBehavior = Description.Behaviors.Find(Of ServiceMetadataBehavior)()
|
Dim oMetadataBehavior As ServiceMetadataBehavior = Description.Behaviors.Find(Of ServiceMetadataBehavior)()
|
||||||
|
|
||||||
If oMetadataBehavior Is Nothing Then
|
If oMetadataBehavior Is Nothing Then
|
||||||
|
|||||||
@@ -63,6 +63,19 @@ Public Class WindowsService
|
|||||||
_Config = _ConfigManager.Config
|
_Config = _ConfigManager.Config
|
||||||
_LogConfig.Debug = _ConfigManager.Config.Debug
|
_LogConfig.Debug = _ConfigManager.Config.Debug
|
||||||
|
|
||||||
|
UpdateTraceLogging()
|
||||||
|
|
||||||
|
Dim oTimer As New Timers.Timer(60000)
|
||||||
|
AddHandler oTimer.Elapsed, Sub()
|
||||||
|
_Logger.Debug("Reloading config..")
|
||||||
|
_ConfigManager.Reload()
|
||||||
|
_Config = _ConfigManager.Config
|
||||||
|
_LogConfig.Debug = _ConfigManager.Config.Debug
|
||||||
|
|
||||||
|
UpdateTraceLogging()
|
||||||
|
End Sub
|
||||||
|
oTimer.Start()
|
||||||
|
|
||||||
_Logger.Debug("Connecting to Databases")
|
_Logger.Debug("Connecting to Databases")
|
||||||
|
|
||||||
_Firebird = StartFirebird()
|
_Firebird = StartFirebird()
|
||||||
@@ -119,6 +132,28 @@ Public Class WindowsService
|
|||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub UpdateTraceLogging()
|
||||||
|
Try
|
||||||
|
' Changing Tracelevels programmatically,
|
||||||
|
' See: https://wcfpro.wordpress.com/2010/11/21/how-to-add-wcf-traces-programmatically/
|
||||||
|
_Logger.Debug("UpdateTraceLogging running..")
|
||||||
|
_Logger.Debug("SourceLevels is off by default")
|
||||||
|
|
||||||
|
Dim oTraceLevel = SourceLevels.Off
|
||||||
|
|
||||||
|
_Logger.Debug("Debug is currently set to {0}", _ConfigManager.Config.Debug)
|
||||||
|
If _ConfigManager.Config.Debug Then
|
||||||
|
oTraceLevel = SourceLevels.Warning
|
||||||
|
End If
|
||||||
|
|
||||||
|
_Logger.Debug("Setting TraceLevel to {0}", oTraceLevel)
|
||||||
|
WcfTracesController.Instance.LevelController(oTraceLevel)
|
||||||
|
Catch ex As Exception
|
||||||
|
_Logger.Warn("TraceLogging could not be updated!")
|
||||||
|
_Logger.Error(ex)
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
|
||||||
Private Function StartFirebird() As Firebird
|
Private Function StartFirebird() As Firebird
|
||||||
_Logger.Debug("Connecting to Firebird")
|
_Logger.Debug("Connecting to Firebird")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user