Compare commits
3 Commits
c29c508224
...
55d7e025c9
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
55d7e025c9 | ||
|
|
2f64dc4b70 | ||
|
|
17ec4953e5 |
@@ -123,7 +123,6 @@
|
||||
<File Id="DDLogging" Name="DigitalData.Modules.Logging.dll" Source="DigitalData.Modules.Logging.dll"/>
|
||||
<File Id="DDInterfaces" Name="DigitalData.Modules.Interfaces.dll" Source="DigitalData.Modules.Interfaces.dll"/>
|
||||
<File Id="DDBase" Name="DigitalData.Modules.Base.dll" Source="DigitalData.Modules.Base.dll"/>
|
||||
<File Id="DDLanguage" Name="DigitalData.Modules.Language.dll" Source="DigitalData.Modules.Language.dll"/>
|
||||
<File Id="DDFilesystem" Name="DigitalData.Modules.Filesystem.dll" Source="DigitalData.Modules.Filesystem.dll"/>
|
||||
<File Id="DDEncryption" Name="DigitalData.Modules.Encryption.dll" Source="DigitalData.Modules.Encryption.dll"/>
|
||||
<File Id="DDWindream" Name="DigitalData.Modules.Windream.dll" Source="DigitalData.Modules.Windream.dll"/>
|
||||
@@ -277,14 +276,13 @@
|
||||
</RegistryKey>
|
||||
</RegistryKey>
|
||||
|
||||
<util:RemoveFolderEx Id="RemoveApplicationFolder" On="uninstall" Property="APPLICATIONFOLDER" />
|
||||
<util:RemoveFolderEx Id="RemoveApplicationFolder" On="uninstall" Property="INSTALLDIR" />
|
||||
</Component>
|
||||
</DirectoryRef>
|
||||
|
||||
<Feature Id="MainApplication" Title="Main Application" Level="1">
|
||||
<ComponentRef Id="MainApplicationExe" />
|
||||
<ComponentRef Id="RegistryKeys" />
|
||||
<!--<ComponentRef Id="ReleaseNotes" />-->
|
||||
<ComponentRef Id="WindreamLibs" />
|
||||
<ComponentRef Id="FormsUtilsLibs"/>
|
||||
<ComponentRef Id="DDLibs" />
|
||||
@@ -294,6 +292,7 @@
|
||||
<ComponentRef Id="DevExpressLibs" />
|
||||
<ComponentRef Id="GDPictureLibs" />
|
||||
<ComponentRef Id="Devexpress.Locales.de" />
|
||||
<ComponentRef Id="ProtocolHandlerMachine" />
|
||||
</Feature>
|
||||
|
||||
<Feature Id="DesktopShortcut" Title="Desktop Shortcut">
|
||||
@@ -305,7 +304,28 @@
|
||||
<Condition Level="0">DISABLE_STARTMENU_ICON</Condition>
|
||||
<ComponentRef Id="ApplicationShortcut_StartMenu" />
|
||||
</Feature>
|
||||
<!-- #######################-->
|
||||
<!-- Beginn Aufruf über Link-->
|
||||
<!-- Per-user ProtocolHandler (HKCU) -->
|
||||
<Component Id="ProtocolHandlerMachine" Guid="F2817163-DAAA-4EB2-A8D9-A9EF00E910C0" Directory="INSTALLDIR">
|
||||
<!-- Basis-Schlüssel -->
|
||||
<RegistryKey Root="HKLM" Key="Software\Classes\DDtaskFLOW" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes">
|
||||
<RegistryValue Type="string" Value="URL:ddtaskflow Protocol" KeyPath="yes"/>
|
||||
<RegistryValue Type="string" Name="URL Protocol" Value="" />
|
||||
</RegistryKey>
|
||||
|
||||
<!-- Icon -->
|
||||
<RegistryKey Root="HKLM" Key="Software\Classes\DDtaskFLOW\DefaultIcon" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes">
|
||||
<RegistryValue Type="string" Value="[INSTALLDIR]taskFLOW.exe,1" />
|
||||
</RegistryKey>
|
||||
|
||||
<!-- Kommando -->
|
||||
<RegistryKey Root="HKLM" Key="Software\Classes\DDtaskFLOW\shell\open\command" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes">
|
||||
<RegistryValue Type="string" Value=""[INSTALLDIR]taskFLOW.exe" "%1"" />
|
||||
</RegistryKey>
|
||||
</Component>
|
||||
<!-- Ende Aufruf über Link-->
|
||||
<!-- #######################-->
|
||||
<!-- Legt das Standard-Installationsverzeichnis fest-->
|
||||
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR" />
|
||||
<Property Id="_BrowseProperty" Value="INSTALLDIR" />
|
||||
|
||||
@@ -380,6 +380,7 @@ Public Class ClassInit
|
||||
LOGGER.Debug("User Info:")
|
||||
LOGGER.Debug("Language: [{0}]", USER_LANGUAGE)
|
||||
LOGGER.Debug("Username: [{0}]", USER_USERNAME)
|
||||
LOGGER.Debug("Environment.MachineName: [{0}]", Environment.MachineName)
|
||||
|
||||
Try
|
||||
USER_RIGHT_FILE_DELETE = IIf(IsDBNull(DT_CHECKUSER_MODULE.Rows(0).Item("USER_RIGHT_FILE_DEL")), False, DT_CHECKUSER_MODULE.Rows(0).Item("USER_RIGHT_FILE_DEL"))
|
||||
|
||||
@@ -343,6 +343,10 @@ Namespace ControlCreator
|
||||
Private Sub View_PopupMenuShowing(sender As Object, e As PopupMenuShowingEventArgs)
|
||||
Dim view As GridView = TryCast(sender, GridView)
|
||||
Dim oFocusedColumn As GridColumn = view.FocusedColumn
|
||||
If IsNothing(oFocusedColumn) Then
|
||||
MsgBox("Please focus a column first.", MsgBoxStyle.Information, "No Column focused")
|
||||
Exit Sub
|
||||
End If
|
||||
Dim oColumnType As Type = oFocusedColumn.ColumnType
|
||||
Dim oColumnName As String = oFocusedColumn.FieldName
|
||||
|
||||
|
||||
@@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices
|
||||
' übernehmen, indem Sie "*" eingeben:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("2.7.4.0")>
|
||||
<Assembly: AssemblyVersion("2.7.5.0")>
|
||||
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
||||
<Assembly: NeutralResourcesLanguage("")>
|
||||
|
||||
@@ -77,12 +77,12 @@
|
||||
<PropertyGroup>
|
||||
<ApplicationManifest>My Project\app.manifest</ApplicationManifest>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<GdPictureAssemblies Include="$(SolutionDir)lib\GdPicture14*.dll" />
|
||||
</ItemGroup>
|
||||
<Target Name="CopyGdPictureDlls" AfterTargets="Build">
|
||||
<Copy SourceFiles="@(GdPictureAssemblies)" DestinationFolder="$(TargetDir)" SkipUnchangedFiles="true" />
|
||||
</Target>
|
||||
<ItemGroup>
|
||||
<GdPictureAssemblies Include="$(SolutionDir)lib\GdPicture14*.dll" />
|
||||
</ItemGroup>
|
||||
<Target Name="CopyGdPictureDlls" AfterTargets="Build">
|
||||
<Copy SourceFiles="@(GdPictureAssemblies)" DestinationFolder="$(TargetDir)" SkipUnchangedFiles="true" />
|
||||
</Target>
|
||||
<ItemGroup>
|
||||
<Reference Include="BouncyCastle.Cryptography, Version=2.0.0.0, Culture=neutral, PublicKeyToken=072edcf4a5328938, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\BouncyCastle.Cryptography.2.5.0\lib\net461\BouncyCastle.Cryptography.dll</HintPath>
|
||||
@@ -1036,6 +1036,7 @@
|
||||
<None Include="FinalIndexDataSet.xss">
|
||||
<DependentUpon>FinalIndexDataSet.xsd</DependentUpon>
|
||||
</None>
|
||||
<None Include="frmValidator.v" />
|
||||
<None Include="My Project\app.manifest" />
|
||||
<None Include="My Project\Application.myapp">
|
||||
<Generator>MyApplicationCodeGenerator</Generator>
|
||||
|
||||
0
app/TaskFlow/frmValidator.v
Normal file
0
app/TaskFlow/frmValidator.v
Normal file
@@ -3585,28 +3585,53 @@ Public Class frmValidator
|
||||
For Each Zeile As Object In oValueFromSource
|
||||
MyValidationLogger.Debug($"vektorrow Value {Zeile.ToString}...")
|
||||
oColValuesfromSource = Split(Zeile, PMDelimiter)
|
||||
|
||||
Dim oNewRow = oDataSource.NewRow()
|
||||
MyValidationLogger.Debug("Creating new row..")
|
||||
|
||||
|
||||
For index = 0 To oDTColumnsPerDevExGrid.Rows.Count - 1
|
||||
MyValidationLogger.Debug("Column Index {0}", index)
|
||||
If oColValuesfromSource.Length > index Then
|
||||
MyValidationLogger.Debug("Value: {0}", oColValuesfromSource(index))
|
||||
oNewRow.Item(index) = oColValuesfromSource(index)
|
||||
Else
|
||||
MyValidationLogger.Debug("Value: String.Empty")
|
||||
oNewRow.Item(index) = String.Empty
|
||||
End If
|
||||
Dim rawValue As String = If(index < oColValuesfromSource.Length, oColValuesfromSource(index), String.Empty)
|
||||
Dim targetColumn As DataColumn = oDataSource.Columns(index)
|
||||
Dim colName As String = targetColumn.ColumnName
|
||||
Dim colType As String = targetColumn.DataType.FullName
|
||||
|
||||
' Detailliertes Debug vor der Zuweisung
|
||||
MyValidationLogger.Debug("Grid row assign: RowIdx={0}, ColIdx={1}, ColName={2}, ColType={3}, RawValue=[{4}], IsEmpty={5}",
|
||||
oDataSource.Rows.Count, index, colName, colType, rawValue, String.IsNullOrWhiteSpace(rawValue))
|
||||
|
||||
Try
|
||||
If oColValuesfromSource.Length > index Then
|
||||
oNewRow.Item(index) = oColValuesfromSource(index)
|
||||
Else
|
||||
If colType = "System.Double" Or colType = "System.Int32" Or colType = "System.Int64" Then
|
||||
' Numerische Spalten können nicht mit Empty befüllt werden
|
||||
oNewRow.Item(index) = 0
|
||||
Else
|
||||
oNewRow.Item(index) = String.Empty
|
||||
End If
|
||||
End If
|
||||
Catch ex As Exception
|
||||
' Ausführliches Logging bei Fehlern inkl. aktuell bekannter Metadaten
|
||||
MyValidationLogger.Warn("Grid row assign FAILED RowIdx = {0}, ColIdx={1}, ColName={2}, ColType={3}, RawValue=[{4}]",
|
||||
oDataSource.Rows.Count, index, colName, colType, rawValue)
|
||||
MyValidationLogger.Error(ex)
|
||||
' Optional: weitere Kontexthilfe – z.B. ob Spalte DBNull erlaubt
|
||||
Try
|
||||
MyValidationLogger.Debug("Column.AllowDBNull={0}, Column.MaxLength={1}", targetColumn.AllowDBNull, targetColumn.MaxLength)
|
||||
Catch
|
||||
End Try
|
||||
' Fehler weiterwerfen, damit ursprüngliches Verhalten erhalten bleibt
|
||||
Throw
|
||||
End Try
|
||||
Next
|
||||
MyValidationLogger.Debug("Adding row to grid..")
|
||||
MyValidationLogger.Debug("Adding row To grid..")
|
||||
oDataSource.Rows.Add(oNewRow)
|
||||
|
||||
|
||||
Next
|
||||
Else
|
||||
If oValueType = "System.String" Then
|
||||
MyValidationLogger.Debug($"IDB Fill Grid [{oControl.Name}] with String")
|
||||
MyValidationLogger.Debug($"IDB Fill Grid [{oControl.Name}] With String")
|
||||
MyValidationLogger.Debug($"oValueFromSource [{oValueFromSource}] - PMDelimiter[{PMDelimiter}]")
|
||||
|
||||
oColValuesfromSource = Split(oValueFromSource.ToString, PMDelimiter)
|
||||
@@ -3615,7 +3640,7 @@ Public Class frmValidator
|
||||
End If
|
||||
|
||||
Dim oRowData As New List(Of Object)
|
||||
MyValidationLogger.Debug(String.Format("Now creating the rows for DevexpressGrid ..."))
|
||||
MyValidationLogger.Debug(String.Format("Now creating the rows For DevexpressGrid ..."))
|
||||
Dim oMSG = ""
|
||||
Try
|
||||
For index = 1 To oColValuesfromSource.Length
|
||||
@@ -3628,9 +3653,9 @@ Public Class frmValidator
|
||||
oRowData.Add(oConvertedValue)
|
||||
Next
|
||||
Catch ex As Exception
|
||||
MyValidationLogger.Warn(String.Format("Unexpected error while working on IDB Fill GridControl: {0}", oControl.Name))
|
||||
MyValidationLogger.Warn(String.Format("Unexpected Error While working On IDB Fill GridControl {0}", oControl.Name))
|
||||
If Not oMSG = String.Empty Then
|
||||
MyValidationLogger.Warn(String.Format("oMSG: {0}", oMSG))
|
||||
MyValidationLogger.Warn(String.Format("oMSG {0}", oMSG))
|
||||
End If
|
||||
MyValidationLogger.Error(ex)
|
||||
End Try
|
||||
@@ -3641,14 +3666,14 @@ Public Class frmValidator
|
||||
|
||||
ElseIf oValueType = "System.Data.DataTable" Then
|
||||
Dim oMyDatatable As DataTable = oValueFromSource
|
||||
MyValidationLogger.Debug($"IDB Fill Grid [{oControl.Name}] with Datatable - Rows: " & oMyDatatable.Rows.Count)
|
||||
MyValidationLogger.Debug($"IDB Fill Grid [{oControl.Name}] With Datatable - Rows " & oMyDatatable.Rows.Count)
|
||||
For Each oRow As DataRow In oMyDatatable.Rows
|
||||
Try
|
||||
MyValidationLogger.Debug($"IDB ROW Vector {oRow.Item(0).ToString}...")
|
||||
oColValuesfromSource = Split(oRow.Item(0).ToString, PMDelimiter)
|
||||
|
||||
If oColValuesfromSource.Length > 8 Then
|
||||
MyValidationLogger.Warn("Fill Grid with DatatableSplit Error - Max 8 columns can be configured!")
|
||||
MyValidationLogger.Warn("Fill Grid With DatatableSplit Error - Max 8 columns can be configured!")
|
||||
End If
|
||||
MyValidationLogger.Debug($"oColValuesfromSource splitted - Length ({oColValuesfromSource.Length.ToString})")
|
||||
Dim oRowData As New List(Of Object)
|
||||
@@ -3656,16 +3681,16 @@ Public Class frmValidator
|
||||
For index = 1 To oColValuesfromSource.Length
|
||||
Try
|
||||
Dim oColumnType = oDTColumnsPerDevExGrid.Rows.Item(index - 1).Item("TYPE_COLUMN")
|
||||
MyValidationLogger.Debug($"oColumnType of DGView-Column ({oColumnType.ToString})...")
|
||||
MyValidationLogger.Debug($"oColumnType Of DGView-Column ({oColumnType.ToString})...")
|
||||
Dim oConvertedValue = ClassFormat.GetConvertedValue(oColValuesfromSource(index - 1), oColumnType)
|
||||
oRowData.Add(oConvertedValue)
|
||||
Catch ex As Exception
|
||||
MyValidationLogger.Warn($"Error while converting/adding Value to oRowData: " & ex.Message)
|
||||
MyValidationLogger.Warn($"Error While converting/adding Value To oRowData " & ex.Message)
|
||||
End Try
|
||||
Next
|
||||
oDataSource.Rows.Add(oRowData.ToArray())
|
||||
Catch ex As Exception
|
||||
MyValidationLogger.Warn($"Error while adding datarow [{oRow.Item(0).ToString}] to Grid: " & ex.Message)
|
||||
MyValidationLogger.Warn($"Error While adding datarow [{oRow.Item(0).ToString}] To Grid " & ex.Message)
|
||||
End Try
|
||||
|
||||
|
||||
@@ -3674,7 +3699,7 @@ Public Class frmValidator
|
||||
|
||||
End If
|
||||
Else
|
||||
MyValidationLogger.Info($"DevExpressGrid: There are no columns configured/listed for control {oControlId}.")
|
||||
MyValidationLogger.Info($"DevExpressGrid There are no columns configured/listed For control {oControlId}.")
|
||||
End If
|
||||
|
||||
Case Else
|
||||
@@ -3690,7 +3715,7 @@ Public Class frmValidator
|
||||
Next
|
||||
End Select
|
||||
Else
|
||||
MyValidationLogger.Warn($"Could not load Devexpress.Grid [{oControl.Name }] as omytype is [{oValueType}]!")
|
||||
MyValidationLogger.Warn($"Could Not load Devexpress.Grid [{oControl.Name }] As omytype Is [{oValueType}]!")
|
||||
|
||||
End If
|
||||
|
||||
@@ -3731,10 +3756,10 @@ Public Class frmValidator
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MyValidationLogger.Error(ex)
|
||||
MyValidationLogger.Info(">> Unexpected error in FillIndexValues(GridControl: " & oMyGridControl.Name & "): " & ex.Message, True)
|
||||
MyValidationLogger.Info(">> Controltype: " & oControlType)
|
||||
MyValidationLogger.Info(">> Attributname: " & oIndexName)
|
||||
errormessage = "Unexpected error in FillIndexValues(Combobox: " & oMyGridControl.Name & "): " & vbNewLine & ex.Message & vbNewLine & "Check Logfile"
|
||||
MyValidationLogger.Info(">> Unexpected Error In FillIndexValues(GridControl " & oMyGridControl.Name & ") " & ex.Message, True)
|
||||
MyValidationLogger.Info(">> Controltype " & oControlType)
|
||||
MyValidationLogger.Info(">> Attributname " & oIndexName)
|
||||
errormessage = "Unexpected Error In FillIndexValues(Combobox " & oMyGridControl.Name & ") " & vbNewLine & ex.Message & vbNewLine & "Check Logfile"
|
||||
My.Settings.Save()
|
||||
frmError.ShowDialog()
|
||||
End Try
|
||||
@@ -3744,15 +3769,15 @@ Public Class frmValidator
|
||||
MyValidationLogger.Debug("Loading checkbox...")
|
||||
oControlType = "CheckBox"
|
||||
If oSourceIndexName = "" Then
|
||||
MsgBox("Attention wrong configuration:" & vbNewLine & "for control " & oControl.Name & " no INDEX configured!" & vbNewLine & "Bitte prüfen Sie den Formulardesigner!", MsgBoxStyle.Critical, ADDITIONAL_TITLE)
|
||||
MsgBox("Attention wrong configuration" & vbNewLine & "For control " & oControl.Name & " no INDEX configured!" & vbNewLine & "Bitte prüfen Sie den Formulardesigner!", MsgBoxStyle.Critical, ADDITIONAL_TITLE)
|
||||
Exit For
|
||||
End If
|
||||
If oSourceIndexName Is Nothing = False Then
|
||||
|
||||
Dim myCheckBox As CheckBox = oControl
|
||||
|
||||
If oLoadIndex = False Or {"@@DISPLAY_ONLY", "DD PM-ONLY FOR DISPLAY"}.Contains(oSourceIndexName) Then
|
||||
MyValidationLogger.Debug($" oControl {oControl.Name}: Indexwert soll nicht geladen werden.")
|
||||
If oLoadIndex = False Or {"@@DISPLAY_ONLY", "DD PM-ONLY For DISPLAY"}.Contains(oSourceIndexName) Then
|
||||
MyValidationLogger.Debug($" oControl {oControl.Name} Indexwert soll nicht geladen werden.")
|
||||
Exit Select
|
||||
End If
|
||||
|
||||
@@ -3766,7 +3791,7 @@ Public Class frmValidator
|
||||
MyValidationLogger.Debug($"..Now GetVariableValue({oSourceIndexName})...")
|
||||
oValueFromSource = GetVariableValuefromSource(oSourceIndexName, oIDBTyp, oIDBOverride)
|
||||
Catch ex As Exception
|
||||
MyValidationLogger.Warn($"Could not get the windreamValue for CheckboxIndex: {oSourceIndexName} [{ex.Message}]")
|
||||
MyValidationLogger.Warn($"Could Not Get the windreamValue For CheckboxIndex {oSourceIndexName} [{ex.Message}]")
|
||||
End Try
|
||||
|
||||
End If
|
||||
@@ -3775,19 +3800,19 @@ Public Class frmValidator
|
||||
If oValueFromSource Is Nothing Then
|
||||
MyValidationLogger.Info(">> Zurückgegebener Wert des Wertes für Checkbox mit Indexname '" & oIndexName & "' ist nothing. Checking defaultvalue")
|
||||
MyValidationLogger.Debug(">> Zurückgegebener Wert des Wertes für Checkbox mit Indexname '" & oIndexName & "' ist nothing. Checking defaultvalue")
|
||||
If oDefaultValue <> String.Empty Then
|
||||
MyValidationLogger.Info($"Using Default value [{oDefaultValue}]")
|
||||
MyValidationLogger.Debug($"Using Default value [{oDefaultValue}]")
|
||||
myCheckBox.Checked = CBool(oDefaultValue)
|
||||
Exit Select
|
||||
Else
|
||||
MyValidationLogger.Debug("No Default Value for Checkbox - so using false!")
|
||||
myCheckBox.CheckState = CheckState.Indeterminate
|
||||
End If
|
||||
If oDefaultValue <> String.Empty Then
|
||||
MyValidationLogger.Info($"Using Default value [{oDefaultValue}]")
|
||||
MyValidationLogger.Debug($"Using Default value [{oDefaultValue}]")
|
||||
myCheckBox.Checked = CBool(oDefaultValue)
|
||||
Exit Select
|
||||
Else
|
||||
MyValidationLogger.Debug("No Default Value for Checkbox - so using false!")
|
||||
myCheckBox.CheckState = CheckState.Indeterminate
|
||||
End If
|
||||
|
||||
|
||||
Else
|
||||
MyValidationLogger.Debug("oValueFromSource: " & oValueFromSource.ToString)
|
||||
Else
|
||||
MyValidationLogger.Debug("oValueFromSource: " & oValueFromSource.ToString)
|
||||
If oValueFromSource.ToString = "" Then
|
||||
MyValidationLogger.Info(">> Versuch, default Value zu laden")
|
||||
If oDefaultValue <> String.Empty Then
|
||||
@@ -5700,12 +5725,20 @@ Public Class frmValidator
|
||||
Dim oValueList As New List(Of String)
|
||||
|
||||
For Each item As Object In oRow.ItemArray
|
||||
item = ObjectEx.NotNull(item, String.Empty)
|
||||
' Convert to string using InvariantCulture, so converting back from string does not screw up values
|
||||
If TypeOf item IsNot String Then
|
||||
item = String.Format(CultureInfo.InvariantCulture, "{0}", item)
|
||||
Dim normalized As Object = ObjectEx.NotNull(item, String.Empty)
|
||||
If TypeOf normalized Is IFormattable AndAlso Not TypeOf normalized Is String Then
|
||||
Dim provider As IFormatProvider =
|
||||
If(TypeOf normalized Is Decimal OrElse
|
||||
TypeOf normalized Is Double OrElse
|
||||
TypeOf normalized Is Single,
|
||||
CultureInfo.CurrentCulture,
|
||||
CultureInfo.InvariantCulture)
|
||||
MyValidationLogger.Debug("Normalizing value [{0}]", normalized.ToString)
|
||||
|
||||
normalized = DirectCast(normalized, IFormattable).ToString(Nothing, provider)
|
||||
End If
|
||||
oValueList.Add(item)
|
||||
|
||||
oValueList.Add(normalized)
|
||||
Next
|
||||
|
||||
str = String.Join(PMDelimiter, oValueList.ToArray)
|
||||
|
||||
1352
app/TaskFlow/taskFLOW.vbproj
Normal file
1352
app/TaskFlow/taskFLOW.vbproj
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user