diff --git a/ECM.JobRunner.Common/Connected Services/JobRunnerReference/DigitalData.Services.EDMIService.wsdl b/ECM.JobRunner.Common/Connected Services/JobRunnerReference/DigitalData.Services.EDMIService.wsdl
index 63c5aa9..e98d2fb 100644
--- a/ECM.JobRunner.Common/Connected Services/JobRunnerReference/DigitalData.Services.EDMIService.wsdl
+++ b/ECM.JobRunner.Common/Connected Services/JobRunnerReference/DigitalData.Services.EDMIService.wsdl
@@ -5,7 +5,6 @@
-
@@ -27,6 +26,12 @@
+
+
+
+
+
+
@@ -46,6 +51,10 @@
+
+
+
+
diff --git a/ECM.JobRunner.Common/Connected Services/JobRunnerReference/DigitalData.Services.EDMIService.xsd b/ECM.JobRunner.Common/Connected Services/JobRunnerReference/DigitalData.Services.EDMIService.xsd
index e0b3476..0ee9529 100644
--- a/ECM.JobRunner.Common/Connected Services/JobRunnerReference/DigitalData.Services.EDMIService.xsd
+++ b/ECM.JobRunner.Common/Connected Services/JobRunnerReference/DigitalData.Services.EDMIService.xsd
@@ -39,6 +39,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -47,7 +61,7 @@
-
+
diff --git a/ECM.JobRunner.Common/Connected Services/JobRunnerReference/ECM.JobRunner.Common.JobRunnerReference.UpdateProfileUpdateProfileResponse.datasource b/ECM.JobRunner.Common/Connected Services/JobRunnerReference/ECM.JobRunner.Common.JobRunnerReference.UpdateProfileUpdateProfileResponse.datasource
new file mode 100644
index 0000000..ee5c3b6
--- /dev/null
+++ b/ECM.JobRunner.Common/Connected Services/JobRunnerReference/ECM.JobRunner.Common.JobRunnerReference.UpdateProfileUpdateProfileResponse.datasource
@@ -0,0 +1,10 @@
+
+
+
+ ECM.JobRunner.Common.JobRunnerReference.UpdateProfileUpdateProfileResponse, Connected Services.JobRunnerReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
+
\ No newline at end of file
diff --git a/ECM.JobRunner.Common/Connected Services/JobRunnerReference/ECM.JobRunner.Common.xsd b/ECM.JobRunner.Common/Connected Services/JobRunnerReference/ECM.JobRunner.Common.xsd
deleted file mode 100644
index e364ff2..0000000
--- a/ECM.JobRunner.Common/Connected Services/JobRunnerReference/ECM.JobRunner.Common.xsd
+++ /dev/null
@@ -1,84 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/ECM.JobRunner.Common/Connected Services/JobRunnerReference/ECM.JobRunner.Windows.xsd b/ECM.JobRunner.Common/Connected Services/JobRunnerReference/ECM.JobRunner.Windows.xsd
index 871d11f..358e5fc 100644
--- a/ECM.JobRunner.Common/Connected Services/JobRunnerReference/ECM.JobRunner.Windows.xsd
+++ b/ECM.JobRunner.Common/Connected Services/JobRunnerReference/ECM.JobRunner.Windows.xsd
@@ -1,12 +1,13 @@
-
-
+
+
+
-
-
+
+
@@ -20,10 +21,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -35,6 +71,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -43,16 +98,141 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ECM.JobRunner.Common/Connected Services/JobRunnerReference/Reference.svcmap b/ECM.JobRunner.Common/Connected Services/JobRunnerReference/Reference.svcmap
index 4263f48..f9a0519 100644
--- a/ECM.JobRunner.Common/Connected Services/JobRunnerReference/Reference.svcmap
+++ b/ECM.JobRunner.Common/Connected Services/JobRunnerReference/Reference.svcmap
@@ -27,7 +27,6 @@
-
diff --git a/ECM.JobRunner.Common/Connected Services/JobRunnerReference/Reference.vb b/ECM.JobRunner.Common/Connected Services/JobRunnerReference/Reference.vb
index b4df94d..62b4fdc 100644
--- a/ECM.JobRunner.Common/Connected Services/JobRunnerReference/Reference.vb
+++ b/ECM.JobRunner.Common/Connected Services/JobRunnerReference/Reference.vb
@@ -21,6 +21,7 @@ Namespace JobRunnerReference
System.Runtime.Serialization.DataContractAttribute(Name:="Base.BaseResponse", [Namespace]:="http://schemas.datacontract.org/2004/07/ECM.JobRunner.Windows"), _
System.SerializableAttribute(), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(JobRunnerReference.UpdateJobUpdateJobResponse)), _
+ System.Runtime.Serialization.KnownTypeAttribute(GetType(JobRunnerReference.UpdateProfileUpdateProfileResponse)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(JobRunnerReference.GetJobConfigGetJobConfigResponse)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(JobRunnerReference.GetJobStatusGetJobStatusResponse))> _
Partial Public Class BaseBaseResponse
@@ -106,6 +107,14 @@ Namespace JobRunnerReference
Inherits JobRunnerReference.BaseBaseResponse
End Class
+ _
+ Partial Public Class UpdateProfileUpdateProfileResponse
+ Inherits JobRunnerReference.BaseBaseResponse
+ End Class
+
_
Private JobTypesField() As JobRunnerReference.JobType
+ _
+ Private ProfileDefinitionsField As JobRunnerReference.GetJobConfigGetJobConfigResponse.ProfileDefinitionConfig
+
_
Private WindreamObjectTypesField() As JobRunnerReference.ObjectType
@@ -148,6 +160,19 @@ Namespace JobRunnerReference
End Set
End Property
+ _
+ Public Property ProfileDefinitions() As JobRunnerReference.GetJobConfigGetJobConfigResponse.ProfileDefinitionConfig
+ Get
+ Return Me.ProfileDefinitionsField
+ End Get
+ Set
+ If (Object.ReferenceEquals(Me.ProfileDefinitionsField, value) <> true) Then
+ Me.ProfileDefinitionsField = value
+ Me.RaisePropertyChanged("ProfileDefinitions")
+ End If
+ End Set
+ End Property
+
_
Public Property WindreamObjectTypes() As JobRunnerReference.ObjectType()
Get
@@ -160,6 +185,52 @@ Namespace JobRunnerReference
End If
End Set
End Property
+
+ _
+ Partial Public Class ProfileDefinitionConfig
+ Inherits Object
+ Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
+
+ _
+ Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject
+
+ _
+ Private ImportProfilesField() As JobRunnerReference.ImportProfile
+
+ Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData
+ Get
+ Return Me.extensionDataField
+ End Get
+ Set
+ Me.extensionDataField = value
+ End Set
+ End Property
+
+ _
+ Public Property ImportProfiles() As JobRunnerReference.ImportProfile()
+ Get
+ Return Me.ImportProfilesField
+ End Get
+ Set
+ If (Object.ReferenceEquals(Me.ImportProfilesField, value) <> true) Then
+ Me.ImportProfilesField = value
+ Me.RaisePropertyChanged("ImportProfiles")
+ End If
+ End Set
+ End Property
+
+ Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged
+
+ Protected Sub RaisePropertyChanged(ByVal propertyName As String)
+ Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent
+ If (Not (propertyChanged) Is Nothing) Then
+ propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName))
+ End If
+ End Sub
+ End Class
End Class
_
Partial Public Class HistoryItem
Inherits Object
@@ -315,7 +386,7 @@ Namespace JobRunnerReference
_
Partial Public Class StatusItem
Inherits Object
@@ -474,7 +545,7 @@ Namespace JobRunnerReference
_
Partial Public Class JobDefinition
Inherits Object
@@ -601,7 +672,7 @@ Namespace JobRunnerReference
_
Partial Public Class JobType
Inherits Object
@@ -680,7 +751,7 @@ Namespace JobRunnerReference
_
Partial Public Class ObjectType
Inherits Object
@@ -741,6 +812,460 @@ Namespace JobRunnerReference
End Sub
End Class
+ _
+ Partial Public Class ImportProfile
+ Inherits JobRunnerReference.BaseProfile
+
+ _
+ Private ActiveField As Boolean
+
+ _
+ Private BackupFolderField As String
+
+ _
+ Private DeleteFilesField As Boolean
+
+ _
+ Private FileExcludeRegexField As String
+
+ _
+ Private IdField As Integer
+
+ _
+ Private IncludeSubfoldersField As Boolean
+
+ _
+ Private JobIdField As Integer
+
+ _
+ Private ObjectTypeNameField As String
+
+ _
+ Private SourceFolderField As String
+
+ _
+ Private StepsField() As JobRunnerReference.ImportProfileStep
+
+ _
+ Private SubfolderDateFormatField As String
+
+ _
+ Private TargetFolderField As String
+
+ _
+ Public Property Active() As Boolean
+ Get
+ Return Me.ActiveField
+ End Get
+ Set
+ If (Me.ActiveField.Equals(value) <> true) Then
+ Me.ActiveField = value
+ Me.RaisePropertyChanged("Active")
+ End If
+ End Set
+ End Property
+
+ _
+ Public Property BackupFolder() As String
+ Get
+ Return Me.BackupFolderField
+ End Get
+ Set
+ If (Object.ReferenceEquals(Me.BackupFolderField, value) <> true) Then
+ Me.BackupFolderField = value
+ Me.RaisePropertyChanged("BackupFolder")
+ End If
+ End Set
+ End Property
+
+ _
+ Public Property DeleteFiles() As Boolean
+ Get
+ Return Me.DeleteFilesField
+ End Get
+ Set
+ If (Me.DeleteFilesField.Equals(value) <> true) Then
+ Me.DeleteFilesField = value
+ Me.RaisePropertyChanged("DeleteFiles")
+ End If
+ End Set
+ End Property
+
+ _
+ Public Property FileExcludeRegex() As String
+ Get
+ Return Me.FileExcludeRegexField
+ End Get
+ Set
+ If (Object.ReferenceEquals(Me.FileExcludeRegexField, value) <> true) Then
+ Me.FileExcludeRegexField = value
+ Me.RaisePropertyChanged("FileExcludeRegex")
+ End If
+ End Set
+ End Property
+
+ _
+ Public Property Id() As Integer
+ Get
+ Return Me.IdField
+ End Get
+ Set
+ If (Me.IdField.Equals(value) <> true) Then
+ Me.IdField = value
+ Me.RaisePropertyChanged("Id")
+ End If
+ End Set
+ End Property
+
+ _
+ Public Property IncludeSubfolders() As Boolean
+ Get
+ Return Me.IncludeSubfoldersField
+ End Get
+ Set
+ If (Me.IncludeSubfoldersField.Equals(value) <> true) Then
+ Me.IncludeSubfoldersField = value
+ Me.RaisePropertyChanged("IncludeSubfolders")
+ End If
+ End Set
+ End Property
+
+ _
+ Public Property JobId() As Integer
+ Get
+ Return Me.JobIdField
+ End Get
+ Set
+ If (Me.JobIdField.Equals(value) <> true) Then
+ Me.JobIdField = value
+ Me.RaisePropertyChanged("JobId")
+ End If
+ End Set
+ End Property
+
+ _
+ Public Property ObjectTypeName() As String
+ Get
+ Return Me.ObjectTypeNameField
+ End Get
+ Set
+ If (Object.ReferenceEquals(Me.ObjectTypeNameField, value) <> true) Then
+ Me.ObjectTypeNameField = value
+ Me.RaisePropertyChanged("ObjectTypeName")
+ End If
+ End Set
+ End Property
+
+ _
+ Public Property SourceFolder() As String
+ Get
+ Return Me.SourceFolderField
+ End Get
+ Set
+ If (Object.ReferenceEquals(Me.SourceFolderField, value) <> true) Then
+ Me.SourceFolderField = value
+ Me.RaisePropertyChanged("SourceFolder")
+ End If
+ End Set
+ End Property
+
+ _
+ Public Property Steps() As JobRunnerReference.ImportProfileStep()
+ Get
+ Return Me.StepsField
+ End Get
+ Set
+ If (Object.ReferenceEquals(Me.StepsField, value) <> true) Then
+ Me.StepsField = value
+ Me.RaisePropertyChanged("Steps")
+ End If
+ End Set
+ End Property
+
+ _
+ Public Property SubfolderDateFormat() As String
+ Get
+ Return Me.SubfolderDateFormatField
+ End Get
+ Set
+ If (Object.ReferenceEquals(Me.SubfolderDateFormatField, value) <> true) Then
+ Me.SubfolderDateFormatField = value
+ Me.RaisePropertyChanged("SubfolderDateFormat")
+ End If
+ End Set
+ End Property
+
+ _
+ Public Property TargetFolder() As String
+ Get
+ Return Me.TargetFolderField
+ End Get
+ Set
+ If (Object.ReferenceEquals(Me.TargetFolderField, value) <> true) Then
+ Me.TargetFolderField = value
+ Me.RaisePropertyChanged("TargetFolder")
+ End If
+ End Set
+ End Property
+ End Class
+
+ _
+ Partial Public Class BaseProfile
+ Inherits Object
+ Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
+
+ _
+ Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject
+
+ _
+ Private JobField As JobRunnerReference.JobDefinition
+
+ _
+ Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData
+ Get
+ Return Me.extensionDataField
+ End Get
+ Set
+ Me.extensionDataField = value
+ End Set
+ End Property
+
+ _
+ Public Property Job() As JobRunnerReference.JobDefinition
+ Get
+ Return Me.JobField
+ End Get
+ Set
+ If (Object.ReferenceEquals(Me.JobField, value) <> true) Then
+ Me.JobField = value
+ Me.RaisePropertyChanged("Job")
+ End If
+ End Set
+ End Property
+
+ Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged
+
+ Protected Sub RaisePropertyChanged(ByVal propertyName As String)
+ Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent
+ If (Not (propertyChanged) Is Nothing) Then
+ propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName))
+ End If
+ End Sub
+ End Class
+
+ _
+ Partial Public Class ImportProfileStep
+ Inherits Object
+ Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
+
+ _
+ Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject
+
+ _
+ Private ActiveField As Boolean
+
+ _
+ Private Argument1Field As String
+
+ _
+ Private Argument2Field As String
+
+ _
+ Private Argument3Field As String
+
+ _
+ Private IdField As Integer
+
+ _
+ Private IndexNameField As String
+
+ _
+ Private MethodField As JobRunnerReference.ImportProfileStep.StepMethod
+
+ _
+ Private ProfileIdField As Integer
+
+ _
+ Private ScopeField As JobRunnerReference.ImportProfileStep.StepScope
+
+ _
+ Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData
+ Get
+ Return Me.extensionDataField
+ End Get
+ Set
+ Me.extensionDataField = value
+ End Set
+ End Property
+
+ _
+ Public Property Active() As Boolean
+ Get
+ Return Me.ActiveField
+ End Get
+ Set
+ If (Me.ActiveField.Equals(value) <> true) Then
+ Me.ActiveField = value
+ Me.RaisePropertyChanged("Active")
+ End If
+ End Set
+ End Property
+
+ _
+ Public Property Argument1() As String
+ Get
+ Return Me.Argument1Field
+ End Get
+ Set
+ If (Object.ReferenceEquals(Me.Argument1Field, value) <> true) Then
+ Me.Argument1Field = value
+ Me.RaisePropertyChanged("Argument1")
+ End If
+ End Set
+ End Property
+
+ _
+ Public Property Argument2() As String
+ Get
+ Return Me.Argument2Field
+ End Get
+ Set
+ If (Object.ReferenceEquals(Me.Argument2Field, value) <> true) Then
+ Me.Argument2Field = value
+ Me.RaisePropertyChanged("Argument2")
+ End If
+ End Set
+ End Property
+
+ _
+ Public Property Argument3() As String
+ Get
+ Return Me.Argument3Field
+ End Get
+ Set
+ If (Object.ReferenceEquals(Me.Argument3Field, value) <> true) Then
+ Me.Argument3Field = value
+ Me.RaisePropertyChanged("Argument3")
+ End If
+ End Set
+ End Property
+
+ _
+ Public Property Id() As Integer
+ Get
+ Return Me.IdField
+ End Get
+ Set
+ If (Me.IdField.Equals(value) <> true) Then
+ Me.IdField = value
+ Me.RaisePropertyChanged("Id")
+ End If
+ End Set
+ End Property
+
+ _
+ Public Property IndexName() As String
+ Get
+ Return Me.IndexNameField
+ End Get
+ Set
+ If (Object.ReferenceEquals(Me.IndexNameField, value) <> true) Then
+ Me.IndexNameField = value
+ Me.RaisePropertyChanged("IndexName")
+ End If
+ End Set
+ End Property
+
+ _
+ Public Property Method() As JobRunnerReference.ImportProfileStep.StepMethod
+ Get
+ Return Me.MethodField
+ End Get
+ Set
+ If (Me.MethodField.Equals(value) <> true) Then
+ Me.MethodField = value
+ Me.RaisePropertyChanged("Method")
+ End If
+ End Set
+ End Property
+
+ _
+ Public Property ProfileId() As Integer
+ Get
+ Return Me.ProfileIdField
+ End Get
+ Set
+ If (Me.ProfileIdField.Equals(value) <> true) Then
+ Me.ProfileIdField = value
+ Me.RaisePropertyChanged("ProfileId")
+ End If
+ End Set
+ End Property
+
+ _
+ Public Property Scope() As JobRunnerReference.ImportProfileStep.StepScope
+ Get
+ Return Me.ScopeField
+ End Get
+ Set
+ If (Me.ScopeField.Equals(value) <> true) Then
+ Me.ScopeField = value
+ Me.RaisePropertyChanged("Scope")
+ End If
+ End Set
+ End Property
+
+ Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged
+
+ Protected Sub RaisePropertyChanged(ByVal propertyName As String)
+ Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent
+ If (Not (propertyChanged) Is Nothing) Then
+ propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName))
+ End If
+ End Sub
+
+ _
+ Public Enum StepMethod As Integer
+
+ _
+ SUBSTRING = 0
+
+ _
+ REGEX = 1
+
+ _
+ SPLIT = 2
+
+ _
+ ALL = 3
+
+ _
+ VALUE = 4
+ End Enum
+
+ _
+ Public Enum StepScope As Integer
+
+ _
+ FILE = 0
+
+ _
+ FOLDER = 1
+ End Enum
+ End Class
+
_
+ Partial Public Class UpdateProfileUpdateProfileRequest
+ Inherits Object
+ Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
+
+ _
+ Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject
+
+ _
+ Private ActionField As JobRunnerReference.UpdateProfileUpdateProfileRequest.UpdateProfileAction
+
+ _
+ Private ImportProfileField As JobRunnerReference.ImportProfile
+
+ _
+ Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData
+ Get
+ Return Me.extensionDataField
+ End Get
+ Set
+ Me.extensionDataField = value
+ End Set
+ End Property
+
+ _
+ Public Property Action() As JobRunnerReference.UpdateProfileUpdateProfileRequest.UpdateProfileAction
+ Get
+ Return Me.ActionField
+ End Get
+ Set
+ If (Me.ActionField.Equals(value) <> true) Then
+ Me.ActionField = value
+ Me.RaisePropertyChanged("Action")
+ End If
+ End Set
+ End Property
+
+ _
+ Public Property ImportProfile() As JobRunnerReference.ImportProfile
+ Get
+ Return Me.ImportProfileField
+ End Get
+ Set
+ If (Object.ReferenceEquals(Me.ImportProfileField, value) <> true) Then
+ Me.ImportProfileField = value
+ Me.RaisePropertyChanged("ImportProfile")
+ End If
+ End Set
+ End Property
+
+ Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged
+
+ Protected Sub RaisePropertyChanged(ByVal propertyName As String)
+ Dim propertyChanged As System.ComponentModel.PropertyChangedEventHandler = Me.PropertyChangedEvent
+ If (Not (propertyChanged) Is Nothing) Then
+ propertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs(propertyName))
+ End If
+ End Sub
+
+ _
+ Public Enum UpdateProfileAction As Integer
+
+ _
+ Create = 0
+
+ _
+ Update = 1
+
+ _
+ Delete = 2
+ End Enum
+ End Class
+
_
Public Interface IEDMIService
@@ -840,6 +1442,12 @@ Namespace JobRunnerReference
_
Function UpdateJobAsync(ByVal pData As JobRunnerReference.UpdateJobUpdateJobRequest) As System.Threading.Tasks.Task(Of JobRunnerReference.UpdateJobUpdateJobResponse)
+ _
+ Function UpdateProfile(ByVal pData As JobRunnerReference.UpdateProfileUpdateProfileRequest) As JobRunnerReference.UpdateProfileUpdateProfileResponse
+
+ _
+ Function UpdateProfileAsync(ByVal pData As JobRunnerReference.UpdateProfileUpdateProfileRequest) As System.Threading.Tasks.Task(Of JobRunnerReference.UpdateProfileUpdateProfileResponse)
+
_
Function GetJobConfig() As JobRunnerReference.GetJobConfigGetJobConfigResponse
@@ -902,6 +1510,14 @@ Namespace JobRunnerReference
Return MyBase.Channel.UpdateJobAsync(pData)
End Function
+ Public Function UpdateProfile(ByVal pData As JobRunnerReference.UpdateProfileUpdateProfileRequest) As JobRunnerReference.UpdateProfileUpdateProfileResponse Implements JobRunnerReference.IEDMIService.UpdateProfile
+ Return MyBase.Channel.UpdateProfile(pData)
+ End Function
+
+ Public Function UpdateProfileAsync(ByVal pData As JobRunnerReference.UpdateProfileUpdateProfileRequest) As System.Threading.Tasks.Task(Of JobRunnerReference.UpdateProfileUpdateProfileResponse) Implements JobRunnerReference.IEDMIService.UpdateProfileAsync
+ Return MyBase.Channel.UpdateProfileAsync(pData)
+ End Function
+
Public Function GetJobConfig() As JobRunnerReference.GetJobConfigGetJobConfigResponse Implements JobRunnerReference.IEDMIService.GetJobConfig
Return MyBase.Channel.GetJobConfig
End Function
diff --git a/ECM.JobRunner.Common/Connected Services/JobRunnerReference/configuration.svcinfo b/ECM.JobRunner.Common/Connected Services/JobRunnerReference/configuration.svcinfo
index dc9f80d..0584ed4 100644
--- a/ECM.JobRunner.Common/Connected Services/JobRunnerReference/configuration.svcinfo
+++ b/ECM.JobRunner.Common/Connected Services/JobRunnerReference/configuration.svcinfo
@@ -5,6 +5,6 @@
-
+
\ No newline at end of file
diff --git a/ECM.JobRunner.Common/Connected Services/JobRunnerReference/configuration91.svcinfo b/ECM.JobRunner.Common/Connected Services/JobRunnerReference/configuration91.svcinfo
index bd846f0..49b08fa 100644
--- a/ECM.JobRunner.Common/Connected Services/JobRunnerReference/configuration91.svcinfo
+++ b/ECM.JobRunner.Common/Connected Services/JobRunnerReference/configuration91.svcinfo
@@ -1,5 +1,5 @@
-
+
@@ -150,14 +150,14 @@
System.ServiceModel.Configuration.UserPrincipalNameElement
-
-
+
+ Administrator@dd-san01.dd-gan.local.digitaldata.worksSystem.ServiceModel.Configuration.ServicePrincipalNameElement
-
- host/sDD-VMP03-VM09.dd-san01.dd-gan.local.digitaldata.works
+
+ System.ServiceModel.Configuration.DnsElement
diff --git a/ECM.JobRunner.Common/Connected Services/JobRunnerReference/service.wsdl b/ECM.JobRunner.Common/Connected Services/JobRunnerReference/service.wsdl
index b4d0d27..e527ae0 100644
--- a/ECM.JobRunner.Common/Connected Services/JobRunnerReference/service.wsdl
+++ b/ECM.JobRunner.Common/Connected Services/JobRunnerReference/service.wsdl
@@ -68,6 +68,15 @@
+
+
+
+
+
+
+
+
+
@@ -84,7 +93,7 @@
net.tcp://localhost:9001/DigitalData/Services/JobRunner
- host/sDD-VMP03-VM09.dd-san01.dd-gan.local.digitaldata.works
+ Administrator@dd-san01.dd-gan.local.digitaldata.works
diff --git a/ECM.JobRunner.Common/ECM.JobRunner.Common.vbproj b/ECM.JobRunner.Common/ECM.JobRunner.Common.vbproj
index 85831db..23fd6f7 100644
--- a/ECM.JobRunner.Common/ECM.JobRunner.Common.vbproj
+++ b/ECM.JobRunner.Common/ECM.JobRunner.Common.vbproj
@@ -71,11 +71,6 @@
TrueReference.svcmap
-
-
-
-
- True
@@ -91,7 +86,6 @@
Settings.settingsTrue
-
@@ -119,8 +113,8 @@
Reference.svcmap
-
- Designer
+
+ Reference.svcmapDesigner
diff --git a/ECM.JobRunner.Common/JobConfig/JobDefinition.vb b/ECM.JobRunner.Common/JobConfig/JobDefinition.vb
deleted file mode 100644
index d759dd7..0000000
--- a/ECM.JobRunner.Common/JobConfig/JobDefinition.vb
+++ /dev/null
@@ -1,8 +0,0 @@
-Public Class JobDefinition
- Public Id As Integer
- Public TypeId As Integer
- Public Type As JobType
- Public Name As String
- Public CronSchedule As String
- Public Active As Boolean
-End Class
diff --git a/ECM.JobRunner.Common/app.config b/ECM.JobRunner.Common/app.config
index b9c2d02..7757495 100644
--- a/ECM.JobRunner.Common/app.config
+++ b/ECM.JobRunner.Common/app.config
@@ -39,7 +39,7 @@
binding="netTcpBinding" bindingConfiguration="NetTcpBinding_IEDMIService"
contract="JobRunnerReference.IEDMIService" name="NetTcpBinding_IEDMIService">
-
+
diff --git a/ECM.JobRunner.Web/Components/Job/JobForm.razor b/ECM.JobRunner.Web/Components/Job/JobForm.razor
deleted file mode 100644
index b25f541..0000000
--- a/ECM.JobRunner.Web/Components/Job/JobForm.razor
+++ /dev/null
@@ -1,95 +0,0 @@
-@using ECM.JobRunner.Common.JobRunnerReference;
-@using ECM.JobRunner.Web.Data;
-@inject JobService Jobs;
-
-@if (job == null)
-{
-
Form loading..
-}
-else
-{
-
-
-
-
-
-
-
-
Die Datenbank Id des Jobs.
-
-
-
-
-
Der Name des Jobs. Wird in der Übersicht angezeigt.
diff --git a/ECM.JobRunner.Windows/ECM.JobRunner.Windows.vbproj b/ECM.JobRunner.Windows/ECM.JobRunner.Windows.vbproj
index 9c81f1c..93a635d 100644
--- a/ECM.JobRunner.Windows/ECM.JobRunner.Windows.vbproj
+++ b/ECM.JobRunner.Windows/ECM.JobRunner.Windows.vbproj
@@ -80,6 +80,7 @@
..\packages\Quartz.3.5.0\lib\net462\Quartz.dll
+
@@ -117,6 +118,14 @@
+
+
+
+
+
+
+
+ TrueApplication.myapp
@@ -160,6 +169,7 @@
+
diff --git a/ECM.JobRunner.Common/JobHistory/HistoryItem.vb b/ECM.JobRunner.Windows/Models/Jobs/HistoryItem.vb
similarity index 100%
rename from ECM.JobRunner.Common/JobHistory/HistoryItem.vb
rename to ECM.JobRunner.Windows/Models/Jobs/HistoryItem.vb
diff --git a/ECM.JobRunner.Windows/Models/Jobs/JobDefinition.vb b/ECM.JobRunner.Windows/Models/Jobs/JobDefinition.vb
new file mode 100644
index 0000000..867fecb
--- /dev/null
+++ b/ECM.JobRunner.Windows/Models/Jobs/JobDefinition.vb
@@ -0,0 +1,20 @@
+Imports System.ComponentModel.DataAnnotations
+
+Public Class JobDefinition
+
+ Public Id As Integer = -1
+
+
+ Public TypeId As Integer
+ Public Type As JobType
+
+
+
+ Public Name As String
+
+
+
+ Public CronSchedule As String
+
+ Public Active As Boolean
+End Class
diff --git a/ECM.JobRunner.Common/JobConfig/JobType.vb b/ECM.JobRunner.Windows/Models/Jobs/JobType.vb
similarity index 100%
rename from ECM.JobRunner.Common/JobConfig/JobType.vb
rename to ECM.JobRunner.Windows/Models/Jobs/JobType.vb
diff --git a/ECM.JobRunner.Common/JobStatus/StatusItem.vb b/ECM.JobRunner.Windows/Models/Jobs/StatusItem.vb
similarity index 100%
rename from ECM.JobRunner.Common/JobStatus/StatusItem.vb
rename to ECM.JobRunner.Windows/Models/Jobs/StatusItem.vb
diff --git a/ECM.JobRunner.Windows/Models/Profiles/BaseProfile.vb b/ECM.JobRunner.Windows/Models/Profiles/BaseProfile.vb
new file mode 100644
index 0000000..ac3ad9e
--- /dev/null
+++ b/ECM.JobRunner.Windows/Models/Profiles/BaseProfile.vb
@@ -0,0 +1,3 @@
+Public Class BaseProfile
+ Public Property Job As New JobDefinition
+End Class
diff --git a/ECM.JobRunner.Common/ProfileConfig/ImportProfile.vb b/ECM.JobRunner.Windows/Models/Profiles/ImportProfile.vb
similarity index 52%
rename from ECM.JobRunner.Common/ProfileConfig/ImportProfile.vb
rename to ECM.JobRunner.Windows/Models/Profiles/ImportProfile.vb
index ecc0d85..5d13778 100644
--- a/ECM.JobRunner.Common/ProfileConfig/ImportProfile.vb
+++ b/ECM.JobRunner.Windows/Models/Profiles/ImportProfile.vb
@@ -1,15 +1,36 @@
-Public Class ImportProfile
- Public Property Id As Integer
- Public Property JobId As Integer
+Imports System.ComponentModel.DataAnnotations
+Public Class ImportProfile
+ Inherits BaseProfile
+
+ Public Property Active As Boolean
+
+
+ Public Property Id As Integer
+
+ Public Property JobId As Integer
+
Public Property ObjectTypeName As String
+
+
Public Property SourceFolder As String
+
+
+
Public Property TargetFolder As String
+
+
Public Property BackupFolder As String
+
+
Public Property SubfolderDateFormat As String
+
Public Property FileExcludeRegex As String
+
Public Property DeleteFiles As Boolean
Public Property IncludeSubfolders As Boolean
+
+ Public Property Steps As New List(Of ImportProfileStep)
End Class
diff --git a/ECM.JobRunner.Windows/Models/Profiles/ImportProfileStep.vb b/ECM.JobRunner.Windows/Models/Profiles/ImportProfileStep.vb
new file mode 100644
index 0000000..bf0e94f
--- /dev/null
+++ b/ECM.JobRunner.Windows/Models/Profiles/ImportProfileStep.vb
@@ -0,0 +1,26 @@
+Public Class ImportProfileStep
+ Public Property Active As Boolean
+ Public Property Id As Integer
+ Public Property ProfileId As Integer
+ Public Property IndexName As String
+ Public Property Scope As StepScope
+ Public Property Method As StepMethod
+ Public Property Argument1 As String
+ Public Property Argument2 As String
+ Public Property Argument3 As String
+
+ Public Enum StepMethod
+ SUBSTRING
+ REGEX
+ SPLIT
+ ALL
+ VALUE
+ End Enum
+
+ Public Enum StepScope
+ FILE
+ FOLDER
+ End Enum
+End Class
+
+
diff --git a/ECM.JobRunner.Common/Windream/ObjectType.vb b/ECM.JobRunner.Windows/Models/Windream/ObjectType.vb
similarity index 100%
rename from ECM.JobRunner.Common/Windream/ObjectType.vb
rename to ECM.JobRunner.Windows/Models/Windream/ObjectType.vb
diff --git a/ECM.JobRunner.Windows/Scheduler/Jobs/FileImportJob.vb b/ECM.JobRunner.Windows/Scheduler/Jobs/FileImportJob.vb
index 9b4bb63..94d9136 100644
--- a/ECM.JobRunner.Windows/Scheduler/Jobs/FileImportJob.vb
+++ b/ECM.JobRunner.Windows/Scheduler/Jobs/FileImportJob.vb
@@ -67,6 +67,8 @@ Namespace Scheduler.Jobs
Return Task.FromResult(True)
End If
+ Logger.Info("[0] files found in source directory [{1}]", oFiles.Count, oSourceDirectory)
+
'Dim oMax = 100
'For index = 1 To oMax
' UpdateProgress(index, oMax)
diff --git a/ECM.JobRunner.Windows/State.vb b/ECM.JobRunner.Windows/State.vb
index cad19c9..c1fbfef 100644
--- a/ECM.JobRunner.Windows/State.vb
+++ b/ECM.JobRunner.Windows/State.vb
@@ -2,7 +2,6 @@
Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Language
-Imports ECM.JobRunner.Common
Imports ECM.JobRunner.Windows.Scheduler
Imports DigitalData.Modules.Windream
@@ -17,13 +16,12 @@ Public Class State
Public ReadOnly Property JobTypes As New List(Of JobType)
Public ReadOnly Property ObjectTypes As New List(Of ObjectType)
-
Public ReadOnly Property JobDefinitions As New List(Of JobDefinition)
-
Public ReadOnly Property ProfileDefintions As New ProfileDefinitions
Public Class ProfileDefinitions
Public Property ImportProfiles As New List(Of ImportProfile)
+ Public Property ImportProfileSteps As New List(Of ImportProfileStep)
End Class
Public Sub New(pLogConfig As LogConfig, pDatabase As MSSQLServer, pWindream As Windream)
@@ -45,6 +43,7 @@ Public Class State
_ObjectTypes = GetObjectTypes()
_JobDefinitions = GetJobDefinitions(_JobTypes)
+ _ProfileDefintions.ImportProfileSteps = GetImportProfileSteps()
_ProfileDefintions.ImportProfiles = GetImportProfiles()
End Sub
@@ -89,7 +88,7 @@ Public Class State
Try
Logger.Info("Loading Job Types..")
- Dim oSQL As String = "SELECT * FROM TBECM_JR_TYPE WHERE ACTIVE = 1"
+ Dim oSQL As String = "SELECT * FROM TBECM_JR_TYPE"
Dim oTable As DataTable = Database.GetDatatable(oSQL)
If oTable Is Nothing Then
@@ -119,33 +118,113 @@ Public Class State
End Try
End Function
+ Private Function GetImportProfileSteps() As List(Of ImportProfileStep)
+ Dim oSteps As New List(Of ImportProfileStep)
+
+ Try
+ Logger.Info("Loading Import Profiles Steps..")
+
+ Dim oSQL As String = "SELECT * FROM TBECM_JR_FIW_STEP"
+ Dim oTable As DataTable = Database.GetDatatable(oSQL)
+
+ If oTable Is Nothing Then
+ Logger.Warn("Database Error while loading Import Profile Steps!")
+ Return oSteps
+ End If
+
+ Logger.Info("[{0}] Import Profile Steps loaded!", oTable.Rows.Count)
+
+
+ For Each oRow As DataRow In oTable.Rows
+ Dim oTypeId = oRow.ItemEx("PROFILE_ID", 0)
+
+ Dim oScope As ImportProfileStep.StepScope
+ Select Case oRow.ItemEx("SCOPE", "FILE")
+ Case "FOLDER"
+ oScope = ImportProfileStep.StepScope.FOLDER
+ Case "FILE"
+ oScope = ImportProfileStep.StepScope.FILE
+ End Select
+
+ Dim oMethod As ImportProfileStep.StepMethod
+ Select Case oRow.ItemEx("METHOD", "ALL")
+ Case "SUBSTRING"
+ oScope = ImportProfileStep.StepMethod.SUBSTRING
+
+ Case "SPLIT"
+ oScope = ImportProfileStep.StepMethod.SPLIT
+
+ Case "REGEX"
+ oScope = ImportProfileStep.StepMethod.REGEX
+
+ Case "STATIC"
+ oScope = ImportProfileStep.StepMethod.VALUE
+
+ Case Else
+ oScope = ImportProfileStep.StepMethod.ALL
+ End Select
+
+ Dim oStep As New ImportProfileStep With {
+ .Id = oRow.ItemEx("GUID", 0),
+ .ProfileId = oRow.ItemEx("PROFILE_ID", 0),
+ .IndexName = oRow.Item("IDX_NAME"),
+ .Method = oMethod,
+ .Argument1 = oRow.ItemEx("ARGUMENT1", ""),
+ .Argument2 = oRow.ItemEx("ARGUMENT2", ""),
+ .Argument3 = oRow.ItemEx("ARGUMENT3", ""),
+ .Scope = oScope,
+ .Active = oRow.ItemEx("ACTIVE", 0)
+ }
+
+ oSteps.Add(oStep)
+
+ Logger.Debug("Adding Import Profile Step for Index [{0}]", oStep.IndexName)
+ Next
+
+ Return oSteps
+
+ Catch ex As Exception
+ Logger.Error(ex)
+ Return oSteps
+
+ End Try
+ End Function
+
Private Function GetImportProfiles() As List(Of ImportProfile)
Dim oProfiles As New List(Of ImportProfile)
Try
- Logger.Info("Loading Profiles..")
+ Logger.Info("Loading Import Profiles..")
Dim oSQL As String = "SELECT * FROM TBECM_JR_FIW_PROFILE"
Dim oTable As DataTable = Database.GetDatatable(oSQL)
If oTable Is Nothing Then
- Logger.Warn("Database Error while loading Profiles!")
+ Logger.Warn("Database Error while loading Import Profiles!")
Return oProfiles
End If
- Logger.Info("[{0}] Profiles loaded!", oTable.Rows.Count)
+ Logger.Info("[{0}] Import Profiles loaded!", oTable.Rows.Count)
For Each oRow As DataRow In oTable.Rows
Dim oTypeId = oRow.ItemEx("JOB_TYPE_ID", 0)
Dim oProfile As New ImportProfile With {
.Id = oRow.ItemEx("GUID", 0),
.JobId = oRow.ItemEx("JR_JOB_ID", 0),
- .SourceFolder = oRow.ItemEx("SOURCE_FOLDER", "")
+ .ObjectTypeName = oRow.Item("WM_OBJECTTYPE"),
+ .SourceFolder = oRow.ItemEx("SOURCE_FOLDER", ""),
+ .TargetFolder = oRow.ItemEx("TARGET_FOLDER", ""),
+ .BackupFolder = oRow.ItemEx("BACKUP_FOLDER", ""),
+ .SubfolderDateFormat = oRow.ItemEx("SF_DATE_FORMAT", ""),
+ .DeleteFiles = oRow.ItemEx("DEL_FILE_SUCCESS", 0),
+ .FileExcludeRegex = oRow.ItemEx("EXCLUDE_REGEX", ""),
+ .IncludeSubfolders = oRow.ItemEx("INCL_SUBFOLDER", 0),
+ .Active = oRow.ItemEx("ACTIVE", 0)
}
oProfiles.Add(oProfile)
- Logger.Debug("Adding Profile for Folder [{0}]", oProfile.SourceFolder)
+ Logger.Debug("Adding Import Profile for Folder [{0}]", oProfile.SourceFolder)
Next
Return oProfiles
diff --git a/ECM.JobRunner.Windows/WCF/IJobRunner.vb b/ECM.JobRunner.Windows/WCF/IJobRunner.vb
index 765d6fc..0419493 100644
--- a/ECM.JobRunner.Windows/WCF/IJobRunner.vb
+++ b/ECM.JobRunner.Windows/WCF/IJobRunner.vb
@@ -1,6 +1,7 @@
Imports System.ServiceModel
Imports ECM.JobRunner.Common
Imports ECM.JobRunner.Windows.UpdateJob
+Imports ECM.JobRunner.Windows.UpdateProfile
Imports ECM.JobRunner.Windows.GetJobStatus
Imports ECM.JobRunner.Windows.GetJobConfig
@@ -17,6 +18,9 @@ Namespace WCF
Function UpdateJob(pData As UpdateJobRequest) As UpdateJobResponse
+
+ Function UpdateProfile(pData As UpdateProfileRequest) As UpdateProfileResponse
+
Function GetJobConfig() As GetJobConfigResponse
End Interface
diff --git a/ECM.JobRunner.Windows/WCF/JobRunner.vb b/ECM.JobRunner.Windows/WCF/JobRunner.vb
index 9038231..6b857a7 100644
--- a/ECM.JobRunner.Windows/WCF/JobRunner.vb
+++ b/ECM.JobRunner.Windows/WCF/JobRunner.vb
@@ -50,6 +50,11 @@ Namespace WCF
Dim oMethod As New UpdateJob.UpdateJobMethod(LogConfig, Database, State, Scheduler)
Return oMethod.Run(pData)
End Function
+
+ Public Function UpdateProfile(pData As UpdateProfile.UpdateProfileRequest) As UpdateProfile.UpdateProfileResponse Implements IJobRunner.UpdateProfile
+ Dim oMethod As New UpdateProfile.UpdateProfileMethod(LogConfig, Database, State, Scheduler)
+ Return oMethod.Run(pData)
+ End Function
End Class
End Namespace
diff --git a/ECM.JobRunner.Windows/WCF/Methods/GetJobConfig.vb b/ECM.JobRunner.Windows/WCF/Methods/GetJobConfig.vb
index cb77dcd..5764dc9 100644
--- a/ECM.JobRunner.Windows/WCF/Methods/GetJobConfig.vb
+++ b/ECM.JobRunner.Windows/WCF/Methods/GetJobConfig.vb
@@ -17,11 +17,32 @@ Public Class GetJobConfig
.JobTypes = State.JobTypes,
.JobDefinitions = State.JobDefinitions,
.ProfileDefinitions = New GetJobConfigResponse.ProfileDefinitionConfig With {
- .ImportProfiles = State.ProfileDefintions.ImportProfiles
+ .ImportProfiles = State.ProfileDefintions.ImportProfiles.
+ Select(AddressOf FillJobForProfile).
+ Select(AddressOf FillStepsForProfile).
+ ToList()
},
.WindreamObjectTypes = State.ObjectTypes
}
End Function
+
+ Private Function FillJobForProfile(pProfile As ImportProfile) As ImportProfile
+ Dim oJob = State.JobDefinitions.
+ Where(Function(job) job.Id = pProfile.JobId).
+ FirstOrDefault()
+
+ pProfile.Job = oJob
+ Return pProfile
+ End Function
+
+ Private Function FillStepsForProfile(pProfile As ImportProfile) As ImportProfile
+ Dim oSteps = State.ProfileDefintions.ImportProfileSteps.
+ Where(Function(s) s.ProfileId = pProfile.Id).
+ ToList()
+
+ pProfile.Steps = oSteps
+ Return pProfile
+ End Function
End Class
Public Class GetJobConfigResponse
diff --git a/ECM.JobRunner.Windows/WCF/Methods/UpdateJob.vb b/ECM.JobRunner.Windows/WCF/Methods/UpdateJob.vb
index b2ac7c0..9128c6b 100644
--- a/ECM.JobRunner.Windows/WCF/Methods/UpdateJob.vb
+++ b/ECM.JobRunner.Windows/WCF/Methods/UpdateJob.vb
@@ -31,6 +31,8 @@ Public Class UpdateJob
If oResponse Then
Scheduler.Reload()
+ Else
+ Logger.Warn("Error while updating Profile, data not reloaded!")
End If
Return New UpdateJobResponse With {.OK = oResponse}
@@ -74,8 +76,6 @@ Public Class UpdateJob
End Function
End Class
-
-
Public Class UpdateJobRequest
Public Enum UpdateJobAction
Create
@@ -84,7 +84,7 @@ Public Class UpdateJob
End Enum
Public Action As UpdateJobAction
- Public Job As JobRunnerReference.JobDefinition
+ Public Job As JobDefinition
End Class
Public Class UpdateJobResponse
diff --git a/ECM.JobRunner.Windows/WCF/Methods/UpdateProfile.vb b/ECM.JobRunner.Windows/WCF/Methods/UpdateProfile.vb
new file mode 100644
index 0000000..33c4e73
--- /dev/null
+++ b/ECM.JobRunner.Windows/WCF/Methods/UpdateProfile.vb
@@ -0,0 +1,152 @@
+Imports DigitalData.Modules.Database
+Imports DigitalData.Modules.Logging
+Imports ECM.JobRunner.Common
+Imports ECM.JobRunner.Windows.Scheduler
+
+Public Class UpdateProfile
+ Public Class UpdateProfileMethod
+ Inherits Base.BaseMethod
+
+ Private ReadOnly Scheduler As JobScheduler
+
+ Public Sub New(pLogConfig As LogConfig, pDatabase As MSSQLServer, pState As State, pScheduler As JobScheduler)
+ MyBase.New(pLogConfig, pDatabase, pState)
+ Scheduler = pScheduler
+ End Sub
+
+ Public Function Run(pData As UpdateProfileRequest) As UpdateProfileResponse
+ Dim oResponse As Boolean = False
+ Dim oUpdateJob As New UpdateJob.UpdateJobMethod(LogConfig, Database, State, Scheduler)
+
+ ' Active on the profile sets active on the job as well
+ pData.ImportProfile.Job.Active = pData.ImportProfile.Active
+
+ Dim oJobResponse = oUpdateJob.Run(New UpdateJob.UpdateJobRequest With {
+ .Job = pData.ImportProfile.Job,
+ .Action = pData.Action
+ })
+
+ If oJobResponse.OK = False Then
+ Return New UpdateProfileResponse With {.OK = False}
+ End If
+
+ Select Case pData.Action
+ Case UpdateProfileRequest.UpdateProfileAction.Update
+ oResponse = DoUpdateImportProfile(pData)
+
+ Case UpdateProfileRequest.UpdateProfileAction.Create
+ oResponse = DoCreateImportProfile(pData)
+
+ Case UpdateProfileRequest.UpdateProfileAction.Delete
+ oResponse = DoDeleteImportProfile(pData)
+
+ End Select
+
+ If oResponse Then
+ Scheduler.Reload()
+ Else
+ Logger.Warn("Error while updating Profile, data not reloaded!")
+ End If
+
+ Return New UpdateProfileResponse With {.OK = oResponse}
+ End Function
+
+ Private Function DoUpdateImportProfile(pData As UpdateProfileRequest) As Boolean
+ Dim oProfile = pData.ImportProfile
+ Dim oSQL As String = "UPDATE TBECM_JR_FIW_PROFILE
+ SET JR_JOB_ID = @JR_JOB_ID,
+ WM_OBJECTTYPE = @WM_OBJECTTYPE,
+ SOURCE_FOLDER = @SOURCE_FOLDER,
+ TARGET_FOLDER = @TARGET_FOLDER,
+ BACKUP_FOLDER = @BACKUP_FOLDER,
+ SF_DATE_FORMAT = @SF_DATE_FORMAT,
+ DEL_FILE_SUCCESS = @DEL_FILE_SUCCESS,
+ INCL_SUBFOLDER = @INCL_SUBFOLDER,
+ EXCLUDE_REGEX = @EXCLUDE_REGEX,
+ ACTIVE = @ACTIVE
+ WHERE GUID = @GUID"
+ Dim oCommand As New SqlClient.SqlCommand(oSQL)
+
+ oCommand.Parameters.Add("JR_JOB_ID", SqlDbType.Int).Value = oProfile.Job.Id
+ oCommand.Parameters.Add("WM_OBJECTTYPE", SqlDbType.NVarChar, 100).Value = oProfile.ObjectTypeName
+ oCommand.Parameters.Add("SOURCE_FOLDER", SqlDbType.NVarChar, 500).Value = oProfile.SourceFolder
+ oCommand.Parameters.Add("TARGET_FOLDER", SqlDbType.NVarChar, 500).Value = oProfile.TargetFolder
+ oCommand.Parameters.Add("BACKUP_FOLDER", SqlDbType.NVarChar, 500).Value = oProfile.BackupFolder
+ oCommand.Parameters.Add("EXCLUDE_REGEX", SqlDbType.NVarChar, 5000).Value = oProfile.FileExcludeRegex
+ oCommand.Parameters.Add("SF_DATE_FORMAT", SqlDbType.NVarChar, 50).Value = oProfile.SubfolderDateFormat
+ oCommand.Parameters.Add("DEL_FILE_SUCCESS", SqlDbType.Bit).Value = oProfile.DeleteFiles
+ oCommand.Parameters.Add("INCL_SUBFOLDER", SqlDbType.Bit).Value = oProfile.IncludeSubfolders
+ oCommand.Parameters.Add("ACTIVE", SqlDbType.Bit).Value = oProfile.Active
+ oCommand.Parameters.Add("GUID", SqlDbType.Int).Value = oProfile.Id
+
+ Return Database.ExecuteNonQuery(oCommand)
+ End Function
+
+ Private Function DoCreateImportProfile(pData As UpdateProfileRequest) As Boolean
+ Dim oProfile = pData.ImportProfile
+ Dim oSQL As String = "INSERT INTO TBECM_JR_FIW_PROFILE (
+ JR_JOB_ID,
+ WM_OBJECTTYPE,
+ SOURCE_FOLDER,
+ TARGET_FOLDER,
+ BACKUP_FOLDER,
+ SF_DATE_FORMAT,
+ DEL_FILE_SUCCESS,
+ INCL_SUBFOLDER,
+ EXCLUDE_REGEX,
+ ACTIVE
+ ) VALUES (
+ @JR_JOB_ID,
+ @WM_OBJECTTYPE,
+ @SOURCE_FOLDER,
+ @TARGET_FOLDER,
+ @BACKUP_FOLDER,
+ @SF_DATE_FORMAT,
+ @DEL_FILE_SUCCESS,
+ @INCL_SUBFOLDER,
+ @EXCLUDE_REGEX,
+ @ACTIVE
+ )"
+ Dim oCommand As New SqlClient.SqlCommand(oSQL)
+
+ oCommand.Parameters.Add("JR_JOB_ID", SqlDbType.Int).Value = oProfile.Job.Id
+ oCommand.Parameters.Add("WM_OBJECTTYPE", SqlDbType.NVarChar, 100).Value = oProfile.ObjectTypeName
+ oCommand.Parameters.Add("SOURCE_FOLDER", SqlDbType.NVarChar, 500).Value = oProfile.SourceFolder
+ oCommand.Parameters.Add("TARGET_FOLDER", SqlDbType.NVarChar, 500).Value = oProfile.TargetFolder
+ oCommand.Parameters.Add("BACKUP_FOLDER", SqlDbType.NVarChar, 500).Value = oProfile.BackupFolder
+ oCommand.Parameters.Add("EXCLUDE_REGEX", SqlDbType.NVarChar, 5000).Value = oProfile.FileExcludeRegex
+ oCommand.Parameters.Add("SF_DATE_FORMAT", SqlDbType.NVarChar, 50).Value = oProfile.SubfolderDateFormat
+ oCommand.Parameters.Add("DEL_FILE_SUCCESS", SqlDbType.Bit).Value = oProfile.DeleteFiles
+ oCommand.Parameters.Add("INCL_SUBFOLDER", SqlDbType.Bit).Value = oProfile.IncludeSubfolders
+ oCommand.Parameters.Add("ACTIVE", SqlDbType.Bit).Value = oProfile.Active
+ oCommand.Parameters.Add("GUID", SqlDbType.Int).Value = oProfile.Id
+
+ Return Database.ExecuteNonQuery(oCommand)
+ End Function
+
+ Private Function DoDeleteImportProfile(pData As UpdateProfileRequest) As Boolean
+ Dim oProfile = pData.ImportProfile
+ Dim oSQL As String = "DELETE FROM TBECM_JR_FIW_PROFILE WHERE GUID = @GUID"
+ Dim oCommand As New SqlClient.SqlCommand(oSQL)
+
+ oCommand.Parameters.Add("GUID", SqlDbType.Int).Value = oProfile.Id
+
+ Return Database.ExecuteNonQuery(oCommand)
+ End Function
+ End Class
+
+ Public Class UpdateProfileRequest
+ Public Enum UpdateProfileAction
+ Create
+ Update
+ Delete
+ End Enum
+
+ Public Action As UpdateProfileAction
+ Public ImportProfile As ImportProfile
+ End Class
+
+ Public Class UpdateProfileResponse
+ Inherits Base.BaseResponse
+ End Class
+End Class