diff --git a/GUIs.Common/frmDocumentResultList.Designer.vb b/GUIs.Common/frmDocumentResultList.Designer.vb
index 8c952277..d08b87ca 100644
--- a/GUIs.Common/frmDocumentResultList.Designer.vb
+++ b/GUIs.Common/frmDocumentResultList.Designer.vb
@@ -41,7 +41,7 @@ Partial Class frmDocumentResultList
Me.MenuItemFolderOpen = New DevExpress.XtraBars.BarButtonItem()
Me.MenuItemFilepathCopy = New DevExpress.XtraBars.BarButtonItem()
Me.MenuItemFolderpathCopy = New DevExpress.XtraBars.BarButtonItem()
- Me.MenuItemPropertiesECM = New DevExpress.XtraBars.BarButtonItem()
+ Me.MenuItemProperties = New DevExpress.XtraBars.BarButtonItem()
Me.MenuItemsOpenFileZooFlow = New DevExpress.XtraBars.BarButtonItem()
Me.MenuItemPropertiesZooFlow = New DevExpress.XtraBars.BarButtonItem()
Me.ButtonRefresh = New DevExpress.XtraBars.BarButtonItem()
@@ -51,10 +51,10 @@ Partial Class frmDocumentResultList
Me.BarButtonItem4 = New DevExpress.XtraBars.BarButtonItem()
Me.BarButtonItem5 = New DevExpress.XtraBars.BarButtonItem()
Me.BarButtonItem6 = New DevExpress.XtraBars.BarButtonItem()
- Me.BarButtonItem7 = New DevExpress.XtraBars.BarButtonItem()
- Me.BarButtonItem8 = New DevExpress.XtraBars.BarButtonItem()
- Me.BarButtonItem9 = New DevExpress.XtraBars.BarButtonItem()
- Me.BarButtonItem10 = New DevExpress.XtraBars.BarButtonItem()
+ Me.MenuItemStartAdhocWorkflow = New DevExpress.XtraBars.BarButtonItem()
+ Me.MenuItemCheckInFile = New DevExpress.XtraBars.BarButtonItem()
+ Me.MenuItemCheckOutFile = New DevExpress.XtraBars.BarButtonItem()
+ Me.MenuItemVersionFile = New DevExpress.XtraBars.BarButtonItem()
Me.chkGridShowQuickfilter = New DevExpress.XtraBars.BarCheckItem()
Me.chkGridShowGrouping = New DevExpress.XtraBars.BarCheckItem()
Me.chkGridShowTitle = New DevExpress.XtraBars.BarCheckItem()
@@ -190,7 +190,7 @@ Partial Class frmDocumentResultList
'RibbonControl
'
Me.RibbonControl.ExpandCollapseItem.Id = 0
- Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.RibbonControl.SearchEditItem, Me.SwitchMainContainerHorizontal, Me.SwitchDetailContainerHorizontal, Me.BarButtonItemExportGrid1, Me.BarStaticItem1, Me.labelResultCount, Me.BarButtonBack, Me.BarButtonResetLayout, Me.labelCriticalError, Me.labelWarning, Me.MenuItemFileOpen, Me.MenuItemPropertiesIDB, Me.MenuItemFolderOpen, Me.MenuItemFilepathCopy, Me.MenuItemFolderpathCopy, Me.MenuItemPropertiesECM, Me.MenuItemsOpenFileZooFlow, Me.MenuItemPropertiesZooFlow, Me.ButtonRefresh, Me.BarButtonItem1, Me.BarButtonItem2, Me.BarButtonItem3, Me.BarButtonItem4, Me.BarButtonItem5, Me.BarButtonItem6, Me.BarButtonItem7, Me.BarButtonItem8, Me.BarButtonItem9, Me.BarButtonItem10, Me.chkGridShowQuickfilter, Me.chkGridShowGrouping, Me.chkGridShowTitle, Me.MenuItemSaveProperties, Me.BarButtonItem11, Me.BarWorkspaceMenuItem1})
+ Me.RibbonControl.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl.ExpandCollapseItem, Me.RibbonControl.SearchEditItem, Me.SwitchMainContainerHorizontal, Me.SwitchDetailContainerHorizontal, Me.BarButtonItemExportGrid1, Me.BarStaticItem1, Me.labelResultCount, Me.BarButtonBack, Me.BarButtonResetLayout, Me.labelCriticalError, Me.labelWarning, Me.MenuItemFileOpen, Me.MenuItemPropertiesIDB, Me.MenuItemFolderOpen, Me.MenuItemFilepathCopy, Me.MenuItemFolderpathCopy, Me.MenuItemProperties, Me.MenuItemsOpenFileZooFlow, Me.MenuItemPropertiesZooFlow, Me.ButtonRefresh, Me.BarButtonItem1, Me.BarButtonItem2, Me.BarButtonItem3, Me.BarButtonItem4, Me.BarButtonItem5, Me.BarButtonItem6, Me.MenuItemStartAdhocWorkflow, Me.MenuItemCheckInFile, Me.MenuItemCheckOutFile, Me.MenuItemVersionFile, Me.chkGridShowQuickfilter, Me.chkGridShowGrouping, Me.chkGridShowTitle, Me.MenuItemSaveProperties, Me.BarButtonItem11, Me.BarWorkspaceMenuItem1})
resources.ApplyResources(Me.RibbonControl, "RibbonControl")
Me.RibbonControl.MaxItemId = 46
Me.RibbonControl.Name = "RibbonControl"
@@ -317,12 +317,12 @@ Partial Class frmDocumentResultList
Me.MenuItemFolderpathCopy.ImageOptions.SvgImage = Global.DigitalData.GUIs.Common.My.Resources.Resources.open
Me.MenuItemFolderpathCopy.Name = "MenuItemFolderpathCopy"
'
- 'MenuItemPropertiesECM
+ 'MenuItemProperties
'
- resources.ApplyResources(Me.MenuItemPropertiesECM, "MenuItemPropertiesECM")
- Me.MenuItemPropertiesECM.Id = 26
- Me.MenuItemPropertiesECM.ImageOptions.SvgImage = CType(resources.GetObject("MenuItemPropertiesECM.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
- Me.MenuItemPropertiesECM.Name = "MenuItemPropertiesECM"
+ resources.ApplyResources(Me.MenuItemProperties, "MenuItemProperties")
+ Me.MenuItemProperties.Id = 26
+ Me.MenuItemProperties.ImageOptions.SvgImage = CType(resources.GetObject("MenuItemPropertiesECM.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
+ Me.MenuItemProperties.Name = "MenuItemProperties"
'
'MenuItemsOpenFileZooFlow
'
@@ -382,33 +382,33 @@ Partial Class frmDocumentResultList
Me.BarButtonItem6.ImageOptions.SvgImage = Global.DigitalData.GUIs.Common.My.Resources.Resources.clearpivottable
Me.BarButtonItem6.Name = "BarButtonItem6"
'
- 'BarButtonItem7
+ 'MenuItemStartAdhocWorkflow
'
- resources.ApplyResources(Me.BarButtonItem7, "BarButtonItem7")
- Me.BarButtonItem7.Id = 36
- Me.BarButtonItem7.ImageOptions.SvgImage = Global.DigitalData.GUIs.Common.My.Resources.Resources.bo_transition
- Me.BarButtonItem7.Name = "BarButtonItem7"
+ resources.ApplyResources(Me.MenuItemStartAdhocWorkflow, "MenuItemStartAdhocWorkflow")
+ Me.MenuItemStartAdhocWorkflow.Id = 36
+ Me.MenuItemStartAdhocWorkflow.ImageOptions.SvgImage = Global.DigitalData.GUIs.Common.My.Resources.Resources.bo_transition
+ Me.MenuItemStartAdhocWorkflow.Name = "MenuItemStartAdhocWorkflow"
'
- 'BarButtonItem8
+ 'MenuItemCheckInFile
'
- resources.ApplyResources(Me.BarButtonItem8, "BarButtonItem8")
- Me.BarButtonItem8.Id = 37
- Me.BarButtonItem8.ImageOptions.SvgImage = Global.DigitalData.GUIs.Common.My.Resources.Resources.security_unlock
- Me.BarButtonItem8.Name = "BarButtonItem8"
+ resources.ApplyResources(Me.MenuItemCheckInFile, "MenuItemCheckInFile")
+ Me.MenuItemCheckInFile.Id = 37
+ Me.MenuItemCheckInFile.ImageOptions.SvgImage = Global.DigitalData.GUIs.Common.My.Resources.Resources.security_unlock
+ Me.MenuItemCheckInFile.Name = "MenuItemCheckInFile"
'
- 'BarButtonItem9
+ 'MenuItemCheckOutFile
'
- resources.ApplyResources(Me.BarButtonItem9, "BarButtonItem9")
- Me.BarButtonItem9.Id = 38
- Me.BarButtonItem9.ImageOptions.SvgImage = Global.DigitalData.GUIs.Common.My.Resources.Resources._private
- Me.BarButtonItem9.Name = "BarButtonItem9"
+ resources.ApplyResources(Me.MenuItemCheckOutFile, "MenuItemCheckOutFile")
+ Me.MenuItemCheckOutFile.Id = 38
+ Me.MenuItemCheckOutFile.ImageOptions.SvgImage = Global.DigitalData.GUIs.Common.My.Resources.Resources._private
+ Me.MenuItemCheckOutFile.Name = "MenuItemCheckOutFile"
'
- 'BarButtonItem10
+ 'MenuItemVersionFile
'
- resources.ApplyResources(Me.BarButtonItem10, "BarButtonItem10")
- Me.BarButtonItem10.Id = 39
- Me.BarButtonItem10.ImageOptions.SvgImage = Global.DigitalData.GUIs.Common.My.Resources.Resources.enablescrolling
- Me.BarButtonItem10.Name = "BarButtonItem10"
+ resources.ApplyResources(Me.MenuItemVersionFile, "MenuItemVersionFile")
+ Me.MenuItemVersionFile.Id = 39
+ Me.MenuItemVersionFile.ImageOptions.SvgImage = Global.DigitalData.GUIs.Common.My.Resources.Resources.enablescrolling
+ Me.MenuItemVersionFile.Name = "MenuItemVersionFile"
'
'chkGridShowQuickfilter
'
@@ -474,7 +474,7 @@ Partial Class frmDocumentResultList
'RibbonPageGroup3
'
Me.RibbonPageGroup3.ItemLinks.Add(Me.MenuItemFileOpen)
- Me.RibbonPageGroup3.ItemLinks.Add(Me.MenuItemPropertiesECM)
+ Me.RibbonPageGroup3.ItemLinks.Add(Me.MenuItemProperties)
Me.RibbonPageGroup3.Name = "RibbonPageGroup3"
resources.ApplyResources(Me.RibbonPageGroup3, "RibbonPageGroup3")
'
@@ -494,15 +494,15 @@ Partial Class frmDocumentResultList
'
'RibbonPageGroup4
'
- Me.RibbonPageGroup4.ItemLinks.Add(Me.BarButtonItem7)
+ Me.RibbonPageGroup4.ItemLinks.Add(Me.MenuItemStartAdhocWorkflow)
Me.RibbonPageGroup4.Name = "RibbonPageGroup4"
resources.ApplyResources(Me.RibbonPageGroup4, "RibbonPageGroup4")
'
'RibbonPageGroup8
'
- Me.RibbonPageGroup8.ItemLinks.Add(Me.BarButtonItem9)
- Me.RibbonPageGroup8.ItemLinks.Add(Me.BarButtonItem8)
- Me.RibbonPageGroup8.ItemLinks.Add(Me.BarButtonItem10)
+ Me.RibbonPageGroup8.ItemLinks.Add(Me.MenuItemCheckOutFile)
+ Me.RibbonPageGroup8.ItemLinks.Add(Me.MenuItemCheckInFile)
+ Me.RibbonPageGroup8.ItemLinks.Add(Me.MenuItemVersionFile)
Me.RibbonPageGroup8.Name = "RibbonPageGroup8"
resources.ApplyResources(Me.RibbonPageGroup8, "RibbonPageGroup8")
'
@@ -838,7 +838,7 @@ Partial Class frmDocumentResultList
Friend WithEvents MenuItemFolderOpen As DevExpress.XtraBars.BarButtonItem
Friend WithEvents MenuItemFilepathCopy As DevExpress.XtraBars.BarButtonItem
Friend WithEvents MenuItemFolderpathCopy As DevExpress.XtraBars.BarButtonItem
- Friend WithEvents MenuItemPropertiesECM As DevExpress.XtraBars.BarButtonItem
+ Friend WithEvents MenuItemProperties As DevExpress.XtraBars.BarButtonItem
Friend WithEvents MenuItemsOpenFileZooFlow As DevExpress.XtraBars.BarButtonItem
Friend WithEvents MenuItemPropertiesZooFlow As DevExpress.XtraBars.BarButtonItem
Friend WithEvents ButtonRefresh As DevExpress.XtraBars.BarButtonItem
@@ -867,10 +867,10 @@ Partial Class frmDocumentResultList
Friend WithEvents RibbonPageCategoryFile As DevExpress.XtraBars.Ribbon.RibbonPageCategory
Friend WithEvents RibbonPageActions2 As DevExpress.XtraBars.Ribbon.RibbonPage
Friend WithEvents RibbonPageGroup4 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
- Friend WithEvents BarButtonItem7 As DevExpress.XtraBars.BarButtonItem
- Friend WithEvents BarButtonItem8 As DevExpress.XtraBars.BarButtonItem
- Friend WithEvents BarButtonItem9 As DevExpress.XtraBars.BarButtonItem
- Friend WithEvents BarButtonItem10 As DevExpress.XtraBars.BarButtonItem
+ Friend WithEvents MenuItemStartAdhocWorkflow As DevExpress.XtraBars.BarButtonItem
+ Friend WithEvents MenuItemCheckInFile As DevExpress.XtraBars.BarButtonItem
+ Friend WithEvents MenuItemCheckOutFile As DevExpress.XtraBars.BarButtonItem
+ Friend WithEvents MenuItemVersionFile As DevExpress.XtraBars.BarButtonItem
Friend WithEvents SvgImageCollection1 As DevExpress.Utils.SvgImageCollection
Friend WithEvents chkGridShowQuickfilter As DevExpress.XtraBars.BarCheckItem
Friend WithEvents chkGridShowGrouping As DevExpress.XtraBars.BarCheckItem
diff --git a/GUIs.Common/frmDocumentResultList.resx b/GUIs.Common/frmDocumentResultList.resx
index ccb0a3a6..b73617c4 100644
--- a/GUIs.Common/frmDocumentResultList.resx
+++ b/GUIs.Common/frmDocumentResultList.resx
@@ -388,7 +388,7 @@
Ordnerpfad kopieren
-
+
Eigenschaften
@@ -447,16 +447,16 @@
Fenster Layout zurücksetzen
-
+
Adhoc Workflow starten
-
+
Einchecken
-
+
Auschecken
-
+
Versionieren
@@ -861,10 +861,10 @@
DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-
- MenuItemPropertiesECM
+
+ MenuItemProperties
-
+
DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
@@ -921,28 +921,28 @@
DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-
- BarButtonItem7
+
+ MenuItemStartAdhocWorkflow
-
+
DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-
- BarButtonItem8
+
+ MenuItemCheckInFile
-
+
DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-
- BarButtonItem9
+
+ MenuItemCheckOutFile
-
+
DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-
- BarButtonItem10
+
+ MenuItemVersionFile
-
+
DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
diff --git a/GUIs.Common/frmDocumentResultList.vb b/GUIs.Common/frmDocumentResultList.vb
index 2cdf934f..bc5f9cf1 100644
--- a/GUIs.Common/frmDocumentResultList.vb
+++ b/GUIs.Common/frmDocumentResultList.vb
@@ -803,7 +803,7 @@ Public Class frmDocumentResultList
End Function
#Region "File Actions"
- Private Sub MenuItem_OpenProperties_ItemClick(sender As Object, e As ItemClickEventArgs) Handles MenuItemPropertiesECM.ItemClick
+ Private Sub MenuItem_OpenProperties_ItemClick(sender As Object, e As ItemClickEventArgs) Handles MenuItemProperties.ItemClick
If _CurrentDocument Is Nothing Then
Exit Sub
End If
diff --git a/Modules.EDMIAPI/Client/Options.vb b/Modules.EDMIAPI/Client/Options.vb
index f894a8cc..5ded31a1 100644
--- a/Modules.EDMIAPI/Client/Options.vb
+++ b/Modules.EDMIAPI/Client/Options.vb
@@ -25,6 +25,13 @@
Public Property DateImported As Date = Date.Now
End Class
+ '''
+ ''' Import options for NewFileAsync.
+ '''
+ Public Class CheckOutInOptions
+ Inherits BaseOptions
+ End Class
+
Public Class UpdateFileOptions
Inherits BaseOptions
diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.CheckInOutFileResponse.datasource b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.CheckInOutFileResponse.datasource
new file mode 100644
index 00000000..8cee8348
--- /dev/null
+++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Modules.EDMI.API.EDMIServiceReference.CheckInOutFileResponse.datasource
@@ -0,0 +1,10 @@
+
+
+
+ DigitalData.Modules.EDMI.API.EDMIServiceReference.CheckInOutFileResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
+
\ No newline at end of file
diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.CheckInOutFile.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.CheckInOutFile.xsd
new file mode 100644
index 00000000..a5fef09c
--- /dev/null
+++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.Methods.IDB.CheckInOutFile.xsd
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.wsdl b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.wsdl
index 8b12f002..04335481 100644
--- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.wsdl
+++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.wsdl
@@ -24,6 +24,7 @@
+
@@ -193,6 +194,12 @@
+
+
+
+
+
+
@@ -333,6 +340,10 @@
+
+
+
+
diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.xsd b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.xsd
index c0e93896..d6450046 100644
--- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.xsd
+++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/DigitalData.Services.EDMIService.xsd
@@ -12,6 +12,7 @@
+
@@ -318,6 +319,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -328,7 +343,7 @@
-
+
@@ -344,7 +359,7 @@
-
+
diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.svcmap b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.svcmap
index a8367d73..c9f8aca4 100644
--- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.svcmap
+++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.svcmap
@@ -46,6 +46,7 @@
+
diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb
index 6161b094..ba0a54dc 100644
--- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb
+++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/Reference.vb
@@ -33,6 +33,7 @@ Namespace EDMIServiceReference
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GetAttributeValueResponse)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.ImportFileResponse)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GetFileObjectResponse)), _
+ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.CheckInOutFileResponse)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GetClientConfigResponse))> _
Partial Public Class BaseResponse
Inherits Object
@@ -180,6 +181,9 @@ Namespace EDMIServiceReference
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GetFileObjectRequest)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GetFileObjectResponse)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.FileObject)), _
+ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.CheckInOutFileRequest)), _
+ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.CheckInOutFileAction)), _
+ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.CheckInOutFileResponse)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.RightsAccessRight))> _
Partial Public Class ScalarResult
Inherits EDMIServiceReference.BaseResponse
@@ -281,6 +285,9 @@ Namespace EDMIServiceReference
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GetFileObjectRequest)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GetFileObjectResponse)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.FileObject)), _
+ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.CheckInOutFileRequest)), _
+ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.CheckInOutFileAction)), _
+ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.CheckInOutFileResponse)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.RightsAccessRight))> _
Partial Public Class GetScalarValueResponse
Inherits EDMIServiceReference.BaseResponse
@@ -448,6 +455,9 @@ Namespace EDMIServiceReference
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GetFileObjectRequest)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.GetFileObjectResponse)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.FileObject)), _
+ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.CheckInOutFileRequest)), _
+ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.CheckInOutFileAction)), _
+ System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.CheckInOutFileResponse)), _
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.RightsAccessRight))> _
Partial Public Class GetAttributeValueResponse
Inherits EDMIServiceReference.BaseResponse
@@ -535,6 +545,31 @@ Namespace EDMIServiceReference
End Property
End Class
+ _
+ Partial Public Class CheckInOutFileResponse
+ Inherits EDMIServiceReference.BaseResponse
+
+ _
+ Private ObjectIdField As Long
+
+ _
+ Public Property ObjectId() As Long
+ Get
+ Return Me.ObjectIdField
+ End Get
+ Set
+ If (Me.ObjectIdField.Equals(value) <> true) Then
+ Me.ObjectIdField = value
+ Me.RaisePropertyChanged("ObjectId")
+ End If
+ End Set
+ End Property
+ End Class
+
_
+ Partial Public Class CheckInOutFileRequest
+ Inherits Object
+ Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
+
+ _
+ Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject
+
+ _
+ Private ActionField As EDMIServiceReference.CheckInOutFileAction
+
+ _
+ Private CommentField As Long
+
+ _
+ Private ObjectIdField As Long
+
+ _
+ Private UserField As EDMIServiceReference.UserState
+
+ _
+ 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 EDMIServiceReference.CheckInOutFileAction
+ 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 Comment() As Long
+ Get
+ Return Me.CommentField
+ End Get
+ Set
+ If (Me.CommentField.Equals(value) <> true) Then
+ Me.CommentField = value
+ Me.RaisePropertyChanged("Comment")
+ End If
+ End Set
+ End Property
+
+ _
+ Public Property ObjectId() As Long
+ Get
+ Return Me.ObjectIdField
+ End Get
+ Set
+ If (Me.ObjectIdField.Equals(value) <> true) Then
+ Me.ObjectIdField = value
+ Me.RaisePropertyChanged("ObjectId")
+ End If
+ End Set
+ End Property
+
+ _
+ Public Property User() As EDMIServiceReference.UserState
+ Get
+ Return Me.UserField
+ End Get
+ Set
+ If (Object.ReferenceEquals(Me.UserField, value) <> true) Then
+ Me.UserField = value
+ Me.RaisePropertyChanged("User")
+ 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
+
+ _
+ Public Enum CheckInOutFileAction As Integer
+
+ _
+ CheckIn = 0
+
+ _
+ CheckOut = 1
+ End Enum
+
_
Public Enum RightsAccessRight As Integer
@@ -2525,6 +2668,12 @@ Namespace EDMIServiceReference
_
Function GetFileObjectAsync(ByVal Data As EDMIServiceReference.GetFileObjectRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.GetFileObjectResponse)
+ _
+ Function CheckInOutFile(ByVal Data As EDMIServiceReference.CheckInOutFileRequest) As EDMIServiceReference.CheckInOutFileResponse
+
+ _
+ Function CheckInOutFileAsync(ByVal Data As EDMIServiceReference.CheckInOutFileRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.CheckInOutFileResponse)
+
'CODEGEN: Der Nachrichtenvertrag wird generiert, da der Wrappername (DocumentStreamRequest) von Nachricht "DocumentStreamRequest" nicht mit dem Standardwert (GetFileByObjectId) übereinstimmt.
_
Function EDMIServiceReference_IEDMIService_GetFileByObjectId(ByVal request As EDMIServiceReference.DocumentStreamRequest) As EDMIServiceReference.DocumentStreamResponse Implements EDMIServiceReference.IEDMIService.GetFileByObjectId
Return MyBase.Channel.GetFileByObjectId(request)
diff --git a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/service.wsdl b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/service.wsdl
index db3f426a..d81cb177 100644
--- a/Modules.EDMIAPI/Connected Services/EDMIServiceReference/service.wsdl
+++ b/Modules.EDMIAPI/Connected Services/EDMIServiceReference/service.wsdl
@@ -272,6 +272,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/Modules.EDMIAPI/EDMI.API.vbproj b/Modules.EDMIAPI/EDMI.API.vbproj
index 2724259e..00829f3f 100644
--- a/Modules.EDMIAPI/EDMI.API.vbproj
+++ b/Modules.EDMIAPI/EDMI.API.vbproj
@@ -79,6 +79,8 @@
+
+
@@ -121,6 +123,9 @@
Designer
+
+ Reference.svcmap
+
Reference.svcmap
@@ -205,6 +210,9 @@
Designer
+
+ Designer
+
Designer
diff --git a/Modules.EDMIAPI/Modules/IDB/CheckInFile.vb b/Modules.EDMIAPI/Modules/IDB/CheckInFile.vb
new file mode 100644
index 00000000..af853037
--- /dev/null
+++ b/Modules.EDMIAPI/Modules/IDB/CheckInFile.vb
@@ -0,0 +1,34 @@
+Imports DigitalData.Modules.EDMI.API.EDMIServiceReference
+Imports DigitalData.Modules.Logging
+
+Namespace Modules.IDB
+ Public Class CheckInFile
+ Inherits BaseMethod
+
+ Public Sub New(pLogConfig As LogConfig, pChannel As IEDMIServiceChannel)
+ MyBase.New(pLogConfig, pChannel)
+ End Sub
+
+ Public Async Function RunAsync(pObjectId As Long, Optional pOptions As Options.CheckOutInOptions = Nothing) As Task(Of Long)
+ ' Set default options
+ If pOptions Is Nothing Then
+ pOptions = New Options.CheckOutInOptions()
+ End If
+
+ Dim oCheckInFileResponse = Await Channel.CheckInOutFileAsync(New CheckInOutFileRequest With {
+ .User = New UserState With {
+ .Language = pOptions.Language,
+ .UserName = pOptions.Username
+ },
+ .Action = CheckInOutFileAction.CheckOut,
+ .ObjectId = pObjectId
+ })
+
+ If oCheckInFileResponse.OK = False Then
+ Throw New ApplicationException("Could not Import File Contents!")
+ End If
+
+ Return oCheckInFileResponse.ObjectId
+ End Function
+ End Class
+End Namespace
diff --git a/Modules.EDMIAPI/Modules/IDB/CheckOutFile.vb b/Modules.EDMIAPI/Modules/IDB/CheckOutFile.vb
new file mode 100644
index 00000000..8707752d
--- /dev/null
+++ b/Modules.EDMIAPI/Modules/IDB/CheckOutFile.vb
@@ -0,0 +1,36 @@
+Imports DigitalData.Modules.EDMI.API.EDMIServiceReference
+Imports DigitalData.Modules.Logging
+
+Namespace Modules.IDB
+ Public Class CheckOutFile
+ Inherits BaseMethod
+
+ Public Sub New(pLogConfig As LogConfig, pChannel As IEDMIServiceChannel)
+ MyBase.New(pLogConfig, pChannel)
+ End Sub
+
+ Public Async Function RunAsync(pObjectId As Long, Optional pComment As String = "", Optional pOptions As Options.CheckOutInOptions = Nothing) As Task(Of Long)
+ ' Set default options
+ If pOptions Is Nothing Then
+ pOptions = New Options.CheckOutInOptions()
+ End If
+
+ Dim oCheckOutFileResponse = Await Channel.CheckInOutFileAsync(New CheckInOutFileRequest With {
+ .User = New UserState With {
+ .Language = pOptions.Language,
+ .UserName = pOptions.Username
+ },
+ .Action = CheckInOutFileAction.CheckOut,
+ .Comment = pComment,
+ .ObjectId = pObjectId
+ })
+
+ If oCheckOutFileResponse.OK = False Then
+ Throw New ApplicationException("Could not Import File Contents!")
+ End If
+
+ Return oCheckOutFileResponse.ObjectId
+ End Function
+ End Class
+
+End Namespace
diff --git a/Service.EDMIService/EDMIService.vb b/Service.EDMIService/EDMIService.vb
index 8651b8ae..73383f18 100644
--- a/Service.EDMIService/EDMIService.vb
+++ b/Service.EDMIService/EDMIService.vb
@@ -109,6 +109,12 @@ Public Class EDMIService
Return oGetFileObject.Run(pData)
End Function
+ Public Function CheckInOutFile(pData As CheckInOutFile.CheckInOutFileRequest) As CheckInOutFile.CheckInOutFileResponse Implements IEDMIService.CheckInOutFile
+ _Logger.Debug("Start of Method [CheckInOutFile]")
+ Dim oCheckInOutFile As New CheckInOutFile.CheckInOutFileMethod(LogConfig, MSSQL_IDB, MSSQL_ECM, GlobalState)
+ Return oCheckInOutFile.Run(pData)
+ End Function
+
#Region "=== Database ==="
Public Function GetCachedTables() As List(Of String) Implements IEDMIService.GetCachedTables
diff --git a/Service.EDMIService/EDMIService.vbproj b/Service.EDMIService/EDMIService.vbproj
index aae3abe5..3e7928b7 100644
--- a/Service.EDMIService/EDMIService.vbproj
+++ b/Service.EDMIService/EDMIService.vbproj
@@ -145,6 +145,9 @@
+
+
+
diff --git a/Service.EDMIService/IEDMIService.vb b/Service.EDMIService/IEDMIService.vb
index 3c231594..d6a50d02 100644
--- a/Service.EDMIService/IEDMIService.vb
+++ b/Service.EDMIService/IEDMIService.vb
@@ -97,6 +97,9 @@ Interface IEDMIService
Function GetFileObject(Data As GetFileObject.GetFileObjectRequest) As GetFileObject.GetFileObjectResponse
+
+
+ Function CheckInOutFile(Data As CheckInOutFile.CheckInOutFileRequest) As CheckInOutFile.CheckInOutFileResponse
#End Region
#Region "Document (Old)"
diff --git a/Service.EDMIService/Methods/IDB/CheckInOutFile/CheckInOutFileMethod.vb b/Service.EDMIService/Methods/IDB/CheckInOutFile/CheckInOutFileMethod.vb
new file mode 100644
index 00000000..5bd479d5
--- /dev/null
+++ b/Service.EDMIService/Methods/IDB/CheckInOutFile/CheckInOutFileMethod.vb
@@ -0,0 +1,117 @@
+Imports System.Data.SqlClient
+Imports DigitalData.Modules.Base.IDB
+Imports DigitalData.Modules.Database
+Imports DigitalData.Modules.Database.MSSQLServer.TransactionMode
+Imports DigitalData.Modules.Logging
+
+Namespace Methods.IDB.CheckInOutFile
+ Public Class CheckInOutFileMethod
+ Inherits BaseMethod
+
+ Private ReadOnly Connection As SqlConnection
+ Private ReadOnly Transaction As SqlTransaction
+
+ Public Sub New(pLogConfig As LogConfig, pDatabaseIDB As MSSQLServer, pDatabaseECM As MSSQLServer, pGlobalState As GlobalState)
+ MyBase.New(pLogConfig, pDatabaseIDB, pDatabaseECM, pGlobalState)
+
+ Connection = DatabaseIDB.GetConnection()
+ Transaction = Connection.BeginTransaction()
+ End Sub
+
+ Public Function Run(pData As CheckInOutFileRequest) As CheckInOutFileResponse
+ Try
+ Dim oResult = False
+
+ If pData.Action = CheckInOutFileAction.CheckOut Then
+ oResult = CheckOutFile(pData.ObjectId, pData.User.UserName, pData.Comment)
+
+ ElseIf pData.Action = CheckInOutFileAction.CheckIn Then
+ oResult = CheckInFile(pData.ObjectId, pData.User.UserName)
+
+ Else
+ LogAndThrow("Invalid action supplied!")
+
+ End If
+
+ If oResult = False Then
+ LogAndThrow($"Could not Check In/Out file [{pData.ObjectId}]!")
+ End If
+
+ Return New CheckInOutFileResponse(pData.ObjectId)
+ Catch ex As Exception
+ Logger.Warn("Error occurred while checkin in/out file!")
+ Logger.Error(ex)
+
+ Logger.Info("Rolling back transaction.")
+ Transaction?.Rollback()
+
+ Return New CheckInOutFileResponse(ex)
+
+ End Try
+ End Function
+
+ Private Function CheckOutFile(pObjectId As Long, pUsername As String, pComment As String) As Boolean
+ Try
+ Dim oTable = TestFileIsCheckedOut(pObjectId)
+ If oTable Is Nothing Then
+ Return False
+ End If
+
+ ' If there are rows, the file is already checked out (either by the calling user or somebody else)
+ If oTable.Rows.Count > 0 Then
+ ' TODO: Return the person who has this file checked out
+ Return False
+ End If
+
+ Dim oSQL = $"INSERT INTO TBIDB_OBJECT_CHECK_IN_OUT (IDB_OBJ_ID, CHECKED_OUT_WHEN, COMMENT, ADDED_WHO)
+ VALUES ({pObjectId}, GETDATE(), '{pComment}', '{pUsername}')"
+ Return DatabaseIDB.ExecuteNonQuery(oSQL)
+
+ Catch ex As Exception
+ Logger.Error(ex)
+ Return False
+
+ End Try
+ End Function
+
+ Private Function CheckInFile(pObjectId As Long, pUsername As String) As Boolean
+ Try
+ Dim oTable = TestFileIsCheckedOut(pObjectId)
+ If oTable Is Nothing Then
+ Return False
+ End If
+
+ ' If there are no rows, the file is not checked out
+ If oTable.Rows.Count > 0 Then
+ Return True
+ End If
+
+ Dim oSQL = $"UPDATE TBIDB_OBJECT_CHECK_IN_OUT
+ SET CHECKED_IN_WHEN = GETDATE(), CHANGED_WHO = '{pUsername}'
+ WHERE IDB_OBJ_ID = {pObjectId} AND ADDED_WHO = '{pUsername}' AND CHECKED_IN_WHEN IS NULL"
+ Return DatabaseIDB.ExecuteNonQuery(oSQL)
+
+ Catch ex As Exception
+ Logger.Error(ex)
+ Return False
+
+ End Try
+ End Function
+
+ Private Function TestFileIsCheckedOut(pObjectId As Long) As DataTable
+ Try
+ Dim oSqlCheck = $"SELECT * FROM TBIDB_OBJECT_CHECK_IN_OUT WHERE IDB_OBJ_ID = {pObjectId} AND CHECKED_IN_WHEN IS NULL"
+ Dim oTable As DataTable = DatabaseIDB.GetDatatable(oSqlCheck)
+
+ Return oTable
+ Catch ex As Exception
+ Logger.Error(ex)
+ Return Nothing
+
+ End Try
+ End Function
+
+
+ End Class
+
+End Namespace
\ No newline at end of file
diff --git a/Service.EDMIService/Methods/IDB/CheckInOutFile/CheckInOutFileRequest.vb b/Service.EDMIService/Methods/IDB/CheckInOutFile/CheckInOutFileRequest.vb
new file mode 100644
index 00000000..e6e1cb2e
--- /dev/null
+++ b/Service.EDMIService/Methods/IDB/CheckInOutFile/CheckInOutFileRequest.vb
@@ -0,0 +1,31 @@
+Imports System.Runtime.Serialization
+Imports DigitalData.Modules.ZooFlow.State
+
+Namespace Methods.IDB.CheckInOutFile
+
+
+ Public Class CheckInOutFileRequest
+
+ Public Property ObjectId As Long
+
+
+ Public Property Comment As Long
+
+
+ Public Property Action As CheckInOutFileAction
+
+ '''
+ ''' User Importing the file
+ '''
+ '''
+
+ Public Property User As UserState
+ End Class
+
+ Public Enum CheckInOutFileAction
+ CheckIn
+ CheckOut
+ End Enum
+
+End Namespace
+
diff --git a/Service.EDMIService/Methods/IDB/CheckInOutFile/CheckInOutFileResponse.vb b/Service.EDMIService/Methods/IDB/CheckInOutFile/CheckInOutFileResponse.vb
new file mode 100644
index 00000000..a8872a5d
--- /dev/null
+++ b/Service.EDMIService/Methods/IDB/CheckInOutFile/CheckInOutFileResponse.vb
@@ -0,0 +1,21 @@
+Imports System.Runtime.Serialization
+
+Namespace Methods.IDB.CheckInOutFile
+
+
+ Public Class CheckInOutFileResponse
+ Inherits Messages.BaseResponse
+
+
+ Public Property ObjectId As Long
+
+ Public Sub New(pObjectId As Long)
+ MyBase.New()
+ ObjectId = pObjectId
+ End Sub
+
+ Public Sub New(pException As Exception, Optional pDetails As String = "")
+ MyBase.New(pException, pDetails)
+ End Sub
+ End Class
+End Namespace