EDMIService: Automatic indexing, more consolidation of globix logic
This commit is contained in:
parent
34517ce209
commit
785b138c57
@ -160,7 +160,9 @@ Public Class Client
|
||||
},
|
||||
.KindType = pObjectKind,
|
||||
.StoreName = pObjectStoreName,
|
||||
.Who = pImportOptions.Username
|
||||
.User = New UserState With {
|
||||
.UserName = pImportOptions.Username
|
||||
}
|
||||
})
|
||||
|
||||
If oFileImportResponse.OK = False Then
|
||||
@ -176,58 +178,61 @@ Public Class Client
|
||||
End Try
|
||||
End Function
|
||||
|
||||
'Public Function ImportFileAsync(pFilePath As String, pObjectStoreName As String, pObjectKind As String, pBusinessEntity As String, Optional pImportOptions As NewFileOptions = Nothing)
|
||||
' Try
|
||||
' ' Set default options
|
||||
' If pImportOptions Is Nothing Then
|
||||
' pImportOptions = New NewFileOptions()
|
||||
' End If
|
||||
Public Async Function ImportFileAsync(pFilePath As String, pObjectStoreName As String, pObjectKind As String, pBusinessEntity As String, Optional pImportOptions As NewFileOptions = Nothing) As Task(Of Long)
|
||||
Try
|
||||
' Set default options
|
||||
If pImportOptions Is Nothing Then
|
||||
pImportOptions = New NewFileOptions()
|
||||
End If
|
||||
|
||||
' ' Check if file exists
|
||||
' If File.Exists(pFilePath) = False Then
|
||||
' Throw New FileNotFoundException("Path does not exist")
|
||||
' End If
|
||||
' Check if file exists
|
||||
If File.Exists(pFilePath) = False Then
|
||||
Throw New FileNotFoundException("Path does not exist")
|
||||
End If
|
||||
|
||||
' Dim oFileInfo As New FileInfo(pFilePath)
|
||||
' Dim oExtension As String = oFileInfo.Extension
|
||||
Dim oFileInfo As New FileInfo(pFilePath)
|
||||
Dim oExtension As String = oFileInfo.Extension
|
||||
|
||||
' Dim oFileName As String = oFileInfo.Name
|
||||
' Dim oFileCreatedAt As Date = oFileInfo?.CreationTime
|
||||
' Dim oFileModifiedAt As Date = oFileInfo?.LastWriteTime
|
||||
' Dim oFileHash As String = _FileEx.GetChecksum(oFileInfo.FullName)
|
||||
Dim oFileName As String = oFileInfo.Name
|
||||
Dim oFileCreatedAt As Date = oFileInfo?.CreationTime
|
||||
Dim oFileModifiedAt As Date = oFileInfo?.LastWriteTime
|
||||
Dim oFileHash As String = _FileEx.GetChecksum(oFileInfo.FullName)
|
||||
|
||||
' ' Importing the file now
|
||||
' Using oFileStream As New FileStream(pFilePath, FileMode.Open, FileAccess.Read)
|
||||
' Using oMemoryStream As New MemoryStream()
|
||||
' oFileStream.CopyTo(oMemoryStream)
|
||||
' Dim oContents = oMemoryStream.ToArray()
|
||||
' Importing the file now
|
||||
Using oFileStream As New FileStream(pFilePath, FileMode.Open, FileAccess.Read)
|
||||
Using oMemoryStream As New MemoryStream()
|
||||
oFileStream.CopyTo(oMemoryStream)
|
||||
Dim oContents = oMemoryStream.ToArray()
|
||||
|
||||
' Dim oFileImportResponse = Await _channel.NewFIleAsync (New NewFileRequest With {
|
||||
' .BusinessEntity = pBusinessEntity,
|
||||
' .File = New FileProperties With {
|
||||
' .FileName = oFileInfo.Name,
|
||||
' .FileCreatedAt = oFileCreatedAt,
|
||||
' .FileChangedAt = oFileModifiedAt,
|
||||
' .FileContents = oContents,
|
||||
' .FileImportedAt = pImportOptions.DateImported,
|
||||
' .FileChecksum = oFileHash
|
||||
' },
|
||||
' .KindType = pObjectKind,
|
||||
' .StoreName = pObjectStoreName,
|
||||
' .Who = pImportOptions.Username
|
||||
' })
|
||||
' If oFileImportResponse.OK = False Then
|
||||
' Throw New ApplicationException("Could not Import File Contents!")
|
||||
' End If
|
||||
Dim oFileImportResponse = Await _channel.ImportFileAsync(New ImportFileRequest With {
|
||||
.BusinessEntity = pBusinessEntity,
|
||||
.File = New FileProperties With {
|
||||
.FileName = oFileInfo.Name,
|
||||
.FileCreatedAt = oFileCreatedAt,
|
||||
.FileChangedAt = oFileModifiedAt,
|
||||
.FileContents = oContents,
|
||||
.FileImportedAt = pImportOptions.DateImported,
|
||||
.FileChecksum = oFileHash,
|
||||
.FileInfoRaw = oFileInfo
|
||||
},
|
||||
.KindType = pObjectKind,
|
||||
.StoreName = pObjectStoreName,
|
||||
.User = New UserState With {
|
||||
.UserName = pImportOptions.Username
|
||||
}
|
||||
})
|
||||
If oFileImportResponse.OK = False Then
|
||||
Throw New ApplicationException("Could not Import File Contents!")
|
||||
End If
|
||||
|
||||
' Return oFileImportResponse.ObjectId
|
||||
' End Using
|
||||
' End Using
|
||||
' Catch ex As Exception
|
||||
' _logger.Error(ex)
|
||||
' Return INVALID_OBEJCT_ID
|
||||
' End Try
|
||||
'End Function
|
||||
Return oFileImportResponse.ObjectId
|
||||
End Using
|
||||
End Using
|
||||
Catch ex As Exception
|
||||
_logger.Error(ex)
|
||||
Return INVALID_OBEJCT_ID
|
||||
End Try
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' Sets a value to an attribute
|
||||
|
||||
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xs:schema xmlns:tns="http://schemas.microsoft.com/2003/10/Serialization/Arrays" elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:complexType name="ArrayOfstring">
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="xs:string" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:element name="ArrayOfstring" nillable="true" type="tns:ArrayOfstring" />
|
||||
</xs:schema>
|
||||
@ -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="ImportFileResponse" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
|
||||
<TypeInfo>DigitalData.Modules.EDMI.API.EDMIServiceReference.ImportFileResponse, Connected Services.EDMIServiceReference.Reference.vb.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
|
||||
</GenericObjectDataSource>
|
||||
@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xs:schema xmlns:tns="http://schemas.datacontract.org/2004/07/DigitalData.Modules.ZooFlow.State" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/DigitalData.Modules.ZooFlow.State" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:complexType name="UserState">
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" name="DateFormat" nillable="true" type="xs:string" />
|
||||
<xs:element minOccurs="0" name="Email" nillable="true" type="xs:string" />
|
||||
<xs:element minOccurs="0" name="GivenName" nillable="true" type="xs:string" />
|
||||
<xs:element minOccurs="0" name="HideBasicConfig" type="xs:boolean" />
|
||||
<xs:element minOccurs="0" name="IsAdmin" type="xs:boolean" />
|
||||
<xs:element minOccurs="0" name="Language" nillable="true" type="xs:string" />
|
||||
<xs:element minOccurs="0" name="LanguageId" type="xs:int" />
|
||||
<xs:element minOccurs="0" name="MachineName" nillable="true" type="xs:string" />
|
||||
<xs:element minOccurs="0" name="ShortName" nillable="true" type="xs:string" />
|
||||
<xs:element minOccurs="0" name="Surname" nillable="true" type="xs:string" />
|
||||
<xs:element minOccurs="0" name="UserId" type="xs:int" />
|
||||
<xs:element minOccurs="0" name="UserName" nillable="true" type="xs:string" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:element name="UserState" nillable="true" type="tns:UserState" />
|
||||
</xs:schema>
|
||||
@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xs:schema xmlns:tns="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.GlobalIndexer.ImportFile" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.GlobalIndexer.ImportFile" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods" />
|
||||
<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="ImportFileRequest">
|
||||
<xs:sequence>
|
||||
<xs:element xmlns:q1="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods" minOccurs="0" name="AttributeValues" nillable="true" type="q1:ArrayOfUserAttributeValue" />
|
||||
<xs:element minOccurs="0" name="BusinessEntity" nillable="true" type="xs:string" />
|
||||
<xs:element xmlns:q2="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods" minOccurs="0" name="File" nillable="true" type="q2:FileProperties" />
|
||||
<xs:element minOccurs="0" name="KindType" nillable="true" type="xs:string" />
|
||||
<xs:element minOccurs="0" name="ProfileId" type="xs:int" />
|
||||
<xs:element minOccurs="0" name="StoreName" nillable="true" type="xs:string" />
|
||||
<xs:element xmlns:q3="http://schemas.datacontract.org/2004/07/DigitalData.Modules.ZooFlow.State" minOccurs="0" name="User" nillable="true" type="q3:UserState" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:element name="ImportFileRequest" nillable="true" type="tns:ImportFileRequest" />
|
||||
<xs:complexType name="ImportFileResponse">
|
||||
<xs:complexContent mixed="false">
|
||||
<xs:extension xmlns:q4="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" base="q4:BaseResponse">
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" name="ObjectId" type="xs:long" />
|
||||
</xs:sequence>
|
||||
</xs:extension>
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<xs:element name="ImportFileResponse" nillable="true" type="tns:ImportFileResponse" />
|
||||
</xs:schema>
|
||||
@ -1,21 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xs:schema xmlns:tns="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.NewFile" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.NewFile" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods" />
|
||||
<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="NewFileRequest">
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" name="BusinessEntity" nillable="true" type="xs:string" />
|
||||
<xs:element xmlns:q1="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods" minOccurs="0" name="File" nillable="true" type="q1:FileProperties" />
|
||||
<xs:element minOccurs="0" name="KindType" nillable="true" type="xs:string" />
|
||||
<xs:element minOccurs="0" name="Language" nillable="true" type="xs:string" />
|
||||
<xs:element minOccurs="0" name="StoreName" nillable="true" type="xs:string" />
|
||||
<xs:element minOccurs="0" name="Who" nillable="true" type="xs:string" />
|
||||
<xs:element xmlns:q2="http://schemas.datacontract.org/2004/07/DigitalData.Modules.ZooFlow.State" minOccurs="0" name="User" nillable="true" type="q2:UserState" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:element name="NewFileRequest" nillable="true" type="tns:NewFileRequest" />
|
||||
<xs:complexType name="NewFileResponse">
|
||||
<xs:complexContent mixed="false">
|
||||
<xs:extension xmlns:q2="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" base="q2:BaseResponse">
|
||||
<xs:extension xmlns:q3="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" base="q3:BaseResponse">
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" name="ObjectId" type="xs:long" />
|
||||
</xs:sequence>
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xs:schema xmlns:tns="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:import namespace="http://schemas.datacontract.org/2004/07/System.IO" />
|
||||
<xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
|
||||
<xs:complexType name="FileProperties">
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" name="FileChangedAt" nillable="true" type="xs:string" />
|
||||
@ -7,8 +9,24 @@
|
||||
<xs:element minOccurs="0" name="FileContents" nillable="true" type="xs:base64Binary" />
|
||||
<xs:element minOccurs="0" name="FileCreatedAt" nillable="true" type="xs:string" />
|
||||
<xs:element minOccurs="0" name="FileImportedAt" type="xs:dateTime" />
|
||||
<xs:element xmlns:q1="http://schemas.datacontract.org/2004/07/System.IO" minOccurs="0" name="FileInfoRaw" nillable="true" type="q1:FileInfo" />
|
||||
<xs:element minOccurs="0" name="FileName" nillable="true" type="xs:string" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:element name="FileProperties" nillable="true" type="tns:FileProperties" />
|
||||
<xs:complexType name="ArrayOfUserAttributeValue">
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" maxOccurs="unbounded" name="UserAttributeValue" nillable="true" type="tns:UserAttributeValue" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:element name="ArrayOfUserAttributeValue" nillable="true" type="tns:ArrayOfUserAttributeValue" />
|
||||
<xs:complexType name="UserAttributeValue">
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" name="AttributeId" type="xs:int" />
|
||||
<xs:element minOccurs="0" name="AttributeName" nillable="true" type="xs:string" />
|
||||
<xs:element xmlns:q2="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="AttributeValues" nillable="true" type="q2:ArrayOfstring" />
|
||||
<xs:element minOccurs="0" name="ControlName" nillable="true" type="xs:string" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:element name="UserAttributeValue" nillable="true" type="tns:UserAttributeValue" />
|
||||
</xs:schema>
|
||||
@ -10,7 +10,11 @@
|
||||
<xsd:import namespace="http://schemas.datacontract.org/2004/07/System.Data" />
|
||||
<xsd:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.NewFile" />
|
||||
<xsd:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods" />
|
||||
<xsd:import namespace="http://schemas.datacontract.org/2004/07/System.IO" />
|
||||
<xsd:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Modules.ZooFlow.State" />
|
||||
<xsd:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.SetAttributeValue" />
|
||||
<xsd:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.GlobalIndexer.ImportFile" />
|
||||
<xsd:import namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
|
||||
<xsd:import namespace="http://schemas.microsoft.com/Message" />
|
||||
<xsd:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Modules.EDMI.API" />
|
||||
</xsd:schema>
|
||||
@ -126,6 +130,12 @@
|
||||
<wsdl:message name="IEDMIService_SetAttributeValue_OutputMessage">
|
||||
<wsdl:part name="parameters" element="tns:SetAttributeValueResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="IEDMIService_ImportFile_InputMessage">
|
||||
<wsdl:part name="parameters" element="tns:ImportFile" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="IEDMIService_ImportFile_OutputMessage">
|
||||
<wsdl:part name="parameters" element="tns:ImportFileResponse" />
|
||||
</wsdl:message>
|
||||
<wsdl:message name="DocumentStreamRequest">
|
||||
<wsdl:part name="parameters" element="tns:DocumentStreamRequest" />
|
||||
</wsdl:message>
|
||||
@ -230,6 +240,10 @@
|
||||
<wsdl:input wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/SetAttributeValue" message="tns:IEDMIService_SetAttributeValue_InputMessage" />
|
||||
<wsdl:output wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/SetAttributeValueResponse" message="tns:IEDMIService_SetAttributeValue_OutputMessage" />
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="ImportFile">
|
||||
<wsdl:input wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/ImportFile" message="tns:IEDMIService_ImportFile_InputMessage" />
|
||||
<wsdl:output wsaw:Action="http://DigitalData.Services.EDMIService/IEDMIService/ImportFileResponse" message="tns:IEDMIService_ImportFile_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" />
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
<xs:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages" />
|
||||
<xs:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.NewFile" />
|
||||
<xs:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.SetAttributeValue" />
|
||||
<xs:import namespace="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.GlobalIndexer.ImportFile" />
|
||||
<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">
|
||||
@ -187,6 +188,20 @@
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="ImportFile">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element xmlns:q15="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.GlobalIndexer.ImportFile" minOccurs="0" name="Data" nillable="true" type="q15:ImportFileRequest" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="ImportFileResponse">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element xmlns:q16="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods.GlobalIndexer.ImportFile" minOccurs="0" name="ImportFileResult" nillable="true" type="q16:ImportFileResponse" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
<xs:element name="DocumentStreamRequest">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
@ -197,7 +212,7 @@
|
||||
<xs:element name="DocumentStreamResponse">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element xmlns:q15="http://schemas.microsoft.com/Message" name="FileContents" type="q15:StreamBody" />
|
||||
<xs:element xmlns:q17="http://schemas.microsoft.com/Message" name="FileContents" type="q17:StreamBody" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
@ -213,7 +228,7 @@
|
||||
<xs:element name="DocumentInfoResponse">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element xmlns:q16="http://schemas.datacontract.org/2004/07/DigitalData.Modules.EDMI.API" minOccurs="0" name="FileRight" type="q16:Rights.AccessRight" />
|
||||
<xs:element xmlns:q18="http://schemas.datacontract.org/2004/07/DigitalData.Modules.EDMI.API" minOccurs="0" name="FileRight" type="q18:Rights.AccessRight" />
|
||||
<xs:element minOccurs="0" name="FullPath" nillable="true" type="xs:string" />
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
|
||||
@ -32,7 +32,11 @@
|
||||
<MetadataFile FileName="DigitalData.Services.EDMIService.Exceptions.xsd" MetadataType="Schema" ID="57cf2e83-7c36-485a-90c3-0bc4a1748882" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
|
||||
<MetadataFile FileName="DigitalData.Services.EDMIService.Methods.NewFile.xsd" MetadataType="Schema" ID="4904e1c4-87d9-4aae-81a8-71fa8354ae1e" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
|
||||
<MetadataFile FileName="DigitalData.Services.EDMIService.Methods.xsd" MetadataType="Schema" ID="e00601d3-b9d7-40f2-b8be-337df13c7172" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
|
||||
<MetadataFile FileName="System.IO.xsd" MetadataType="Schema" ID="88cf8e31-2b3d-4d1a-9172-e7b0ea930e93" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
|
||||
<MetadataFile FileName="DigitalData.Modules.ZooFlow.State.xsd" MetadataType="Schema" ID="c9ca2958-d16e-444e-ac34-40fc3c6a86cb" SourceId="1" SourceUrl="net.tcp://172.24.12.39:9000/DigitalData/Services/Main/mex" />
|
||||
<MetadataFile FileName="DigitalData.Services.EDMIService.Methods.SetAttributeValue.xsd" MetadataType="Schema" ID="a34a2b84-4efd-4be1-83ee-bcb340176a49" 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="Arrays.xsd" MetadataType="Schema" ID="74eac9b3-9049-499b-bf42-5e443530645c" 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>
|
||||
|
||||
@ -25,6 +25,7 @@ Namespace EDMIServiceReference
|
||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.NonQueryResult)), _
|
||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.NewFileResponse)), _
|
||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.SetAttributeValueResponse)), _
|
||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.ImportFileResponse)), _
|
||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.TableResult))> _
|
||||
Partial Public Class BaseResponse
|
||||
Inherits Object
|
||||
@ -118,8 +119,16 @@ Namespace EDMIServiceReference
|
||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.NewFileRequest)), _
|
||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.NewFileResponse)), _
|
||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.FileProperties)), _
|
||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.UserAttributeValue())), _
|
||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.UserAttributeValue)), _
|
||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(System.IO.FileInfo)), _
|
||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(System.IO.FileSystemInfo)), _
|
||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.UserState)), _
|
||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.SetAttributeValueRequest)), _
|
||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.SetAttributeValueResponse)), _
|
||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.ImportFileRequest)), _
|
||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.ImportFileResponse)), _
|
||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(String())), _
|
||||
System.Runtime.Serialization.KnownTypeAttribute(GetType(EDMIServiceReference.RightsAccessRight))> _
|
||||
Partial Public Class ScalarResult
|
||||
Inherits EDMIServiceReference.BaseResponse
|
||||
@ -200,6 +209,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:="ImportFileResponse", [Namespace]:="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods."& _
|
||||
"GlobalIndexer.ImportFile"), _
|
||||
System.SerializableAttribute()> _
|
||||
Partial Public Class ImportFileResponse
|
||||
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:="TableResult", [Namespace]:="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Messages"& _
|
||||
@ -356,14 +390,11 @@ Namespace EDMIServiceReference
|
||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
||||
Private KindTypeField As String
|
||||
|
||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
||||
Private LanguageField As String
|
||||
|
||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
||||
Private StoreNameField As String
|
||||
|
||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
||||
Private WhoField As String
|
||||
Private UserField As EDMIServiceReference.UserState
|
||||
|
||||
<Global.System.ComponentModel.BrowsableAttribute(false)> _
|
||||
Public Property ExtensionData() As System.Runtime.Serialization.ExtensionDataObject Implements System.Runtime.Serialization.IExtensibleDataObject.ExtensionData
|
||||
@ -414,19 +445,6 @@ Namespace EDMIServiceReference
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<System.Runtime.Serialization.DataMemberAttribute()> _
|
||||
Public Property Language() As String
|
||||
Get
|
||||
Return Me.LanguageField
|
||||
End Get
|
||||
Set
|
||||
If (Object.ReferenceEquals(Me.LanguageField, value) <> true) Then
|
||||
Me.LanguageField = value
|
||||
Me.RaisePropertyChanged("Language")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<System.Runtime.Serialization.DataMemberAttribute()> _
|
||||
Public Property StoreName() As String
|
||||
Get
|
||||
@ -441,14 +459,14 @@ Namespace EDMIServiceReference
|
||||
End Property
|
||||
|
||||
<System.Runtime.Serialization.DataMemberAttribute()> _
|
||||
Public Property Who() As String
|
||||
Public Property User() As EDMIServiceReference.UserState
|
||||
Get
|
||||
Return Me.WhoField
|
||||
Return Me.UserField
|
||||
End Get
|
||||
Set
|
||||
If (Object.ReferenceEquals(Me.WhoField, value) <> true) Then
|
||||
Me.WhoField = value
|
||||
Me.RaisePropertyChanged("Who")
|
||||
If (Object.ReferenceEquals(Me.UserField, value) <> true) Then
|
||||
Me.UserField = value
|
||||
Me.RaisePropertyChanged("User")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
@ -489,6 +507,9 @@ Namespace EDMIServiceReference
|
||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
||||
Private FileImportedAtField As Date
|
||||
|
||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
||||
Private FileInfoRawField As System.IO.FileInfo
|
||||
|
||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
||||
Private FileNameField As String
|
||||
|
||||
@ -567,6 +588,19 @@ Namespace EDMIServiceReference
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<System.Runtime.Serialization.DataMemberAttribute()> _
|
||||
Public Property FileInfoRaw() As System.IO.FileInfo
|
||||
Get
|
||||
Return Me.FileInfoRawField
|
||||
End Get
|
||||
Set
|
||||
If (Object.ReferenceEquals(Me.FileInfoRawField, value) <> true) Then
|
||||
Me.FileInfoRawField = value
|
||||
Me.RaisePropertyChanged("FileInfoRaw")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<System.Runtime.Serialization.DataMemberAttribute()> _
|
||||
Public Property FileName() As String
|
||||
Get
|
||||
@ -590,6 +624,324 @@ 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:="UserAttributeValue", [Namespace]:="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods"), _
|
||||
System.SerializableAttribute()> _
|
||||
Partial Public Class UserAttributeValue
|
||||
Inherits Object
|
||||
Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
|
||||
|
||||
<System.NonSerializedAttribute()> _
|
||||
Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject
|
||||
|
||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
||||
Private AttributeIdField As Integer
|
||||
|
||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
||||
Private AttributeNameField As String
|
||||
|
||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
||||
Private AttributeValuesField() As String
|
||||
|
||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
||||
Private ControlNameField As String
|
||||
|
||||
<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 AttributeId() As Integer
|
||||
Get
|
||||
Return Me.AttributeIdField
|
||||
End Get
|
||||
Set
|
||||
If (Me.AttributeIdField.Equals(value) <> true) Then
|
||||
Me.AttributeIdField = value
|
||||
Me.RaisePropertyChanged("AttributeId")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<System.Runtime.Serialization.DataMemberAttribute()> _
|
||||
Public Property AttributeName() As String
|
||||
Get
|
||||
Return Me.AttributeNameField
|
||||
End Get
|
||||
Set
|
||||
If (Object.ReferenceEquals(Me.AttributeNameField, value) <> true) Then
|
||||
Me.AttributeNameField = value
|
||||
Me.RaisePropertyChanged("AttributeName")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<System.Runtime.Serialization.DataMemberAttribute()> _
|
||||
Public Property AttributeValues() As String()
|
||||
Get
|
||||
Return Me.AttributeValuesField
|
||||
End Get
|
||||
Set
|
||||
If (Object.ReferenceEquals(Me.AttributeValuesField, value) <> true) Then
|
||||
Me.AttributeValuesField = value
|
||||
Me.RaisePropertyChanged("AttributeValues")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<System.Runtime.Serialization.DataMemberAttribute()> _
|
||||
Public Property ControlName() As String
|
||||
Get
|
||||
Return Me.ControlNameField
|
||||
End Get
|
||||
Set
|
||||
If (Object.ReferenceEquals(Me.ControlNameField, value) <> true) Then
|
||||
Me.ControlNameField = value
|
||||
Me.RaisePropertyChanged("ControlName")
|
||||
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.Diagnostics.DebuggerStepThroughAttribute(), _
|
||||
System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0"), _
|
||||
System.Runtime.Serialization.DataContractAttribute(Name:="UserState", [Namespace]:="http://schemas.datacontract.org/2004/07/DigitalData.Modules.ZooFlow.State"), _
|
||||
System.SerializableAttribute()> _
|
||||
Partial Public Class UserState
|
||||
Inherits Object
|
||||
Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
|
||||
|
||||
<System.NonSerializedAttribute()> _
|
||||
Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject
|
||||
|
||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
||||
Private DateFormatField As String
|
||||
|
||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
||||
Private EmailField As String
|
||||
|
||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
||||
Private GivenNameField As String
|
||||
|
||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
||||
Private HideBasicConfigField As Boolean
|
||||
|
||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
||||
Private IsAdminField As Boolean
|
||||
|
||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
||||
Private LanguageField As String
|
||||
|
||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
||||
Private LanguageIdField As Integer
|
||||
|
||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
||||
Private MachineNameField As String
|
||||
|
||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
||||
Private ShortNameField As String
|
||||
|
||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
||||
Private SurnameField As String
|
||||
|
||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
||||
Private UserIdField As Integer
|
||||
|
||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
||||
Private UserNameField As String
|
||||
|
||||
<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 DateFormat() As String
|
||||
Get
|
||||
Return Me.DateFormatField
|
||||
End Get
|
||||
Set
|
||||
If (Object.ReferenceEquals(Me.DateFormatField, value) <> true) Then
|
||||
Me.DateFormatField = value
|
||||
Me.RaisePropertyChanged("DateFormat")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<System.Runtime.Serialization.DataMemberAttribute()> _
|
||||
Public Property Email() As String
|
||||
Get
|
||||
Return Me.EmailField
|
||||
End Get
|
||||
Set
|
||||
If (Object.ReferenceEquals(Me.EmailField, value) <> true) Then
|
||||
Me.EmailField = value
|
||||
Me.RaisePropertyChanged("Email")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<System.Runtime.Serialization.DataMemberAttribute()> _
|
||||
Public Property GivenName() As String
|
||||
Get
|
||||
Return Me.GivenNameField
|
||||
End Get
|
||||
Set
|
||||
If (Object.ReferenceEquals(Me.GivenNameField, value) <> true) Then
|
||||
Me.GivenNameField = value
|
||||
Me.RaisePropertyChanged("GivenName")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<System.Runtime.Serialization.DataMemberAttribute()> _
|
||||
Public Property HideBasicConfig() As Boolean
|
||||
Get
|
||||
Return Me.HideBasicConfigField
|
||||
End Get
|
||||
Set
|
||||
If (Me.HideBasicConfigField.Equals(value) <> true) Then
|
||||
Me.HideBasicConfigField = value
|
||||
Me.RaisePropertyChanged("HideBasicConfig")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<System.Runtime.Serialization.DataMemberAttribute()> _
|
||||
Public Property IsAdmin() As Boolean
|
||||
Get
|
||||
Return Me.IsAdminField
|
||||
End Get
|
||||
Set
|
||||
If (Me.IsAdminField.Equals(value) <> true) Then
|
||||
Me.IsAdminField = value
|
||||
Me.RaisePropertyChanged("IsAdmin")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<System.Runtime.Serialization.DataMemberAttribute()> _
|
||||
Public Property Language() As String
|
||||
Get
|
||||
Return Me.LanguageField
|
||||
End Get
|
||||
Set
|
||||
If (Object.ReferenceEquals(Me.LanguageField, value) <> true) Then
|
||||
Me.LanguageField = value
|
||||
Me.RaisePropertyChanged("Language")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<System.Runtime.Serialization.DataMemberAttribute()> _
|
||||
Public Property LanguageId() As Integer
|
||||
Get
|
||||
Return Me.LanguageIdField
|
||||
End Get
|
||||
Set
|
||||
If (Me.LanguageIdField.Equals(value) <> true) Then
|
||||
Me.LanguageIdField = value
|
||||
Me.RaisePropertyChanged("LanguageId")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<System.Runtime.Serialization.DataMemberAttribute()> _
|
||||
Public Property MachineName() As String
|
||||
Get
|
||||
Return Me.MachineNameField
|
||||
End Get
|
||||
Set
|
||||
If (Object.ReferenceEquals(Me.MachineNameField, value) <> true) Then
|
||||
Me.MachineNameField = value
|
||||
Me.RaisePropertyChanged("MachineName")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<System.Runtime.Serialization.DataMemberAttribute()> _
|
||||
Public Property ShortName() As String
|
||||
Get
|
||||
Return Me.ShortNameField
|
||||
End Get
|
||||
Set
|
||||
If (Object.ReferenceEquals(Me.ShortNameField, value) <> true) Then
|
||||
Me.ShortNameField = value
|
||||
Me.RaisePropertyChanged("ShortName")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<System.Runtime.Serialization.DataMemberAttribute()> _
|
||||
Public Property Surname() As String
|
||||
Get
|
||||
Return Me.SurnameField
|
||||
End Get
|
||||
Set
|
||||
If (Object.ReferenceEquals(Me.SurnameField, value) <> true) Then
|
||||
Me.SurnameField = value
|
||||
Me.RaisePropertyChanged("Surname")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<System.Runtime.Serialization.DataMemberAttribute()> _
|
||||
Public Property UserId() As Integer
|
||||
Get
|
||||
Return Me.UserIdField
|
||||
End Get
|
||||
Set
|
||||
If (Me.UserIdField.Equals(value) <> true) Then
|
||||
Me.UserIdField = value
|
||||
Me.RaisePropertyChanged("UserId")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<System.Runtime.Serialization.DataMemberAttribute()> _
|
||||
Public Property UserName() As String
|
||||
Get
|
||||
Return Me.UserNameField
|
||||
End Get
|
||||
Set
|
||||
If (Object.ReferenceEquals(Me.UserNameField, value) <> true) Then
|
||||
Me.UserNameField = value
|
||||
Me.RaisePropertyChanged("UserName")
|
||||
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.Diagnostics.DebuggerStepThroughAttribute(), _
|
||||
System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0"), _
|
||||
System.Runtime.Serialization.DataContractAttribute(Name:="SetAttributeValueRequest", [Namespace]:="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods."& _
|
||||
@ -702,6 +1054,150 @@ 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:="ImportFileRequest", [Namespace]:="http://schemas.datacontract.org/2004/07/DigitalData.Services.EDMIService.Methods."& _
|
||||
"GlobalIndexer.ImportFile"), _
|
||||
System.SerializableAttribute()> _
|
||||
Partial Public Class ImportFileRequest
|
||||
Inherits Object
|
||||
Implements System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged
|
||||
|
||||
<System.NonSerializedAttribute()> _
|
||||
Private extensionDataField As System.Runtime.Serialization.ExtensionDataObject
|
||||
|
||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
||||
Private AttributeValuesField() As EDMIServiceReference.UserAttributeValue
|
||||
|
||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
||||
Private BusinessEntityField As String
|
||||
|
||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
||||
Private FileField As EDMIServiceReference.FileProperties
|
||||
|
||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
||||
Private KindTypeField As String
|
||||
|
||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
||||
Private ProfileIdField As Integer
|
||||
|
||||
<System.Runtime.Serialization.OptionalFieldAttribute()> _
|
||||
Private StoreNameField As String
|
||||
|
||||
<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 AttributeValues() As EDMIServiceReference.UserAttributeValue()
|
||||
Get
|
||||
Return Me.AttributeValuesField
|
||||
End Get
|
||||
Set
|
||||
If (Object.ReferenceEquals(Me.AttributeValuesField, value) <> true) Then
|
||||
Me.AttributeValuesField = value
|
||||
Me.RaisePropertyChanged("AttributeValues")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<System.Runtime.Serialization.DataMemberAttribute()> _
|
||||
Public Property BusinessEntity() As String
|
||||
Get
|
||||
Return Me.BusinessEntityField
|
||||
End Get
|
||||
Set
|
||||
If (Object.ReferenceEquals(Me.BusinessEntityField, value) <> true) Then
|
||||
Me.BusinessEntityField = value
|
||||
Me.RaisePropertyChanged("BusinessEntity")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<System.Runtime.Serialization.DataMemberAttribute()> _
|
||||
Public Property File() As EDMIServiceReference.FileProperties
|
||||
Get
|
||||
Return Me.FileField
|
||||
End Get
|
||||
Set
|
||||
If (Object.ReferenceEquals(Me.FileField, value) <> true) Then
|
||||
Me.FileField = value
|
||||
Me.RaisePropertyChanged("File")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<System.Runtime.Serialization.DataMemberAttribute()> _
|
||||
Public Property KindType() As String
|
||||
Get
|
||||
Return Me.KindTypeField
|
||||
End Get
|
||||
Set
|
||||
If (Object.ReferenceEquals(Me.KindTypeField, value) <> true) Then
|
||||
Me.KindTypeField = value
|
||||
Me.RaisePropertyChanged("KindType")
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<System.Runtime.Serialization.DataMemberAttribute()> _
|
||||
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
|
||||
|
||||
<System.Runtime.Serialization.DataMemberAttribute()> _
|
||||
Public Property StoreName() As String
|
||||
Get
|
||||
Return Me.StoreNameField
|
||||
End Get
|
||||
Set
|
||||
If (Object.ReferenceEquals(Me.StoreNameField, value) <> true) Then
|
||||
Me.StoreNameField = value
|
||||
Me.RaisePropertyChanged("StoreName")
|
||||
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:="Rights.AccessRight", [Namespace]:="http://schemas.datacontract.org/2004/07/DigitalData.Modules.EDMI.API")> _
|
||||
Public Enum RightsAccessRight As Integer
|
||||
@ -851,6 +1347,12 @@ Namespace EDMIServiceReference
|
||||
<System.ServiceModel.OperationContractAttribute(Action:="http://DigitalData.Services.EDMIService/IEDMIService/SetAttributeValue", ReplyAction:="http://DigitalData.Services.EDMIService/IEDMIService/SetAttributeValueResponse")> _
|
||||
Function SetAttributeValueAsync(ByVal Data As EDMIServiceReference.SetAttributeValueRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.SetAttributeValueResponse)
|
||||
|
||||
<System.ServiceModel.OperationContractAttribute(Action:="http://DigitalData.Services.EDMIService/IEDMIService/ImportFile", ReplyAction:="http://DigitalData.Services.EDMIService/IEDMIService/ImportFileResponse")> _
|
||||
Function ImportFile(ByVal Data As EDMIServiceReference.ImportFileRequest) As EDMIServiceReference.ImportFileResponse
|
||||
|
||||
<System.ServiceModel.OperationContractAttribute(Action:="http://DigitalData.Services.EDMIService/IEDMIService/ImportFile", ReplyAction:="http://DigitalData.Services.EDMIService/IEDMIService/ImportFileResponse")> _
|
||||
Function ImportFileAsync(ByVal Data As EDMIServiceReference.ImportFileRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.ImportFileResponse)
|
||||
|
||||
'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"& _
|
||||
@ -1192,6 +1694,14 @@ Namespace EDMIServiceReference
|
||||
Return MyBase.Channel.SetAttributeValueAsync(Data)
|
||||
End Function
|
||||
|
||||
Public Function ImportFile(ByVal Data As EDMIServiceReference.ImportFileRequest) As EDMIServiceReference.ImportFileResponse Implements EDMIServiceReference.IEDMIService.ImportFile
|
||||
Return MyBase.Channel.ImportFile(Data)
|
||||
End Function
|
||||
|
||||
Public Function ImportFileAsync(ByVal Data As EDMIServiceReference.ImportFileRequest) As System.Threading.Tasks.Task(Of EDMIServiceReference.ImportFileResponse) Implements EDMIServiceReference.IEDMIService.ImportFileAsync
|
||||
Return MyBase.Channel.ImportFileAsync(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)
|
||||
|
||||
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xs:schema xmlns:ser="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:tns="http://schemas.datacontract.org/2004/07/System.IO" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/System.IO" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
|
||||
<xs:complexType name="FileInfo">
|
||||
<xs:complexContent mixed="false">
|
||||
<xs:extension base="tns:FileSystemInfo" />
|
||||
</xs:complexContent>
|
||||
</xs:complexType>
|
||||
<xs:element name="FileInfo" nillable="true" type="tns:FileInfo" />
|
||||
<xs:complexType name="FileSystemInfo">
|
||||
<xs:sequence>
|
||||
<xs:any minOccurs="0" maxOccurs="unbounded" namespace="##local" processContents="skip" />
|
||||
</xs:sequence>
|
||||
<xs:attribute ref="ser:FactoryType" />
|
||||
</xs:complexType>
|
||||
<xs:element name="FileSystemInfo" nillable="true" type="tns:FileSystemInfo" />
|
||||
</xs:schema>
|
||||
@ -191,6 +191,15 @@
|
||||
<soap12:body use="literal" />
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="ImportFile">
|
||||
<soap12:operation soapAction="http://DigitalData.Services.EDMIService/IEDMIService/ImportFile" 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">
|
||||
|
||||
@ -109,6 +109,9 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="app.config" />
|
||||
<None Include="Connected Services\EDMIServiceReference\Arrays.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
<None Include="Connected Services\EDMIServiceReference\DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentInfoResponse.datasource">
|
||||
<DependentUpon>Reference.svcmap</DependentUpon>
|
||||
</None>
|
||||
@ -118,6 +121,9 @@
|
||||
<None Include="Connected Services\EDMIServiceReference\DigitalData.Modules.EDMI.API.EDMIServiceReference.DocumentStreamResponse.datasource">
|
||||
<DependentUpon>Reference.svcmap</DependentUpon>
|
||||
</None>
|
||||
<None Include="Connected Services\EDMIServiceReference\DigitalData.Modules.EDMI.API.EDMIServiceReference.ImportFileResponse.datasource">
|
||||
<DependentUpon>Reference.svcmap</DependentUpon>
|
||||
</None>
|
||||
<None Include="Connected Services\EDMIServiceReference\DigitalData.Modules.EDMI.API.EDMIServiceReference.NewFileResponse.datasource">
|
||||
<DependentUpon>Reference.svcmap</DependentUpon>
|
||||
</None>
|
||||
@ -142,12 +148,18 @@
|
||||
<None Include="Connected Services\EDMIServiceReference\DigitalData.Modules.EDMI.API.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
<None Include="Connected Services\EDMIServiceReference\DigitalData.Modules.ZooFlow.State.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
<None Include="Connected Services\EDMIServiceReference\DigitalData.Services.EDMIService.Exceptions.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
<None Include="Connected Services\EDMIServiceReference\DigitalData.Services.EDMIService.Messages.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
<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.NewFile.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
@ -171,6 +183,9 @@
|
||||
<None Include="Connected Services\EDMIServiceReference\System.Data.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
<None Include="Connected Services\EDMIServiceReference\System.IO.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
<None Include="Connected Services\EDMIServiceReference\System.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
|
||||
@ -410,9 +410,7 @@ Public Class ImportZUGFeRDFiles
|
||||
AddRejectedState(oMessageId, "NoFerdsException", " Email enthielt keine ZUGFeRD-Dokumente", "", oSQLTransaction)
|
||||
|
||||
Catch ex As NoFerdsAlternateException
|
||||
' TODO
|
||||
' Maybe dont even log this 'error', since it's not really an error
|
||||
' and it might happen *A LOT*
|
||||
' TODO: Maybe dont even log this 'error', since it's not really an error and it might happen *A LOT*
|
||||
_logger.Error(ex)
|
||||
oMoveDirectory = oArgs.NonZugferdDirectory
|
||||
|
||||
|
||||
67
Modules.Patterns/Modules/FileInformation.vb
Normal file
67
Modules.Patterns/Modules/FileInformation.vb
Normal file
@ -0,0 +1,67 @@
|
||||
Imports System.IO
|
||||
Imports DigitalData.Modules.Logging
|
||||
|
||||
Namespace Modules
|
||||
Public Class FileInformation
|
||||
Inherits BaseModule
|
||||
Implements IModule
|
||||
|
||||
Public Const FILE_VALUE_FILEINFO = "FILEINFO"
|
||||
Public Const FILE_VALUE_FILENAME = "FILENAME"
|
||||
Public Const FILE_VALUE_EXTENSION = "EXTENSION"
|
||||
Public Const FILE_VALUE_FILENAME_EXT = "FILENAME_EXT"
|
||||
Public Const FILE_VALUE_DATE_CREATED = "DATE_CREATED"
|
||||
Public Const FILE_VALUE_DATE_MODIFIED = "DATE_MODIFIED"
|
||||
|
||||
Public Property PatternIdentifier As String = "FILE" Implements IModule.PatternIdentifier
|
||||
Public Property IsComplex As Boolean = False Implements IModule.IsComplex
|
||||
|
||||
Public Sub New(pLogConfig As LogConfig)
|
||||
MyBase.New(pLogConfig)
|
||||
End Sub
|
||||
|
||||
Public Function Replace(pInput As String, pReplaceMap As Dictionary(Of String, Object)) As String Implements IModule.Replace
|
||||
Dim oResult = pInput
|
||||
Dim oCounter = 0
|
||||
Dim oFileInfo As FileInfo = pReplaceMap.Item(FILE_VALUE_FILEINFO)
|
||||
|
||||
' Replace Filename without extension
|
||||
While ContainsPatternAndValue(oResult, PatternIdentifier, FILE_VALUE_FILENAME)
|
||||
Dim oFilenameWithoutExtension = Path.GetFileNameWithoutExtension(oFileInfo.Name)
|
||||
oResult = ReplacePattern(oResult, PatternIdentifier, oFilenameWithoutExtension)
|
||||
IncrementCounterOrThrow(oCounter)
|
||||
End While
|
||||
|
||||
' Replace Filename with extension
|
||||
While ContainsPatternAndValue(oResult, PatternIdentifier, FILE_VALUE_FILENAME_EXT)
|
||||
Dim oFilename As String = oFileInfo.Name
|
||||
oResult = ReplacePattern(oResult, PatternIdentifier, oFilename)
|
||||
IncrementCounterOrThrow(oCounter)
|
||||
End While
|
||||
|
||||
' Replace Extension
|
||||
While ContainsPatternAndValue(oResult, PatternIdentifier, FILE_VALUE_FILENAME_EXT)
|
||||
Dim oExtension As String = oFileInfo.Extension.Substring(1)
|
||||
oResult = ReplacePattern(oResult, PatternIdentifier, oExtension)
|
||||
IncrementCounterOrThrow(oCounter)
|
||||
End While
|
||||
|
||||
' Replace creation date
|
||||
While ContainsPatternAndValue(oResult, PatternIdentifier, FILE_VALUE_DATE_CREATED)
|
||||
Dim oDateCreated = oFileInfo.CreationTime.ToString("yyyy-MM-dd")
|
||||
oResult = ReplacePattern(oResult, PatternIdentifier, oDateCreated)
|
||||
IncrementCounterOrThrow(oCounter)
|
||||
End While
|
||||
|
||||
' Replace last modification date
|
||||
While ContainsPatternAndValue(oResult, PatternIdentifier, FILE_VALUE_DATE_CREATED)
|
||||
Dim oDateModified = oFileInfo.LastWriteTime.ToString("yyyy-MM-dd")
|
||||
oResult = ReplacePattern(oResult, PatternIdentifier, oDateModified)
|
||||
IncrementCounterOrThrow(oCounter)
|
||||
End While
|
||||
|
||||
Return oResult
|
||||
End Function
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
@ -12,6 +12,9 @@ Namespace Modules
|
||||
Public Const INT_VALUE_MACHINE = "MACHINE"
|
||||
Public Const INT_VALUE_DOMAIN = "DOMAIN"
|
||||
Public Const INT_VALUE_DATE = "DATE"
|
||||
Public Const INT_VALUE_DATE_YYYY = "DATE_YYYY"
|
||||
Public Const INT_VALUE_DATE_MM = "DATE_MM"
|
||||
Public Const INT_VALUE_DATE_DD = "DATE_DD"
|
||||
|
||||
Public Property PatternIdentifier As String = "INT" Implements IModule.PatternIdentifier
|
||||
Public Property IsComplex As Boolean = False Implements IModule.IsComplex
|
||||
@ -23,30 +26,29 @@ Namespace Modules
|
||||
Public Function Replace(pInput As String, pReplaceMap As Dictionary(Of String, Object)) As String Implements IModule.Replace
|
||||
Dim oResult = pInput
|
||||
Dim oCounter = 0
|
||||
|
||||
' Replace Username(s)
|
||||
While ContainsPatternAndValue(oResult, PatternIdentifier, INT_VALUE_USERNAME)
|
||||
oResult = ReplacePattern(oResult, PatternIdentifier, pReplaceMap.Item(INT_VALUE_USERNAME))
|
||||
IncrementCounterOrThrow(oCounter)
|
||||
End While
|
||||
|
||||
' Replace Machinename(s)
|
||||
While ContainsPatternAndValue(oResult, PatternIdentifier, INT_VALUE_MACHINE)
|
||||
oResult = ReplacePattern(oResult, PatternIdentifier, pReplaceMap.Item(INT_VALUE_MACHINE))
|
||||
IncrementCounterOrThrow(oCounter)
|
||||
End While
|
||||
|
||||
|
||||
' Replace Domainname(s)
|
||||
While ContainsPatternAndValue(oResult, PatternIdentifier, INT_VALUE_DOMAIN)
|
||||
oResult = ReplacePattern(oResult, PatternIdentifier, pReplaceMap.Item(INT_VALUE_DOMAIN))
|
||||
IncrementCounterOrThrow(oCounter)
|
||||
End While
|
||||
|
||||
Dim oNow As Date = Now
|
||||
|
||||
' Replace CurrentDate(s)
|
||||
While ContainsPatternAndValue(oResult, PatternIdentifier, INT_VALUE_DATE)
|
||||
oResult = ReplacePattern(oResult, PatternIdentifier, pReplaceMap.Item(INT_VALUE_DATE))
|
||||
oResult = ReplacePattern(oResult, PatternIdentifier, oNow.ToString("yyyy-MM-dd"))
|
||||
IncrementCounterOrThrow(oCounter)
|
||||
End While
|
||||
|
||||
' Replace Year(s)
|
||||
While ContainsPatternAndValue(oResult, PatternIdentifier, INT_VALUE_DATE_YYYY)
|
||||
oResult = ReplacePattern(oResult, PatternIdentifier, oNow.ToString("yyyy"))
|
||||
IncrementCounterOrThrow(oCounter)
|
||||
End While
|
||||
|
||||
' Replace Month(s)
|
||||
While ContainsPatternAndValue(oResult, PatternIdentifier, INT_VALUE_DATE_MM)
|
||||
oResult = ReplacePattern(oResult, PatternIdentifier, oNow.ToString("MM"))
|
||||
IncrementCounterOrThrow(oCounter)
|
||||
End While
|
||||
|
||||
' Replace Day(s)
|
||||
While ContainsPatternAndValue(oResult, PatternIdentifier, INT_VALUE_DATE_DD)
|
||||
oResult = ReplacePattern(oResult, PatternIdentifier, oNow.ToString("dd"))
|
||||
IncrementCounterOrThrow(oCounter)
|
||||
End While
|
||||
|
||||
|
||||
@ -81,6 +81,7 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Constants.vb" />
|
||||
<Compile Include="Modules\FileInformation.vb" />
|
||||
<Compile Include="Modules\IDB.vb" />
|
||||
<Compile Include="Modules\Globix.vb" />
|
||||
<Compile Include="Modules\Windream.vb" />
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
Imports System.Text.RegularExpressions
|
||||
Imports System.IO
|
||||
Imports System.Text.RegularExpressions
|
||||
Imports System.Windows.Forms
|
||||
Imports DigitalData.Controls.LookupGrid
|
||||
Imports DigitalData.Modules.Logging
|
||||
@ -65,7 +66,8 @@ Public Class Patterns2
|
||||
New Modules.Internal(LogConfig),
|
||||
New Modules.Clipboard(LogConfig),
|
||||
New Modules.Controls(LogConfig),
|
||||
New Modules.User(LogConfig)
|
||||
New Modules.User(LogConfig),
|
||||
New Modules.FileInformation(LogConfig)
|
||||
})
|
||||
End Sub
|
||||
|
||||
@ -75,12 +77,12 @@ Public Class Patterns2
|
||||
IDBActive = pIDBActive
|
||||
End Sub
|
||||
|
||||
Public Function ReplaceAllValues(pInput As String, pPanel As Panel, pUser As State.UserState) As String
|
||||
Public Function ReplaceAllValues(pInput As String, pPanel As Panel, pUser As State.UserState, pFIleinfo As FileInfo) As String
|
||||
Dim oResult = pInput
|
||||
|
||||
For Each oModule In Modules
|
||||
Try
|
||||
Dim oArgs = GetReplaceMapForModule(oModule, pPanel, pUser)
|
||||
Dim oArgs = GetReplaceMapForModule(oModule, pPanel:=pPanel, pUser:=pUser, pFileInfo:=pFIleinfo)
|
||||
oResult = oModule.Replace(oResult, oArgs)
|
||||
Catch ex As Exception
|
||||
Logger.Warn("Placeholders for String [{0}] could not be replaced completely in Module [{1}]. Skipping.", pInput, oModule.GetType.Name)
|
||||
@ -101,6 +103,16 @@ Public Class Patterns2
|
||||
Return oResult
|
||||
End Function
|
||||
|
||||
Public Function ReplaceFileValues(pInput As String, pFileInfo As FileInfo) As String
|
||||
Dim oResult = pInput
|
||||
|
||||
Dim oModule = GetModule(Of Modules.User)()
|
||||
Dim oArgs = GetReplaceMapForModule(oModule, pFileInfo:=pFileInfo)
|
||||
oResult = DoReplaceForModule(oResult, oModule, oArgs)
|
||||
|
||||
Return oResult
|
||||
End Function
|
||||
|
||||
Public Function ReplaceControlValues(pInput As String, pPanel As Panel) As String
|
||||
Dim oResult = pInput
|
||||
|
||||
@ -135,16 +147,18 @@ Public Class Patterns2
|
||||
Return oResult
|
||||
End Function
|
||||
|
||||
Public Function ReplaceGlobixValues(pInput As String) As String
|
||||
Public Function ReplaceGlobixValues(pInput As String, pGlobixIndexes As Dictionary(Of String, List(Of String))) As String
|
||||
Dim oResult = pInput
|
||||
|
||||
Dim oGlobixModule = GetModule(Of Modules.Globix)()
|
||||
Dim oGlobixArgs = GetReplaceMapForModule(oGlobixModule)
|
||||
Dim oGlobixArgs = GetReplaceMapForModule(oGlobixModule, pGlobixIndexes:=pGlobixIndexes)
|
||||
oResult = DoReplaceForModule(oResult, oGlobixModule, oGlobixArgs)
|
||||
|
||||
Return oResult
|
||||
End Function
|
||||
|
||||
|
||||
|
||||
Private Function DoReplaceForModule(pInput As String, pModule As IModule, pArgs As Dictionary(Of String, Object)) As String
|
||||
Try
|
||||
pInput = pModule.Replace(pInput, pArgs)
|
||||
@ -166,7 +180,8 @@ Public Class Patterns2
|
||||
Optional pPanel As Panel = Nothing,
|
||||
Optional pUser As State.UserState = Nothing,
|
||||
Optional pWMObject As WMObject = Nothing,
|
||||
Optional pGlobixIndexes As Dictionary(Of String, List(Of String)) = Nothing
|
||||
Optional pGlobixIndexes As Dictionary(Of String, List(Of String)) = Nothing,
|
||||
Optional pFileInfo As FileInfo = Nothing
|
||||
) As Dictionary(Of String, Object)
|
||||
Dim oArgs As New Dictionary(Of String, Object)
|
||||
|
||||
@ -177,12 +192,9 @@ Public Class Patterns2
|
||||
Logger.Error(ex)
|
||||
End Try
|
||||
|
||||
ElseIf TypeOf pModule Is Modules.Internal Then
|
||||
ElseIf TypeOf pModule Is Modules.FileInformation Then
|
||||
Try
|
||||
oArgs.Add(Patterns.Modules.Internal.INT_VALUE_USERNAME, System.Environment.UserName)
|
||||
oArgs.Add(Patterns.Modules.Internal.INT_VALUE_MACHINE, System.Environment.MachineName)
|
||||
oArgs.Add(Patterns.Modules.Internal.INT_VALUE_DOMAIN, System.Environment.UserDomainName)
|
||||
oArgs.Add(Patterns.Modules.Internal.INT_VALUE_DATE, Now.ToShortDateString)
|
||||
oArgs.Add(Patterns.Modules.FileInformation.FILE_VALUE_FILEINFO, pFileInfo)
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
End Try
|
||||
|
||||
@ -32,12 +32,11 @@ Namespace State
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Initialize user object with user id. Mandatory for sending user data between systems.
|
||||
''' Initialize user object with user name. Mandatory for sending user data between systems.
|
||||
''' </summary>
|
||||
''' <param name="pUserId"></param>
|
||||
Public Sub New(pUserId As Integer)
|
||||
Public Sub New(pUserName As String)
|
||||
MyBase.New()
|
||||
UserId = pUserId
|
||||
UserName = pUserName
|
||||
End Sub
|
||||
End Class
|
||||
End Namespace
|
||||
|
||||
@ -8,4 +8,14 @@ Public Class BaseClass
|
||||
LogConfig = pLogConfig
|
||||
Logger = pLogConfig.GetLogger()
|
||||
End Sub
|
||||
|
||||
Public Sub LogAndThrow(pMessage As String)
|
||||
Logger.Warn(pMessage)
|
||||
Throw New ApplicationException(pMessage)
|
||||
End Sub
|
||||
|
||||
Public Sub LogAndThrow(pException As Exception, pMessage As String)
|
||||
Logger.Error(pException)
|
||||
Throw New ApplicationException(pMessage, pException)
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
@ -15,14 +15,4 @@ Public MustInherit Class BaseMethod
|
||||
Helpers = New Helpers(pLogConfig, pMSSQLServer)
|
||||
GlobalState = pGlobalState
|
||||
End Sub
|
||||
|
||||
Public Sub LogAndThrow(pMessage As String)
|
||||
Logger.Warn(pMessage)
|
||||
Throw New ApplicationException(pMessage)
|
||||
End Sub
|
||||
|
||||
Public Sub LogAndThrow(pException As Exception, pMessage As String)
|
||||
Logger.Error(pException)
|
||||
Throw New ApplicationException(pMessage, pException)
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
@ -138,9 +138,14 @@
|
||||
<Compile Include="Methods\GetDatatableFromCache\GetDatatableFromCacheMethod.vb" />
|
||||
<Compile Include="Methods\GetDatatableFromCache\GetDatatableFromCacheRequest.vb" />
|
||||
<Compile Include="Methods\GetDatatableFromCache\GetDatatableFromCacheResponse.vb" />
|
||||
<Compile Include="Methods\GlobalIndexer\AutomaticIndex.vb" />
|
||||
<Compile Include="Methods\GlobalIndexer\BaseIndex.vb" />
|
||||
<Compile Include="Methods\GlobalIndexer\ImportFile\Steps\AutomaticIndexing.vb" />
|
||||
<Compile Include="Methods\GlobalIndexer\ImportFile\ImportFileMethod.vb" />
|
||||
<Compile Include="Methods\GlobalIndexer\ImportFile\ImportFileRequest.vb" />
|
||||
<Compile Include="Methods\GlobalIndexer\ImportFile\ImportFileResponse.vb" />
|
||||
<Compile Include="Methods\GlobalIndexer\ImportFile\Steps\PostProcessing.vb" />
|
||||
<Compile Include="Methods\GlobalIndexer\ManualIndex.vb" />
|
||||
<Compile Include="Methods\NewFile\NewFileMethod.vb" />
|
||||
<Compile Include="Methods\NewFile\NewFileRequest.vb" />
|
||||
<Compile Include="Methods\NewFile\NewFileResponse.vb" />
|
||||
@ -245,6 +250,10 @@
|
||||
<Project>{7c3b0c7e-59fe-4e1a-a655-27ae119f9444}</Project>
|
||||
<Name>Patterns</Name>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\Modules.ZooFlow\ZooFlow.vbproj">
|
||||
<Project>{81cac44f-3711-4c8f-ae98-e02a7448782a}</Project>
|
||||
<Name>ZooFlow</Name>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include=".NETFramework,Version=v4.6.1">
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
Imports DigitalData.Modules.Database
|
||||
Imports System.Data.SqlClient
|
||||
Imports DigitalData.Modules.Database
|
||||
Imports DigitalData.Modules.Language
|
||||
Imports DigitalData.Modules.Logging
|
||||
|
||||
Public Class GlobalState
|
||||
@ -8,6 +10,7 @@ Public Class GlobalState
|
||||
Private ReadOnly _MSSQL_ECM As MSSQLServer
|
||||
|
||||
Public Property ObjectStores As New List(Of ObjectStore)
|
||||
Public Property Connections As New List(Of DatabaseConnection)
|
||||
|
||||
Public Property TableStore As New DataSet
|
||||
|
||||
@ -18,8 +21,33 @@ Public Class GlobalState
|
||||
_MSSQL_ECM = MSSQL_ECM
|
||||
End Sub
|
||||
|
||||
Public Function GetObjectStore(pName As String) As ObjectStore
|
||||
Return ObjectStores.
|
||||
Where(Function(store) store.Title.ToUpper = pName.ToUpper).
|
||||
FirstOrDefault()
|
||||
End Function
|
||||
|
||||
Public Function GetConnection(pConnectionId As Long) As DatabaseConnection
|
||||
Return Connections.
|
||||
Where(Function(conn) conn.Id = pConnectionId).
|
||||
FirstOrDefault()
|
||||
End Function
|
||||
|
||||
Public Function GetConnectionString(pConnectionId As Long) As String
|
||||
Dim oConnection = GetConnection(pConnectionId)
|
||||
Dim oBuilder As New SqlConnectionStringBuilder With {
|
||||
.DataSource = oConnection.Server,
|
||||
.InitialCatalog = oConnection.Database,
|
||||
.UserID = oConnection.Username,
|
||||
.Password = MSSQLServer.DecryptConnectionString(oConnection.Password)
|
||||
}
|
||||
|
||||
Return oBuilder.ToString
|
||||
End Function
|
||||
|
||||
|
||||
Public Sub LoadObjectStores()
|
||||
_Logger.Debug("Loading Object Stores")
|
||||
_Logger.Info("Loading Object Stores")
|
||||
Try
|
||||
Dim oSQL As String = "SELECT * FROM VWIDB_OBJECTSTORE"
|
||||
Dim oDatatable As DataTable = _MSSQL_IDB.GetDatatable(oSQL)
|
||||
@ -43,11 +71,34 @@ Public Class GlobalState
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Public Function GetObjectStore(Name As String) As ObjectStore
|
||||
Return ObjectStores.
|
||||
Where(Function(o) o.Title.ToUpper = Name.ToUpper).
|
||||
FirstOrDefault()
|
||||
End Function
|
||||
Public Sub LoadConnections()
|
||||
_Logger.Info("Loading Database Connections")
|
||||
Try
|
||||
Dim oSQL As String = "SELECT * FROM TBDD_CONNECTION"
|
||||
Dim oDatatable As DataTable = _MSSQL_ECM.GetDatatable(oSQL)
|
||||
|
||||
Connections.Clear()
|
||||
|
||||
_Logger.Info("Found [{0}] Connections", oDatatable.Rows.Count)
|
||||
|
||||
For Each oRow As DataRow In oDatatable.Rows
|
||||
Dim oConnection As New DatabaseConnection() With {
|
||||
.Id = oRow.ItemEx(Of Integer)("GUID"),
|
||||
.Active = oRow.ItemEx(Of Boolean)("AKTIV"),
|
||||
.Database = oRow.ItemEx(Of String)("DATENBANK"),
|
||||
.Title = oRow.ItemEx(Of String)("BEZEICHNUNG"),
|
||||
.Password = oRow.ItemEx(Of String)("PASSWORD"),
|
||||
.Provider = oRow.ItemEx(Of String)("SQL_PROVIDER"),
|
||||
.Server = oRow.ItemEx(Of String)("SERVER"),
|
||||
.Username = oRow.ItemEx(Of String)("USERNAME")
|
||||
}
|
||||
_Logger.Info("New Connection [{0}]", oConnection.Title)
|
||||
Connections.Add(oConnection)
|
||||
Next
|
||||
Catch ex As Exception
|
||||
_Logger.Error(ex)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Class ObjectStore
|
||||
Public Id As Long
|
||||
@ -55,4 +106,15 @@ Public Class GlobalState
|
||||
Public IsArchive As Boolean
|
||||
Public Path As String
|
||||
End Class
|
||||
|
||||
Class DatabaseConnection
|
||||
Public Id As Long
|
||||
Public Title As String
|
||||
Public Provider As String
|
||||
Public Server As String
|
||||
Public Database As String
|
||||
Public Username As String
|
||||
Public Password As String
|
||||
Public Active As Boolean
|
||||
End Class
|
||||
End Class
|
||||
|
||||
@ -37,6 +37,12 @@ Namespace Methods
|
||||
''' </summary>
|
||||
<DataMember>
|
||||
Public Property FileChecksum As String
|
||||
|
||||
''' <summary>
|
||||
''' The Raw FileInfo Object
|
||||
''' </summary>
|
||||
<DataMember>
|
||||
Public Property FileInfoRaw As IO.FileInfo
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
@ -0,0 +1,8 @@
|
||||
Namespace Methods.GlobalIndexer
|
||||
Public Class AutomaticIndex
|
||||
Inherits BaseIndex
|
||||
|
||||
Public Value As String
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
21
Service.EDMIService/Methods/GlobalIndexer/BaseIndex.vb
Normal file
21
Service.EDMIService/Methods/GlobalIndexer/BaseIndex.vb
Normal file
@ -0,0 +1,21 @@
|
||||
Namespace Methods.GlobalIndexer
|
||||
Public MustInherit Class BaseIndex
|
||||
Public Id As Integer
|
||||
Public Name As String
|
||||
Public ProfileId As Integer
|
||||
|
||||
Public SQLCommand As String
|
||||
Public SQLConnectionId As Integer
|
||||
|
||||
Public Sequence As Integer = 0
|
||||
|
||||
Public Function HasSqlCommand() As Boolean
|
||||
Return Not (
|
||||
SQLCommand Is Nothing OrElse
|
||||
SQLCommand = String.Empty OrElse
|
||||
SQLConnectionId < 0
|
||||
)
|
||||
End Function
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
@ -12,8 +12,8 @@ Namespace Methods.GlobalIndexer.ImportFile
|
||||
Private ReadOnly GetDatatable As GetDatatableFromCacheMethod
|
||||
|
||||
Private Profile As DataRow
|
||||
Private ManualIndexes As DataTable
|
||||
Private AutomaticIndexes As DataTable
|
||||
Private ManualIndexes As List(Of ManualIndex)
|
||||
Private AutomaticIndexes As List(Of AutomaticIndex)
|
||||
Private ManualIndexesPostProcessing As DataTable
|
||||
|
||||
Private Const VIEW_PROFILE = "VWGI_DOCTYPE_IDB"
|
||||
@ -21,10 +21,6 @@ Namespace Methods.GlobalIndexer.ImportFile
|
||||
Private Const VIEW_INDEX_AUTOMATIC = "VWDDINDEX_AUTOM"
|
||||
Private Const TABLE_POST_PROCESSING = "TBDD_INDEX_MAN_POSTPROCESSING"
|
||||
|
||||
Private Const TYPE_VBSPLIT = "VBSPLIT"
|
||||
Private Const TYPE_VBREPLACE = "VBREPLACE"
|
||||
Private Const TYPE_REGEXPRESSION = "REG. EXPRESSION"
|
||||
|
||||
Public Sub New(pLogConfig As LogConfig, pMSSQLServer As MSSQLServer, pGlobalState As GlobalState)
|
||||
MyBase.New(pLogConfig, pMSSQLServer, pGlobalState)
|
||||
|
||||
@ -42,17 +38,25 @@ Namespace Methods.GlobalIndexer.ImportFile
|
||||
''' </remarks>
|
||||
Public Function Run(pData As ImportFileRequest)
|
||||
Try
|
||||
' TODO: Add missing user properties in UserState from TBDD_USER
|
||||
'pData.User = ResolveUserFromUserName(pData.User.UserName)
|
||||
|
||||
LoadIndexes(pData.ProfileId)
|
||||
LoadProfile(pData.ProfileId)
|
||||
|
||||
|
||||
Dim oFinalAttributes = pData.AttributeValues
|
||||
Dim oFileName As String = GetFilenameByNameconvention(pData.File.FileName, Profile.Item("NAMENKONVENTION"))
|
||||
|
||||
' apply the post processing
|
||||
oFinalAttributes = ApplyManualPostprocessing(oFinalAttributes, ManualIndexesPostProcessing)
|
||||
' Apply post processing
|
||||
Dim oPostProcessing = New Steps.PostProcessing(LogConfig, ManualIndexesPostProcessing)
|
||||
oFinalAttributes = oPostProcessing.ApplyManualPostprocessing(oFinalAttributes)
|
||||
|
||||
' TODO: apply the manual attributes
|
||||
oFinalAttributes = ApplyAutomaticeAttributes(oFinalAttributes)
|
||||
' Apply automatic attributes
|
||||
Dim oAutomaticIndexing = New Steps.AutomaticIndexing(LogConfig, Database, AutomaticIndexes, GlobalState)
|
||||
|
||||
|
||||
oFinalAttributes = oAutomaticIndexing.ApplyAutomaticeAttributes(oFinalAttributes, pData.File.FileInfoRaw, pData.User)
|
||||
|
||||
' Import the file
|
||||
Dim oNewFile As New NewFileMethod(LogConfig, Database, GlobalState)
|
||||
@ -60,9 +64,8 @@ Namespace Methods.GlobalIndexer.ImportFile
|
||||
.File = pData.File,
|
||||
.BusinessEntity = pData.BusinessEntity,
|
||||
.KindType = pData.KindType,
|
||||
.Language = pData.Language,
|
||||
.Who = pData.Who,
|
||||
.StoreName = pData.StoreName
|
||||
.StoreName = pData.StoreName,
|
||||
.User = pData.User
|
||||
})
|
||||
|
||||
If oResponse.OK Then
|
||||
@ -76,95 +79,12 @@ Namespace Methods.GlobalIndexer.ImportFile
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Private Function ApplyManualPostprocessing(pManualAttributes As List(Of UserAttributeValue), pPostprocessingSteps As DataTable) As List(Of UserAttributeValue)
|
||||
Logger.Debug("Start of Method [ApplyManualPostprocessing]")
|
||||
Dim oAttributes = pManualAttributes
|
||||
|
||||
For Each oProcessingRow As DataRow In pPostprocessingSteps.Rows
|
||||
|
||||
Dim oIndexId = oProcessingRow.ItemEx(Of Integer)("IDXMAN_ID")
|
||||
Dim oIndexRow As DataRow = ManualIndexes.Select($"GUID = {oIndexId}").FirstOrDefault()
|
||||
Dim oIndex As UserAttributeValue = pManualAttributes.
|
||||
Where(Function(attr) attr.AttributeId = oProcessingRow.ItemEx(Of Integer)("IDXMAN_ID")).
|
||||
FirstOrDefault()
|
||||
|
||||
Dim oValue = GetPostprocessingValue(oIndex.AttributeValues, oIndexRow)
|
||||
|
||||
oAttributes.Add(New UserAttributeValue With {
|
||||
.AttributeId = oIndexId,
|
||||
.AttributeName = oIndex.AttributeName,
|
||||
.AttributeValues = oIndex.AttributeValues,
|
||||
.ControlName = oIndex.ControlName
|
||||
})
|
||||
Next
|
||||
|
||||
Return oAttributes
|
||||
End Function
|
||||
|
||||
Private Function ApplyAutomaticeAttributes(pManualAttributes As List(Of UserAttributeValue)) As List(Of UserAttributeValue)
|
||||
Logger.Debug("Start of Method [ApplyAutomaticeAttributes]")
|
||||
|
||||
Return pManualAttributes
|
||||
End Function
|
||||
|
||||
Private Function GetPostprocessingValue(pValues As List(Of String), pRow As DataRow)
|
||||
Logger.Debug("Start of Method [GetPostprocessingValue]")
|
||||
|
||||
Dim oType = pRow.Item("TYPE")
|
||||
Dim oResult As New List(Of String)
|
||||
|
||||
Logger.Debug("Type of Postprocessing is [{0}]", oType)
|
||||
|
||||
Select Case oType
|
||||
Case TYPE_VBREPLACE
|
||||
Dim oFindString = pRow.Item("TEXT1")
|
||||
Dim oReplaceString = pRow.Item("TEXT2")
|
||||
|
||||
Logger.Debug("Replacing [{0}] with [{1}]", oFindString, oReplaceString)
|
||||
|
||||
For Each oIndexValue In pValues
|
||||
Dim oReplaceResult = oIndexValue.Replace(oFindString, oReplaceString)
|
||||
If oReplaceResult.Equals(oIndexValue) Then
|
||||
Logger.Debug("Replace did not succeed, ReplaceString was not found.")
|
||||
Else
|
||||
Logger.Debug("Replace successful for [{0}].", oIndexValue)
|
||||
End If
|
||||
|
||||
oResult.Add(oReplaceResult)
|
||||
Next
|
||||
|
||||
Case TYPE_VBSPLIT
|
||||
Dim oSeparator As String = pRow.Item("TEXT1")
|
||||
Dim oSplitIndex As Integer = 0
|
||||
Integer.TryParse(pRow.Item("TEXT2"), oSplitIndex)
|
||||
|
||||
Logger.Debug("Splitting String at Separator [{0}] and Index [{1}]", oSeparator, oSplitIndex)
|
||||
|
||||
For Each oIndexValue In pValues
|
||||
Dim oSplitted As List(Of String) = oIndexValue.Split(oSeparator).ToList()
|
||||
Logger.Debug("Split succeeded, resulting list has [{0}] items.", oSplitted.Count)
|
||||
|
||||
If oSplitIndex < oSplitted.Count Then
|
||||
Dim oValue = oSplitted.Item(oSplitIndex)
|
||||
Logger.Debug("Saving value [{0}] from Index [{1}]", oValue, oSplitIndex)
|
||||
oResult.Add(oValue)
|
||||
Else
|
||||
Logger.Debug("SplitIndex(TEXT2) was out of array bounds. Skipping.")
|
||||
End If
|
||||
|
||||
Next
|
||||
|
||||
Case Else
|
||||
LogAndThrow($"Postprocessing type [{oType}] is not supported!")
|
||||
End Select
|
||||
|
||||
Return oResult
|
||||
End Function
|
||||
|
||||
Private Function GetFilenameByNameconvention(pFileName As String, pNameconvention As String) As String
|
||||
|
||||
|
||||
|
||||
Private Function GetFilenameByNameconvention(pFileName As String, pNameconvention As String) As String
|
||||
Return pFileName
|
||||
End Function
|
||||
|
||||
Private Sub LoadIndexes(pProfileId As Integer)
|
||||
@ -213,7 +133,21 @@ Namespace Methods.GlobalIndexer.ImportFile
|
||||
LogAndThrow(oAutomaticIndexes.ErrorMessage)
|
||||
End If
|
||||
|
||||
AutomaticIndexes = oAutomaticIndexes.Table
|
||||
Dim oIndexes As New List(Of AutomaticIndex)
|
||||
|
||||
For Each oRow As DataRow In oAutomaticIndexes.Table.Rows
|
||||
Dim oAutomaticIndex As New AutomaticIndex With {
|
||||
.Id = oRow.ItemEx(Of Integer)("GUID"),
|
||||
.Name = oRow.ItemEx(Of String)("INDEXNAME"),
|
||||
.ProfileId = oRow.ItemEx(Of Integer)("DOCTYPE_ID"),
|
||||
.SQLCommand = oRow.ItemEx(Of String)("SQL_RESULT"),
|
||||
.SQLConnectionId = oRow.ItemEx(Of Integer)("CONNECTION_ID"),
|
||||
.Sequence = oRow.ItemEx(Of String)("SEQUENCE"),
|
||||
.Value = oRow.ItemEx(Of String)("VALUE")
|
||||
}
|
||||
Next
|
||||
|
||||
AutomaticIndexes = oIndexes
|
||||
Catch ex As Exception
|
||||
LogAndThrow(ex, "Error while automatic loading indexes!")
|
||||
End Try
|
||||
@ -234,7 +168,23 @@ Namespace Methods.GlobalIndexer.ImportFile
|
||||
LogAndThrow(oManualIndexes.ErrorMessage)
|
||||
End If
|
||||
|
||||
ManualIndexes = oManualIndexes.Table
|
||||
Dim oIndexes As New List(Of ManualIndex)
|
||||
|
||||
For Each oRow As DataRow In oManualIndexes.Table.Rows
|
||||
Dim oManualIndex As New ManualIndex With {
|
||||
.Id = oRow.ItemEx(Of Integer)("GUID"),
|
||||
.Name = oRow.ItemEx(Of String)("INDEXNAME"),
|
||||
.ProfileId = oRow.ItemEx(Of Integer)("DOCTYPE_ID"),
|
||||
.IsOptional = oRow.ItemEx(Of Boolean)("OPTIONAL"),
|
||||
.IsMultiselect = oRow.ItemEx(Of String)("MULTISELECT"),
|
||||
.SQLCommand = oRow.ItemEx(Of String)("SQL_RESULT"),
|
||||
.SQLConnectionId = oRow.ItemEx(Of Integer)("CONNECTION_ID"),
|
||||
.DefaultValue = oRow.ItemEx(Of String)("DEFAULT_VALUE"),
|
||||
.DataType = oRow.ItemEx(Of String)("DATA_TYPE")
|
||||
}
|
||||
Next
|
||||
|
||||
ManualIndexes = oIndexes
|
||||
|
||||
Catch ex As Exception
|
||||
LogAndThrow(ex, "Error while loading indexes!")
|
||||
@ -246,10 +196,7 @@ Namespace Methods.GlobalIndexer.ImportFile
|
||||
|
||||
Try
|
||||
' Generate a string containing all index ids joined into a string
|
||||
Dim oIndexIdList As New List(Of Integer)
|
||||
For Each oRow As DataRow In ManualIndexes.Rows
|
||||
oIndexIdList.Add(oRow.ItemEx(Of Integer)("GUID"))
|
||||
Next
|
||||
Dim oIndexIdList As List(Of Integer) = ManualIndexes.Select(Function(index) index.Id).ToList()
|
||||
Dim oIndexIds As String = String.Join(",", oIndexIdList)
|
||||
|
||||
' Load all relevant postprocessing steps
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
Imports System.Runtime.Serialization
|
||||
Imports DigitalData.Modules.ZooFlow.State
|
||||
|
||||
Namespace Methods.GlobalIndexer.ImportFile
|
||||
<Serializable>
|
||||
@ -13,6 +14,7 @@ Namespace Methods.GlobalIndexer.ImportFile
|
||||
''' <summary>
|
||||
''' The ProfileId the file will be imported with
|
||||
''' </summary>
|
||||
<DataMember>
|
||||
Public Property ProfileId As Integer
|
||||
|
||||
''' <summary>
|
||||
@ -37,18 +39,14 @@ Namespace Methods.GlobalIndexer.ImportFile
|
||||
''' The attribute values given by the user in the form of
|
||||
''' Attribute Name/Attribute Value/ControlName
|
||||
''' </summary>
|
||||
<DataMember>
|
||||
Public Property AttributeValues As List(Of UserAttributeValue)
|
||||
|
||||
''' <summary>
|
||||
''' The name of the user importing the file, ex. JenneJ
|
||||
''' User Importing the file
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
<DataMember>
|
||||
Public Property Who As String
|
||||
|
||||
''' <summary>
|
||||
''' The language of the user, ex. de-DE
|
||||
''' </summary>
|
||||
<DataMember>
|
||||
Public Property Language As String
|
||||
Public Property User As UserState
|
||||
End Class
|
||||
End Namespace
|
||||
@ -0,0 +1,85 @@
|
||||
Imports System.IO
|
||||
Imports DigitalData.Modules.Database
|
||||
Imports DigitalData.Modules.Logging
|
||||
Imports DigitalData.Modules.Patterns
|
||||
Imports DigitalData.Modules.ZooFlow.State
|
||||
Imports DigitalData.Services.EDMIService.GlobalState
|
||||
|
||||
Namespace Methods.GlobalIndexer.ImportFile.Steps
|
||||
Public Class AutomaticIndexing
|
||||
Inherits BaseClass
|
||||
|
||||
Private ReadOnly GlobalState As GlobalState
|
||||
Private ReadOnly AutomaticIndexes As List(Of AutomaticIndex)
|
||||
Private ReadOnly Patterns As Patterns2
|
||||
Private ReadOnly Database As MSSQLServer
|
||||
|
||||
Public Sub New(pLogConfig As LogConfig, pDatabase As MSSQLServer, pAutomaticIndexes As List(Of AutomaticIndex), pGlobalState As GlobalState)
|
||||
MyBase.New(pLogConfig)
|
||||
Database = pDatabase
|
||||
GlobalState = pGlobalState
|
||||
AutomaticIndexes = pAutomaticIndexes
|
||||
Patterns = New Patterns2(pLogConfig)
|
||||
End Sub
|
||||
|
||||
Public Function ApplyAutomaticeAttributes(pManualAttributes As List(Of UserAttributeValue), pFileInfo As FileInfo, pUserState As UserState) As List(Of UserAttributeValue)
|
||||
Logger.Debug("Start of Method [ApplyAutomaticeAttributes]")
|
||||
Dim oAttributes = pManualAttributes
|
||||
|
||||
For Each oAutomaticIndex In AutomaticIndexes
|
||||
' We add oAttributes from the previous run into the current run so it is in theory possible to reference
|
||||
' automatic attributes which have been set just before.
|
||||
Dim oAttribute = ApplyAutomaticIndex(oAutomaticIndex, pFileInfo, pUserState, oAttributes)
|
||||
oAttributes.Add(oAttribute)
|
||||
Next
|
||||
|
||||
Return oAttributes
|
||||
End Function
|
||||
|
||||
|
||||
Private Function ApplyAutomaticIndex(pAutomaticIndex As AutomaticIndex, pFileInfo As FileInfo, pUserState As UserState, pAttributes As List(Of UserAttributeValue)) As UserAttributeValue
|
||||
Dim oAttributeDict = pAttributes.ToDictionary(
|
||||
Function(attr) attr.AttributeName,
|
||||
Function(attr) attr.AttributeValues)
|
||||
|
||||
' If there is no SQL command, we use the Value property and replace all placeholders in it.
|
||||
If pAutomaticIndex.HasSqlCommand = False Then
|
||||
Dim oResult As String = GetPlaceholderValue(pAutomaticIndex.Value, pFileInfo, pUserState, oAttributeDict)
|
||||
|
||||
Return New UserAttributeValue With {
|
||||
.AttributeValues = New List(Of String) From {oResult},
|
||||
.AttributeName = pAutomaticIndex.Name,
|
||||
.AttributeId = pAutomaticIndex.Id
|
||||
}
|
||||
End If
|
||||
|
||||
' Otherwise we will replace placeholders in the SQL command and then execute it
|
||||
Dim oConnectionString As String = GlobalState.GetConnectionString(pAutomaticIndex.SQLConnectionId)
|
||||
Dim oFinalSQLCommand = pAutomaticIndex.SQLCommand
|
||||
oFinalSQLCommand = GetPlaceholderValue(oFinalSQLCommand, pFileInfo, pUserState, oAttributeDict)
|
||||
|
||||
' Now we have a SQL command which only contains vector placeholders
|
||||
' Next, we execute the command to get our result
|
||||
Dim oValue = Database.GetScalarValueWithConnection(oFinalSQLCommand, oConnectionString)
|
||||
|
||||
' TODO: Return multiple values
|
||||
Return New UserAttributeValue With {
|
||||
.AttributeValues = New List(Of String) From {oValue},
|
||||
.AttributeName = pAutomaticIndex.Name,
|
||||
.AttributeId = pAutomaticIndex.Id
|
||||
}
|
||||
End Function
|
||||
|
||||
Private Function GetPlaceholderValue(pValue As String, pFileInfo As FileInfo, pUserState As UserState, pAttributes As Dictionary(Of String, List(Of String))) As String
|
||||
Dim oResult As String = pValue
|
||||
|
||||
oResult = Patterns.ReplaceInternalValues(oResult)
|
||||
oResult = Patterns.ReplaceFileValues(oResult, pFileInfo)
|
||||
oResult = Patterns.ReplaceUserValues(oResult, pUserState)
|
||||
oResult = Patterns.ReplaceGlobixValues(oResult, pAttributes)
|
||||
|
||||
Return oResult
|
||||
End Function
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
@ -0,0 +1,98 @@
|
||||
Imports DigitalData.Modules.Logging
|
||||
Imports DigitalData.Modules.Language
|
||||
|
||||
Namespace Methods.GlobalIndexer.ImportFile.Steps
|
||||
Public Class PostProcessing
|
||||
Inherits BaseClass
|
||||
|
||||
Public Const TYPE_VBSPLIT = "VBSPLIT"
|
||||
Public Const TYPE_VBREPLACE = "VBREPLACE"
|
||||
Public Const TYPE_REGEXPRESSION = "REG. EXPRESSION"
|
||||
|
||||
Private PostprocessingSteps As DataTable
|
||||
|
||||
Public Sub New(pLogConfig As LogConfig, pPostProcessingSteps As DataTable)
|
||||
MyBase.New(pLogConfig)
|
||||
PostprocessingSteps = pPostProcessingSteps
|
||||
End Sub
|
||||
|
||||
Public Function ApplyManualPostprocessing(pManualAttributes As List(Of UserAttributeValue)) As List(Of UserAttributeValue)
|
||||
Logger.Debug("Start of Method [ApplyManualPostprocessing]")
|
||||
Dim oAttributes = pManualAttributes
|
||||
|
||||
For Each oProcessingRow As DataRow In PostprocessingSteps.Rows
|
||||
|
||||
Dim oIndexId = oProcessingRow.ItemEx(Of Integer)("IDXMAN_ID")
|
||||
Dim oIndex As UserAttributeValue = pManualAttributes.
|
||||
Where(Function(attr) attr.AttributeId = oProcessingRow.ItemEx(Of Integer)("IDXMAN_ID")).
|
||||
FirstOrDefault()
|
||||
|
||||
Dim oValue = GetPostprocessingValue(oIndex.AttributeValues, oProcessingRow)
|
||||
|
||||
oAttributes.Add(New UserAttributeValue With {
|
||||
.AttributeId = oIndexId,
|
||||
.AttributeName = oIndex.AttributeName,
|
||||
.AttributeValues = oIndex.AttributeValues,
|
||||
.ControlName = oIndex.ControlName
|
||||
})
|
||||
Next
|
||||
|
||||
Return oAttributes
|
||||
End Function
|
||||
|
||||
Public Function GetPostprocessingValue(pValues As List(Of String), pRow As DataRow)
|
||||
Logger.Debug("Start of Method [GetPostprocessingValue]")
|
||||
|
||||
Dim oType = pRow.Item("TYPE")
|
||||
Dim oResult As New List(Of String)
|
||||
|
||||
Logger.Debug("Type of Postprocessing is [{0}]", oType)
|
||||
|
||||
Select Case oType
|
||||
Case TYPE_VBREPLACE
|
||||
Dim oFindString = pRow.Item("TEXT1")
|
||||
Dim oReplaceString = pRow.Item("TEXT2")
|
||||
|
||||
Logger.Debug("Replacing [{0}] with [{1}]", oFindString, oReplaceString)
|
||||
|
||||
For Each oIndexValue In pValues
|
||||
Dim oReplaceResult = oIndexValue.Replace(oFindString, oReplaceString)
|
||||
If oReplaceResult.Equals(oIndexValue) Then
|
||||
Logger.Debug("Replace did not succeed, ReplaceString was not found.")
|
||||
Else
|
||||
Logger.Debug("Replace successful for [{0}].", oIndexValue)
|
||||
End If
|
||||
|
||||
oResult.Add(oReplaceResult)
|
||||
Next
|
||||
|
||||
Case TYPE_VBSPLIT
|
||||
Dim oSeparator As String = pRow.Item("TEXT1")
|
||||
Dim oSplitIndex As Integer = 0
|
||||
Integer.TryParse(pRow.Item("TEXT2"), oSplitIndex)
|
||||
|
||||
Logger.Debug("Splitting String at Separator [{0}] and Index [{1}]", oSeparator, oSplitIndex)
|
||||
|
||||
For Each oIndexValue In pValues
|
||||
Dim oSplitted As List(Of String) = oIndexValue.Split(oSeparator).ToList()
|
||||
Logger.Debug("Split succeeded, resulting list has [{0}] items.", oSplitted.Count)
|
||||
|
||||
If oSplitIndex < oSplitted.Count Then
|
||||
Dim oValue = oSplitted.Item(oSplitIndex)
|
||||
Logger.Debug("Saving value [{0}] from Index [{1}]", oValue, oSplitIndex)
|
||||
oResult.Add(oValue)
|
||||
Else
|
||||
Logger.Debug("SplitIndex(TEXT2) was out of array bounds. Skipping.")
|
||||
End If
|
||||
|
||||
Next
|
||||
|
||||
Case Else
|
||||
LogAndThrow($"Postprocessing type [{oType}] is not supported!")
|
||||
End Select
|
||||
|
||||
Return oResult
|
||||
End Function
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
12
Service.EDMIService/Methods/GlobalIndexer/ManualIndex.vb
Normal file
12
Service.EDMIService/Methods/GlobalIndexer/ManualIndex.vb
Normal file
@ -0,0 +1,12 @@
|
||||
Namespace Methods.GlobalIndexer
|
||||
Public Class ManualIndex
|
||||
Inherits BaseIndex
|
||||
|
||||
Public DataType As String
|
||||
|
||||
Public IsOptional As Boolean
|
||||
Public IsMultiselect As Boolean
|
||||
|
||||
Public DefaultValue As String
|
||||
End Class
|
||||
End Namespace
|
||||
@ -28,7 +28,7 @@ Public Class NewFileMethod
|
||||
|
||||
Try
|
||||
|
||||
Dim oObjectId = NewObjectId(pData.KindType, pData.BusinessEntity, pData.Who)
|
||||
Dim oObjectId = NewObjectId(pData.KindType, pData.BusinessEntity, pData.User.UserName)
|
||||
If oObjectId = 0 Then
|
||||
LogAndThrow("Could not create new ObjectId!")
|
||||
End If
|
||||
@ -107,7 +107,16 @@ Public Class NewFileMethod
|
||||
Logger.Info("Creating IDB FileObject for ObjectId [{0}].", oObjectId)
|
||||
|
||||
' Insert into DB
|
||||
Dim oSQL As String = $"EXEC PRIDB_NEW_IDBFO '{oFinalPath}', '{oFileObjectName}', '{oFileObjectExtension}',{oFileObjectSize},'{pData.File.FileChecksum}' ,'{pData.Who}','{oObjectId}',{oStore.Id}"
|
||||
Dim oSQL As String = $"EXEC PRIDB_NEW_IDBFO
|
||||
'{oFinalPath}',
|
||||
'{oFileObjectName}',
|
||||
'{oFileObjectExtension}',
|
||||
{oFileObjectSize},
|
||||
'{pData.File.FileChecksum}' ,
|
||||
'{pData.User.UserName}',
|
||||
'{oObjectId}',
|
||||
{oStore.Id}"
|
||||
|
||||
Dim oResult As Boolean = Database.ExecuteNonQueryWithConnectionObject(oSQL, Connection, ExternalTransaction, Transaction)
|
||||
|
||||
If oResult = False Then
|
||||
@ -131,7 +140,7 @@ Public Class NewFileMethod
|
||||
Continue For
|
||||
End If
|
||||
|
||||
Dim oSuccess = Helpers.SetAttributeValue(Connection, Transaction, oObjectId, oAttribute.Key, oAttribute.Value, "de-DE", pData.Who)
|
||||
Dim oSuccess = Helpers.SetAttributeValue(Connection, Transaction, oObjectId, oAttribute.Key, oAttribute.Value, pData.User.Language, pData.User.UserName)
|
||||
If oSuccess Then
|
||||
Logger.Debug("Default Attribute [{0}] written with value [{1}]", oAttribute.Key, oAttribute.Value)
|
||||
Else
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
Imports System.Runtime.Serialization
|
||||
Imports DigitalData.Modules.ZooFlow.State
|
||||
|
||||
Namespace Methods.NewFile
|
||||
<Serializable>
|
||||
@ -26,17 +27,11 @@ Namespace Methods.NewFile
|
||||
Public Property KindType As String
|
||||
|
||||
''' <summary>
|
||||
''' The name of the user importing the file, ex. JenneJ
|
||||
''' </summary>
|
||||
<DataMember>
|
||||
Public Property Who As String
|
||||
|
||||
''' <summary>
|
||||
''' The language of the user
|
||||
''' User Importing the file
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
<DataMember>
|
||||
Public Property Language As String
|
||||
Public Property User As UserState
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
|
||||
@ -73,8 +73,9 @@ Public Class WindowsService
|
||||
_Global = New GlobalState(_LogConfig, _MSSQL_IDB, _MSSQL_ECM)
|
||||
_Scheduler = New Scheduler(_LogConfig, _MSSQL_ECM, _Global.TableStore)
|
||||
|
||||
_Logger.Debug("Loading Objectstores")
|
||||
_Logger.Debug("Loading Global Data")
|
||||
_Global.LoadObjectStores()
|
||||
_Global.LoadConnections()
|
||||
|
||||
_Logger.Debug("Starting Scheduler")
|
||||
_Scheduler.Start()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user