| POST | /{Workspace}/AssetQuery |
|---|
Imports System
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports Field2Office.API.Model.Assets
Imports Field2Office.API.Model
Imports Field2Office.API.Model.Schedules
Imports Field2Office.Core.Model.Task
Namespace Global
Namespace Field2Office.API.Model
Public Partial Class AddressBasic
Public Overridable Property Street As String
Public Overridable Property Unit As String
Public Overridable Property City As String
Public Overridable Property State As String
Public Overridable Property Zip As String
Public Overridable Property Country As String
Public Overridable Property Location As Location
End Class
Public Partial Class Anno
Public Overridable Property X As Double
Public Overridable Property Y As Double
Public Overridable Property R As Double
Public Overridable Property S As Double
Public Overridable Property T As String
End Class
'''<Summary>
'''Contains the data for an asset within the system.
'''</Summary>
Public Partial Class Asset
Public Sub New()
Schedules = New List(Of Schedule)
Documents = New List(Of DomainItem)
Tasks = New List(Of DomainItem)
TaskSeries = New List(Of String)
TaskSeriesTemplates = New List(Of String)
Users = New List(Of DomainItem)
Data = New Dictionary(Of String, String)
MaintenanceHistory = New List(Of MaintenanceRecord)
Ancestors = New List(Of String)
LocationHistory = New List(Of LocationHistory)
Assets = New List(Of String)
Contacts = New List(Of String)
Events = New List(Of EventItem)
Teams = New List(Of String)
InventoryItems = New List(Of String)
ActiveLaborTypes = New Dictionary(Of String, Object)
CustomDataFields = New List(Of CustomDataField)
End Sub
Public Overridable Property Workspace As String
Public Overridable Property TimeZone As String
Public Overridable Property AssignedWorkspace As String
Public Overridable Property ObjectId As String
Public Overridable Property VersionId As String
Public Overridable Property BasedOn As String
Public Overridable Property ExternalId As String
Public Overridable Property Created As String
Public Overridable Property LastUpdated As String
Public Overridable Property Name As String
Public Overridable Property Schedules As List(Of Schedule)
Public Overridable Property Documents As List(Of DomainItem)
Public Overridable Property Tasks As List(Of DomainItem)
Public Overridable Property TaskSeries As List(Of String)
Public Overridable Property TaskSeriesTemplates As List(Of String)
Public Overridable Property Users As List(Of DomainItem)
Public Overridable Property Type As String
Public Overridable Property Symbol As String
Public Overridable Property Data As Dictionary(Of String, String)
Public Overridable Property Geometry As Geometry
Public Overridable Property MaintenanceHistory As List(Of MaintenanceRecord)
Public Overridable Property Parent As String
Public Overridable Property Ancestors As List(Of String)
Public Overridable Property LocationHistory As List(Of LocationHistory)
Public Overridable Property Owner As ClassedItem
Public Overridable Property IsParent As Boolean
Public Overridable Property Assets As List(Of String)
Public Overridable Property Contacts As List(Of String)
Public Overridable Property GeometryString As String
Public Overridable Property SourceProjection As String
Public Overridable Property Events As List(Of EventItem)
Public Overridable Property Anno As Anno
Public Overridable Property Teams As List(Of String)
Public Overridable Property Address As AddressBasic
Public Overridable Property CreatedBy As String
Public Overridable Property InventoryItems As List(Of String)
Public Overridable Property ActiveLaborTypes As Dictionary(Of String, Object)
Public Overridable Property Levels As Integer
Public Overridable Property AllAssests As Integer
Public Overridable Property Barcode As String
Public Overridable Property CustomDataFields As List(Of CustomDataField)
End Class
Public Partial Class ClassedItem
Public Sub New()
Ancestors = New List(Of String)
End Sub
Public Overridable Property ObjectId As String
Public Overridable Property [Class] As String
Public Overridable Property VersionId As String
Public Overridable Property Ancestors As List(Of String)
Public Overridable Property Type As String
End Class
Public Partial Class DomainItem
Public Overridable Property Workspace As String
Public Overridable Property ObjectId As String
Public Overridable Property VersionId As String
Public Overridable Property LastUpdated As String
End Class
Public Partial Class EventItem
Public Overridable Property ObjectId As String
Public Overridable Property [Date] As String
Public Overridable Property Location As Location
Public Overridable Property Barcode As String
Public Overridable Property Details As String
Public Overridable Property Type As String
Public Overridable Property IsScan As Boolean
Public Overridable Property User As String
Public Overridable Property SelectedBy As String
Public Overridable Property Status As String
Public Overridable Property StatusType As String
Public Overridable Property DateCreated As String
Public Overridable Property Automatic As Boolean
End Class
Public Partial Class Geometry
Public Sub New()
Coordinates = New List(Of Location)
End Sub
Public Overridable Property Type As String
Public Overridable Property Coordinates As List(Of Location)
End Class
Public Partial Class Location
Public Overridable Property y As Double
Public Overridable Property x As Double
End Class
Public Partial Class LocationHistory
Public Overridable Property [Date] As String
Public Overridable Property Location As Location
Public Overridable Property Barcode As String
Public Overridable Property Notes As String
Public Overridable Property IsScan As Boolean
End Class
Public Partial Class MaintenanceRecord
Public Overridable Property DateTime As String
Public Overridable Property Notes As String
End Class
End Namespace
Namespace Field2Office.API.Model.Assets
'''<Summary>
'''/{Workspace}/AssetQuery allows flexible querying of assets using structured filters.Supports various operators (eq, ne, contains, in, gt, lt, exists) for precise asset searches.Can query by core fields (type, name, created) and custom data fields (data.EID, data.FDH_ID, etc.).Example: POST with filters for exact matches on type='FDH' and data.EID='specific-value'
'''</Summary>
Public Partial Class AssetQuery
Public Sub New()
Filters = New List(Of QueryFilter)
Sort = New List(Of SortCriteria)
End Sub
Public Overridable Property Workspace As String
Public Overridable Property Filters As List(Of QueryFilter)
Public Overridable Property RecStart As Nullable(Of Integer)
Public Overridable Property RecCount As Nullable(Of Integer)
Public Overridable Property Sort As List(Of SortCriteria)
Public Overridable Property SuppressGeometry As Nullable(Of Boolean)
End Class
Public Partial Class AssetQueryResponse
Public Sub New()
Assets = New List(Of Asset)
End Sub
Public Overridable Property Assets As List(Of Asset)
Public Overridable Property TotalCount As Long
Public Overridable Property RecStart As Integer
Public Overridable Property RecCount As Integer
End Class
Public Partial Class QueryFilter
Public Overridable Property Field As String
Public Overridable Property [Operator] As String
Public Overridable Property Value As Object
End Class
Public Partial Class SortCriteria
Public Overridable Property Field As String
Public Overridable Property Direction As String
End Class
End Namespace
Namespace Field2Office.API.Model.Schedules
Public Partial Class Schedule
Public Sub New()
Users = New List(Of String)
Teams = New List(Of String)
Data = New Dictionary(Of String, Object)
End Sub
Public Overridable Property Workspace As String
Public Overridable Property ObjectId As String
Public Overridable Property VersionId As String
Public Overridable Property BasedOn As String
Public Overridable Property Start As String
Public Overridable Property [End] As String
Public Overridable Property TimeZone As String
Public Overridable Property Users As List(Of String)
Public Overridable Property Teams As List(Of String)
Public Overridable Property Data As Dictionary(Of String, Object)
End Class
End Namespace
Namespace Field2Office.Core.Model.Task
Public Partial Class CustomDataField
Public Overridable Property Binding As String
Public Overridable Property Label As String
Public Overridable Property Value As Object
Public Overridable Property DataType As String
Public Overridable Property IsReadOnly As Boolean
Public Overridable Property IsHidden As Boolean
Public Overridable Property Values As String
End Class
End Namespace
End Namespace
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /{Workspace}/AssetQuery HTTP/1.1
Host: dev.fieldsquared.com
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<AssetQuery xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Field2Office.API.Model.Assets">
<Filters>
<QueryFilter>
<Field>String</Field>
<Operator>String</Operator>
<Value />
</QueryFilter>
</Filters>
<RecCount>0</RecCount>
<RecStart>0</RecStart>
<Sort>
<SortCriteria>
<Direction>String</Direction>
<Field>String</Field>
</SortCriteria>
</Sort>
<SuppressGeometry>false</SuppressGeometry>
<Workspace>String</Workspace>
</AssetQuery>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<AssetQueryResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Field2Office.API.Model.Assets">
<Assets xmlns:d2p1="http://schemas.datacontract.org/2004/07/Field2Office.API.Model">
<d2p1:Asset>
<d2p1:ActiveLaborTypes xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:KeyValueOfstringanyType>
<d4p1:Key>String</d4p1:Key>
<d4p1:Value />
</d4p1:KeyValueOfstringanyType>
</d2p1:ActiveLaborTypes>
<d2p1:Address>
<d2p1:City>String</d2p1:City>
<d2p1:Country>String</d2p1:Country>
<d2p1:Location>
<d2p1:x>0</d2p1:x>
<d2p1:y>0</d2p1:y>
</d2p1:Location>
<d2p1:State>String</d2p1:State>
<d2p1:Street>String</d2p1:Street>
<d2p1:Unit>String</d2p1:Unit>
<d2p1:Zip>String</d2p1:Zip>
</d2p1:Address>
<d2p1:AllAssests>0</d2p1:AllAssests>
<d2p1:Ancestors xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:string>String</d4p1:string>
</d2p1:Ancestors>
<d2p1:Anno>
<d2p1:R>0</d2p1:R>
<d2p1:S>0</d2p1:S>
<d2p1:T>String</d2p1:T>
<d2p1:X>0</d2p1:X>
<d2p1:Y>0</d2p1:Y>
</d2p1:Anno>
<d2p1:Assets xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:string>String</d4p1:string>
</d2p1:Assets>
<d2p1:AssignedWorkspace>String</d2p1:AssignedWorkspace>
<d2p1:Barcode>String</d2p1:Barcode>
<d2p1:BasedOn>String</d2p1:BasedOn>
<d2p1:Contacts xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:string>String</d4p1:string>
</d2p1:Contacts>
<d2p1:Created>String</d2p1:Created>
<d2p1:CreatedBy>String</d2p1:CreatedBy>
<d2p1:CustomDataFields xmlns:d4p1="http://schemas.datacontract.org/2004/07/Field2Office.Core.Model.Task">
<d4p1:CustomDataField>
<d4p1:Binding>String</d4p1:Binding>
<d4p1:DataType>String</d4p1:DataType>
<d4p1:IsHidden>false</d4p1:IsHidden>
<d4p1:IsReadOnly>false</d4p1:IsReadOnly>
<d4p1:Label>String</d4p1:Label>
<d4p1:Value />
<d4p1:Values>String</d4p1:Values>
</d4p1:CustomDataField>
</d2p1:CustomDataFields>
<d2p1:Data xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:KeyValueOfstringstring>
<d4p1:Key>String</d4p1:Key>
<d4p1:Value>String</d4p1:Value>
</d4p1:KeyValueOfstringstring>
</d2p1:Data>
<d2p1:Documents>
<d2p1:DomainItem>
<d2p1:LastUpdated>String</d2p1:LastUpdated>
<d2p1:ObjectId>String</d2p1:ObjectId>
<d2p1:VersionId>String</d2p1:VersionId>
<d2p1:Workspace>String</d2p1:Workspace>
</d2p1:DomainItem>
</d2p1:Documents>
<d2p1:Events>
<d2p1:EventItem>
<d2p1:Automatic>false</d2p1:Automatic>
<d2p1:Barcode>String</d2p1:Barcode>
<d2p1:Date>String</d2p1:Date>
<d2p1:DateCreated>String</d2p1:DateCreated>
<d2p1:Details>String</d2p1:Details>
<d2p1:IsScan>false</d2p1:IsScan>
<d2p1:Location>
<d2p1:x>0</d2p1:x>
<d2p1:y>0</d2p1:y>
</d2p1:Location>
<d2p1:ObjectId>String</d2p1:ObjectId>
<d2p1:SelectedBy>String</d2p1:SelectedBy>
<d2p1:Status>String</d2p1:Status>
<d2p1:StatusType>String</d2p1:StatusType>
<d2p1:Type>String</d2p1:Type>
<d2p1:User>String</d2p1:User>
</d2p1:EventItem>
</d2p1:Events>
<d2p1:ExternalId>String</d2p1:ExternalId>
<d2p1:Geometry>
<d2p1:Coordinates>
<d2p1:Location>
<d2p1:x>0</d2p1:x>
<d2p1:y>0</d2p1:y>
</d2p1:Location>
</d2p1:Coordinates>
<d2p1:Type>String</d2p1:Type>
</d2p1:Geometry>
<d2p1:GeometryString>String</d2p1:GeometryString>
<d2p1:InventoryItems xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:string>String</d4p1:string>
</d2p1:InventoryItems>
<d2p1:IsParent>false</d2p1:IsParent>
<d2p1:LastUpdated>String</d2p1:LastUpdated>
<d2p1:Levels>0</d2p1:Levels>
<d2p1:LocationHistory>
<d2p1:LocationHistory>
<d2p1:Barcode>String</d2p1:Barcode>
<d2p1:Date>String</d2p1:Date>
<d2p1:IsScan>false</d2p1:IsScan>
<d2p1:Location>
<d2p1:x>0</d2p1:x>
<d2p1:y>0</d2p1:y>
</d2p1:Location>
<d2p1:Notes>String</d2p1:Notes>
</d2p1:LocationHistory>
</d2p1:LocationHistory>
<d2p1:MaintenanceHistory>
<d2p1:MaintenanceRecord>
<d2p1:DateTime>String</d2p1:DateTime>
<d2p1:Notes>String</d2p1:Notes>
</d2p1:MaintenanceRecord>
</d2p1:MaintenanceHistory>
<d2p1:Name>String</d2p1:Name>
<d2p1:ObjectId>String</d2p1:ObjectId>
<d2p1:Owner>
<d2p1:Ancestors xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d5p1:string>String</d5p1:string>
</d2p1:Ancestors>
<d2p1:Class>String</d2p1:Class>
<d2p1:ObjectId>String</d2p1:ObjectId>
<d2p1:Type>String</d2p1:Type>
<d2p1:VersionId>String</d2p1:VersionId>
</d2p1:Owner>
<d2p1:Parent>String</d2p1:Parent>
<d2p1:Schedules xmlns:d4p1="http://schemas.datacontract.org/2004/07/Field2Office.API.Model.Schedules">
<d4p1:Schedule>
<d4p1:BasedOn>String</d4p1:BasedOn>
<d4p1:Data xmlns:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d6p1:KeyValueOfstringanyType>
<d6p1:Key>String</d6p1:Key>
<d6p1:Value />
</d6p1:KeyValueOfstringanyType>
</d4p1:Data>
<d4p1:End>String</d4p1:End>
<d4p1:ObjectId>String</d4p1:ObjectId>
<d4p1:Start>String</d4p1:Start>
<d4p1:Teams xmlns:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d6p1:string>String</d6p1:string>
</d4p1:Teams>
<d4p1:TimeZone>String</d4p1:TimeZone>
<d4p1:Users xmlns:d6p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d6p1:string>String</d6p1:string>
</d4p1:Users>
<d4p1:VersionId>String</d4p1:VersionId>
<d4p1:Workspace>String</d4p1:Workspace>
</d4p1:Schedule>
</d2p1:Schedules>
<d2p1:SourceProjection>String</d2p1:SourceProjection>
<d2p1:Symbol>String</d2p1:Symbol>
<d2p1:TaskSeries xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:string>String</d4p1:string>
</d2p1:TaskSeries>
<d2p1:TaskSeriesTemplates xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:string>String</d4p1:string>
</d2p1:TaskSeriesTemplates>
<d2p1:Tasks>
<d2p1:DomainItem>
<d2p1:LastUpdated>String</d2p1:LastUpdated>
<d2p1:ObjectId>String</d2p1:ObjectId>
<d2p1:VersionId>String</d2p1:VersionId>
<d2p1:Workspace>String</d2p1:Workspace>
</d2p1:DomainItem>
</d2p1:Tasks>
<d2p1:Teams xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:string>String</d4p1:string>
</d2p1:Teams>
<d2p1:TimeZone>String</d2p1:TimeZone>
<d2p1:Type>String</d2p1:Type>
<d2p1:Users>
<d2p1:DomainItem>
<d2p1:LastUpdated>String</d2p1:LastUpdated>
<d2p1:ObjectId>String</d2p1:ObjectId>
<d2p1:VersionId>String</d2p1:VersionId>
<d2p1:Workspace>String</d2p1:Workspace>
</d2p1:DomainItem>
</d2p1:Users>
<d2p1:VersionId>String</d2p1:VersionId>
<d2p1:Workspace>String</d2p1:Workspace>
</d2p1:Asset>
</Assets>
<RecCount>0</RecCount>
<RecStart>0</RecStart>
<TotalCount>0</TotalCount>
</AssetQueryResponse>