EDMI: Add CheckInOutFile Method

This commit is contained in:
Jonathan Jenne 2022-03-25 16:06:00 +01:00
parent 13e2b6413b
commit 3dc62ae677
20 changed files with 564 additions and 64 deletions

View File

@ -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

View File

@ -388,7 +388,7 @@
<data name="MenuItemFolderpathCopy.Caption" xml:space="preserve">
<value>Ordnerpfad kopieren</value>
</data>
<data name="MenuItemPropertiesECM.Caption" xml:space="preserve">
<data name="MenuItemProperties.Caption" xml:space="preserve">
<value>Eigenschaften</value>
</data>
<data name="MenuItemPropertiesECM.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
@ -447,16 +447,16 @@
<data name="BarButtonItem6.Caption" xml:space="preserve">
<value>Fenster Layout zurücksetzen</value>
</data>
<data name="BarButtonItem7.Caption" xml:space="preserve">
<data name="MenuItemStartAdhocWorkflow.Caption" xml:space="preserve">
<value>Adhoc Workflow starten</value>
</data>
<data name="BarButtonItem8.Caption" xml:space="preserve">
<data name="MenuItemCheckInFile.Caption" xml:space="preserve">
<value>Einchecken</value>
</data>
<data name="BarButtonItem9.Caption" xml:space="preserve">
<data name="MenuItemCheckOutFile.Caption" xml:space="preserve">
<value>Auschecken</value>
</data>
<data name="BarButtonItem10.Caption" xml:space="preserve">
<data name="MenuItemVersionFile.Caption" xml:space="preserve">
<value>Versionieren</value>
</data>
<data name="chkGridShowQuickfilter.Caption" xml:space="preserve">
@ -861,10 +861,10 @@
<data name="&gt;&gt;MenuItemFolderpathCopy.Type" xml:space="preserve">
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;MenuItemPropertiesECM.Name" xml:space="preserve">
<value>MenuItemPropertiesECM</value>
<data name="&gt;&gt;MenuItemProperties.Name" xml:space="preserve">
<value>MenuItemProperties</value>
</data>
<data name="&gt;&gt;MenuItemPropertiesECM.Type" xml:space="preserve">
<data name="&gt;&gt;MenuItemProperties.Type" xml:space="preserve">
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;MenuItemsOpenFileZooFlow.Name" xml:space="preserve">
@ -921,28 +921,28 @@
<data name="&gt;&gt;BarButtonItem6.Type" xml:space="preserve">
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;BarButtonItem7.Name" xml:space="preserve">
<value>BarButtonItem7</value>
<data name="&gt;&gt;MenuItemStartAdhocWorkflow.Name" xml:space="preserve">
<value>MenuItemStartAdhocWorkflow</value>
</data>
<data name="&gt;&gt;BarButtonItem7.Type" xml:space="preserve">
<data name="&gt;&gt;MenuItemStartAdhocWorkflow.Type" xml:space="preserve">
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;BarButtonItem8.Name" xml:space="preserve">
<value>BarButtonItem8</value>
<data name="&gt;&gt;MenuItemCheckInFile.Name" xml:space="preserve">
<value>MenuItemCheckInFile</value>
</data>
<data name="&gt;&gt;BarButtonItem8.Type" xml:space="preserve">
<data name="&gt;&gt;MenuItemCheckInFile.Type" xml:space="preserve">
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;BarButtonItem9.Name" xml:space="preserve">
<value>BarButtonItem9</value>
<data name="&gt;&gt;MenuItemCheckOutFile.Name" xml:space="preserve">
<value>MenuItemCheckOutFile</value>
</data>
<data name="&gt;&gt;BarButtonItem9.Type" xml:space="preserve">
<data name="&gt;&gt;MenuItemCheckOutFile.Type" xml:space="preserve">
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;BarButtonItem10.Name" xml:space="preserve">
<value>BarButtonItem10</value>
<data name="&gt;&gt;MenuItemVersionFile.Name" xml:space="preserve">
<value>MenuItemVersionFile</value>
</data>
<data name="&gt;&gt;BarButtonItem10.Type" xml:space="preserve">
<data name="&gt;&gt;MenuItemVersionFile.Type" xml:space="preserve">
<value>DevExpress.XtraBars.BarButtonItem, DevExpress.XtraBars.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="&gt;&gt;chkGridShowQuickfilter.Name" xml:space="preserve">

View File

@ -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

View File

@ -25,6 +25,13 @@
Public Property DateImported As Date = Date.Now
End Class
''' <summary>
''' Import options for NewFileAsync.
''' </summary>
Public Class CheckOutInOptions
Inherits BaseOptions
End Class
Public Class UpdateFileOptions
Inherits BaseOptions

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="CheckInOutFileResponse" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>DigitalData.Modules.EDMI.API.EDMIServiceReference.CheckInOutFileResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>

View File

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.IDB.CheckInOutFile" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.IDB.CheckInOutFile" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Modules.ZooFlow.State" />
<xs:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" />
<xs:complexType name="CheckInOutFileRequest">
<xs:sequence>
<xs:element minOccurs="0" name="Action" type="tns:CheckInOutFileAction" />
<xs:element minOccurs="0" name="Comment" type="xs:long" />
<xs:element minOccurs="0" name="ObjectId" type="xs:long" />
<xs:element xmlns:q1="http://schemas.datacontract.org/2004/07/DigitalData.Modules.ZooFlow.State" minOccurs="0" name="User" nillable="true" type="q1:UserState" />
</xs:sequence>
</xs:complexType>
<xs:element name="CheckInOutFileRequest" nillable="true" type="tns:CheckInOutFileRequest" />
<xs:simpleType name="CheckInOutFileAction">
<xs:restriction base="xs:string">
<xs:enumeration value="CheckIn" />
<xs:enumeration value="CheckOut" />
</xs:restriction>
</xs:simpleType>
<xs:element name="CheckInOutFileAction" nillable="true" type="tns:CheckInOutFileAction" />
<xs:complexType name="CheckInOutFileResponse">
<xs:complexContent mixed="false">
<xs:extension xmlns:q2="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" base="q2:BaseResponse">
<xs:sequence>
<xs:element minOccurs="0" name="ObjectId" type="xs:long" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="CheckInOutFileResponse" nillable="true" type="tns:CheckInOutFileResponse" />
</xs:schema>

View File

@ -24,6 +24,7 @@
<xsd:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.IDB.GetAttributeValue" />
<xsd:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.GlobalIndexer.ImportFile" />
<xsd:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.IDB.GetFileObject" />
<xsd:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.IDB.CheckInOutFile" />
<xsd:import namespace="http://schemas.microsoft.com/Message" />
<xsd:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Modules.EDMI.API" />
</xsd:schema>
@ -193,6 +194,12 @@
<wsdl:message name="IEDMIService_GetFileObject_OutputMessage">
<wsdl:part name="parameters" element="tns:GetFileObjectResponse" />
</wsdl:message>
<wsdl:message name="IEDMIService_CheckInOutFile_InputMessage">
<wsdl:part name="parameters" element="tns:CheckInOutFile" />
</wsdl:message>
<wsdl:message name="IEDMIService_CheckInOutFile_OutputMessage">
<wsdl:part name="parameters" element="tns:CheckInOutFileResponse" />
</wsdl:message>
<wsdl:message name="DocumentStreamRequest">
<wsdl:part name="parameters" element="tns:DocumentStreamRequest" />
</wsdl:message>
@ -333,6 +340,10 @@
<wsdl:input wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/GetFileObject" message="tns:IEDMIService_GetFileObject_InputMessage" />
<wsdl:output wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/GetFileObjectResponse" message="tns:IEDMIService_GetFileObject_OutputMessage" />
</wsdl:operation>
<wsdl:operation name="CheckInOutFile">
<wsdl:input wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/CheckInOutFile" message="tns:IEDMIService_CheckInOutFile_InputMessage" />
<wsdl:output wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/CheckInOutFileResponse" message="tns:IEDMIService_CheckInOutFile_OutputMessage" />
</wsdl:operation>
<wsdl:operation name="GetFileByObjectId">
<wsdl:input wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/GetFileByObjectId" name="DocumentStreamRequest" message="tns:DocumentStreamRequest" />
<wsdl:output wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/GetFileByObjectIdResponse" name="DocumentStreamResponse" message="tns:DocumentStreamResponse" />

View File

@ -12,6 +12,7 @@
<xs:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.IDB.GetAttributeValue" />
<xs:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.GlobalIndexer.ImportFile" />
<xs:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.IDB.GetFileObject" />
<xs:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.IDB.CheckInOutFile" />
<xs:import namespace="http://schemas.microsoft.com/Message" />
<xs:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Modules.EDMI.API" />
<xs:element name="Heartbeat">
@ -318,6 +319,20 @@
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="CheckInOutFile">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q31="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.IDB.CheckInOutFile" minOccurs="0" name="Data" nillable="true" type="q31:CheckInOutFileRequest" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="CheckInOutFileResponse">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q32="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.IDB.CheckInOutFile" minOccurs="0" name="CheckInOutFileResult" nillable="true" type="q32:CheckInOutFileResponse" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="DocumentStreamRequest">
<xs:complexType>
<xs:sequence>
@ -328,7 +343,7 @@
<xs:element name="DocumentStreamResponse">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q31="http://schemas.microsoft.com/Message" name="FileContents" type="q31:StreamBody" />
<xs:element xmlns:q33="http://schemas.microsoft.com/Message" name="FileContents" type="q33:StreamBody" />
</xs:sequence>
</xs:complexType>
</xs:element>
@ -344,7 +359,7 @@
<xs:element name="DocumentInfoResponse">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q32="http://schemas.datacontract.org/2004/07/DigitalData.Modules.EDMI.API" minOccurs="0" name="FileRight" type="q32:Rights.AccessRight" />
<xs:element xmlns:q34="http://schemas.datacontract.org/2004/07/DigitalData.Modules.EDMI.API" minOccurs="0" name="FileRight" type="q34:Rights.AccessRight" />
<xs:element minOccurs="0" name="FullPath" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>

View File

@ -46,6 +46,7 @@
<MetadataFile FileName="DigitalData.Services.EDMIService.Methods.IDB.GetAttributeValue.xsd" MetadataType="Schema" ID="0398486a-339a-41c8-aedd-fdc1efe407cb" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
<MetadataFile FileName="DigitalData.Services.EDMIService.Methods.GlobalIndexer.ImportFile.xsd" MetadataType="Schema" ID="4c9227ac-82b3-4aff-bcb3-eab453dc69c5" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
<MetadataFile FileName="DigitalData.Services.EDMIService.Methods.IDB.GetFileObject.xsd" MetadataType="Schema" ID="df5739a1-d592-43d7-9307-fa8e5580635c" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
<MetadataFile FileName="DigitalData.Services.EDMIService.Methods.IDB.CheckInOutFile.xsd" MetadataType="Schema" ID="2f515449-eca7-48fd-830c-d41ac5160a59" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
<MetadataFile FileName="Message.xsd" MetadataType="Schema" ID="2589e82f-d68f-4843-b153-a80edf895f82" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
<MetadataFile FileName="DigitalData.Modules.EDMI.API.xsd" MetadataType="Schema" ID="4eca5a54-795a-4e5b-a3b1-10c24930efec" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
</Metadata>

View File

@ -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
<System.Diagnostics.DebuggerStepThroughAttribute(), _
System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0"), _
System.Runtime.Serialization.DataContractAttribute(Name:="CheckInOutFileResponse", [Namespace]:="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods."& _
"IDB.CheckInOutFile"), _
System.SerializableAttribute()> _
Partial Public Class CheckInOutFileResponse
Inherits EDMIServiceReference.BaseResponse
<System.Runtime.Serialization.OptionalFieldAttribute()> _
Private ObjectIdField As Long
<System.Runtime.Serialization.DataMemberAttribute()> _
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
<System.Diagnostics.DebuggerStepThroughAttribute(), _
System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0"), _
System.Runtime.Serialization.DataContractAttribute(Name:="GetClientConfigResponse", [Namespace]:="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods."& _
@ -2322,6 +2357,114 @@ Namespace EDMIServiceReference
End Sub
End Class
<System.Diagnostics.DebuggerStepThroughAttribute(), _
System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0"), _
System.Runtime.Serialization.DataContractAttribute(Name:="CheckInOutFileRequest", [Namespace]:="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods."& _
"IDB.CheckInOutFile"), _
System.SerializableAttribute()> _
Partial Public Class CheckInOutFileRequest
Inherits Object
Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
<System.NonSerializedAttribute()> _
Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject
<System.Runtime.Serialization.OptionalFieldAttribute()> _
Private ActionField As EDMIServiceReference.CheckInOutFileAction
<System.Runtime.Serialization.OptionalFieldAttribute()> _
Private CommentField As Long
<System.Runtime.Serialization.OptionalFieldAttribute()> _
Private ObjectIdField As Long
<System.Runtime.Serialization.OptionalFieldAttribute()> _
Private UserField As EDMIServiceReference.UserState
<Global.System.ComponentModel.BrowsableAttribute(false)> _
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
<System.Runtime.Serialization.DataMemberAttribute()> _
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
<System.Runtime.Serialization.DataMemberAttribute()> _
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
<System.Runtime.Serialization.DataMemberAttribute()> _
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
<System.Runtime.Serialization.DataMemberAttribute()> _
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
<System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0"), _
System.Runtime.Serialization.DataContractAttribute(Name:="CheckInOutFileAction", [Namespace]:="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods."& _
"IDB.CheckInOutFile")> _
Public Enum CheckInOutFileAction As Integer
<System.Runtime.Serialization.EnumMemberAttribute()> _
CheckIn = 0
<System.Runtime.Serialization.EnumMemberAttribute()> _
CheckOut = 1
End Enum
<System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0"), _
System.Runtime.Serialization.DataContractAttribute(Name:="Rights.AccessRight", [Namespace]:="http://schemas.datacontract.org/2004/07/DigitalData.Modules.EDMI.API")> _
Public Enum RightsAccessRight As Integer
@ -2525,6 +2668,12 @@ Namespace EDMIServiceReference
<System.ServiceModel.OperationContractAttribute(Action:="http://DigitalData.Services.EDMIService/IEDMIService/GetFileObject", ReplyAction:="http://DigitalData.Services.EDMIService/IEDMIService/GetFileObjectResponse")> _
Function GetFileObjectAsync(ByVal Data As EDMIServiceReference.GetFileObjectRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.GetFileObjectResponse)
<System.ServiceModel.OperationContractAttribute(Action:="http://DigitalData.Services.EDMIService/IEDMIService/CheckInOutFile", ReplyAction:="http://DigitalData.Services.EDMIService/IEDMIService/CheckInOutFileResponse")> _
Function CheckInOutFile(ByVal Data As EDMIServiceReference.CheckInOutFileRequest) As EDMIServiceReference.CheckInOutFileResponse
<System.ServiceModel.OperationContractAttribute(Action:="http://DigitalData.Services.EDMIService/IEDMIService/CheckInOutFile", ReplyAction:="http://DigitalData.Services.EDMIService/IEDMIService/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.
<System.ServiceModel.OperationContractAttribute(Action:="http://DigitalData.Services.EDMIService/IEDMIService/GetFileByObjectId", ReplyAction:="http://DigitalData.Services.EDMIService/IEDMIService/GetFileByObjectIdResponse"), _
System.ServiceModel.FaultContractAttribute(GetType(EDMIServiceReference.ObjectDoesNotExistFault), Action:="http://DigitalData.Services.EDMIService/IEDMIService/GetFileByObjectIdObjectDoesN"& _
@ -2938,6 +3087,14 @@ Namespace EDMIServiceReference
Return MyBase.Channel.GetFileObjectAsync(Data)
End Function
Public Function CheckInOutFile(ByVal Data As EDMIServiceReference.CheckInOutFileRequest) As EDMIServiceReference.CheckInOutFileResponse Implements EDMIServiceReference.IEDMIService.CheckInOutFile
Return MyBase.Channel.CheckInOutFile(Data)
End Function
Public Function CheckInOutFileAsync(ByVal Data As EDMIServiceReference.CheckInOutFileRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.CheckInOutFileResponse) Implements EDMIServiceReference.IEDMIService.CheckInOutFileAsync
Return MyBase.Channel.CheckInOutFileAsync(Data)
End Function
<System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)> _
Function EDMIServiceReference_IEDMIService_GetFileByObjectId(ByVal request As EDMIServiceReference.DocumentStreamRequest) As EDMIServiceReference.DocumentStreamResponse Implements EDMIServiceReference.IEDMIService.GetFileByObjectId
Return MyBase.Channel.GetFileByObjectId(request)

View File

@ -272,6 +272,15 @@
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="CheckInOutFile">
<soap12:operation soapAction="http://DigitalData.Services.EDMIService/IEDMIService/CheckInOutFile" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetFileByObjectId">
<soap12:operation soapAction="http://DigitalData.Services.EDMIService/IEDMIService/GetFileByObjectId" style="document" />
<wsdl:input name="DocumentStreamRequest">

View File

@ -79,6 +79,8 @@
<Compile Include="Modules\BaseMethod.vb" />
<Compile Include="Modules\Globix\ImportFile.vb" />
<Compile Include="Helpers.vb" />
<Compile Include="Modules\IDB\CheckOutFile.vb" />
<Compile Include="Modules\IDB\CheckInFile.vb" />
<Compile Include="Modules\IDB\NewFile.vb" />
<Compile Include="Modules\IDB\SetAttributeValue.vb" />
<Compile Include="Modules\IDB\SetObjectState.vb" />
@ -121,6 +123,9 @@
<None Include="Connected Services\EDMIServiceReference\Arrays.xsd">
<SubType>Designer</SubType>
</None>
<None Include="Connected Services\EDMIServiceReference\DigitalData.Modules.EDMI.API.EDMIServiceReference.CheckInOutFileResponse.datasource">
<DependentUpon>Reference.svcmap</DependentUpon>
</None>
<None Include="Connected Services\EDMIServiceReference\DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentInfoResponse1.datasource">
<DependentUpon>Reference.svcmap</DependentUpon>
</None>
@ -205,6 +210,9 @@
<None Include="Connected Services\EDMIServiceReference\DigitalData.Services.EDMIService.Methods.GlobalIndexer.ImportFile.xsd">
<SubType>Designer</SubType>
</None>
<None Include="Connected Services\EDMIServiceReference\DigitalData.Services.EDMIService.Methods.IDB.CheckInOutFile.xsd">
<SubType>Designer</SubType>
</None>
<None Include="Connected Services\EDMIServiceReference\DigitalData.Services.EDMIService.Methods.IDB.GetAttributeValue.xsd">
<SubType>Designer</SubType>
</None>

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -145,6 +145,9 @@
<Compile Include="Methods\Database\GetDatatable\GetDatatableMethod.vb" />
<Compile Include="Methods\Database\GetDatatable\GetDatatableRequest.vb" />
<Compile Include="Methods\Database\GetDatatable\GetDatatableResponse.vb" />
<Compile Include="Methods\IDB\CheckInOutFile\CheckInOutFileMethod.vb" />
<Compile Include="Methods\IDB\CheckInOutFile\CheckInOutFileRequest.vb" />
<Compile Include="Methods\IDB\CheckInOutFile\CheckInOutFileResponse.vb" />
<Compile Include="Methods\IDB\FileProperties.vb" />
<Compile Include="Methods\IDB\GetAttributeValue\GetAttributeValueMethod.vb" />
<Compile Include="Methods\IDB\GetAttributeValue\GetAttributeValueRequest.vb" />

View File

@ -97,6 +97,9 @@ Interface IEDMIService
<OperationContract>
Function GetFileObject(Data As GetFileObject.GetFileObjectRequest) As GetFileObject.GetFileObjectResponse
<OperationContract>
Function CheckInOutFile(Data As CheckInOutFile.CheckInOutFileRequest) As CheckInOutFile.CheckInOutFileResponse
#End Region
#Region "Document (Old)"

View File

@ -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

View File

@ -0,0 +1,31 @@
Imports System.Runtime.Serialization
Imports DigitalData.Modules.ZooFlow.State
Namespace Methods.IDB.CheckInOutFile
<Serializable>
<DataContract>
Public Class CheckInOutFileRequest
<DataMember>
Public Property ObjectId As Long
<DataMember>
Public Property Comment As Long
<DataMember>
Public Property Action As CheckInOutFileAction
''' <summary>
''' User Importing the file
''' </summary>
''' <returns></returns>
<DataMember>
Public Property User As UserState
End Class
Public Enum CheckInOutFileAction
CheckIn
CheckOut
End Enum
End Namespace

View File

@ -0,0 +1,21 @@
Imports System.Runtime.Serialization
Namespace Methods.IDB.CheckInOutFile
<Serializable>
<DataContract>
Public Class CheckInOutFileResponse
Inherits Messages.BaseResponse
<DataMember>
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