work in progress..

This commit is contained in:
Daniel Schick 2015-03-29 13:31:25 +00:00
parent 4c829e3d30
commit 3077053260
66 changed files with 5971 additions and 51 deletions

Binary file not shown.

View File

@ -0,0 +1,364 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<definitions xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://www.fleettracker.de/api/1.0"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:apml="http://www.herbergEngineering.com/apml" xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:api='http://www.fleettracker.de/api/1.0' targetNamespace="http://www.fleettracker.de/api/1.0">
<wsdl:types>
<xsd:schema targetNamespace="http://www.fleettracker.de/api/1.0">
<xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" />
<xsd:include schemaLocation="position.xsd" />
<xsd:include schemaLocation="device.xsd" />
<xsd:include schemaLocation="auth.xsd" />
<xsd:include schemaLocation="geoarea.xsd" />
<xsd:include schemaLocation="shipParams.xsd" />
<xsd:include schemaLocation="target.xsd" />
<xsd:include schemaLocation="ship.xsd" />
<!-- ####################################################################### -->
<!-- ####################################################################### -->
<xsd:complexType name="TimeFrameRequestFilter">
<xsd:sequence>
<xsd:element name="startDate" type="xsd:dateTime"
minOccurs="0" maxOccurs="1" />
<xsd:element name="endDate" type="xsd:dateTime"
minOccurs="0" maxOccurs="1" />
</xsd:sequence>
</xsd:complexType>
<!-- ####################################################################### -->
<xsd:complexType name="FormDataInfoDataset">
<xsd:sequence>
<xsd:element name="folderTemplateGuid" type="xsd:string"
minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The GUID of the folder template
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="formTemplateGuid" type="xsd:string"
minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The GUID of the form template
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="folderGuid" type="xsd:string"
minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The GUID of the folder</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="formGuid" type="xsd:string"
minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The GUID of the form</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="imoNumber" type="xsd:int" minOccurs="1"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The IMO number this form belongs to.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="lastRevisionDate" type="xsd:dateTime"
minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The date of the latest revision.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!-- ####################################################################### -->
<xsd:complexType name="FormData">
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="1"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The value
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="unit" type="xsd:string" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The optional unit
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="name" type="xsd:string" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The widget name this cell belongs to.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="widget_id" type="xsd:int" minOccurs="1"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The widget id the value belongs to. Note
that this entry is the id within the form template but NOT the database id of the widget!
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="rowNo" type="xsd:int" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The optional row number. This is set if we
have a widget that is part of a table.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!-- ####################################################################### -->
<xsd:complexType name="FormDataset">
<xsd:sequence>
<xsd:element name="revisionDate" type="xsd:dateTime"
minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The date of the revision.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="startPeriod" type="xsd:dateTime"
minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The begin of the period this dataset is valid
for.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="endPeriod" type="xsd:dateTime"
minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The end of the period this row is valid for.
If startPeriod is not given, the endPeriod contains the sample
timestamp.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="formData" type="tns:FormData"
minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>The values.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!-- ####################################################################### -->
<!-- ####################################################################### -->
<xsd:complexType name="GetFormDataInfoListRequestData">
<xsd:sequence>
<xsd:element name="apiIdentifier" type="api:APIIdentifier"
minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
The reporting or requesting party.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="timeFrameRequestFilter" type="tns:TimeFrameRequestFilter"
minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The optional time frame. If not set then all entries are returned.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="ffTemplateName" type="xsd:string"
minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This is the Fleetform form template name (see
FolderTemplate.Template.TemplateName).
You have to either set
this or ffFolderTemplateTypeTag.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="ffFolderTemplateTypeTag" type="xsd:string"
minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This is the Fleetform folder template typeTag,
e.g. CREWLIST, PERFORMANCEREPORT, SHIPDETAILS, etc. See
FolderTemplate in fleetform.xsd
for possible values.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!-- ####################################################################### -->
<xsd:complexType name="GetFormDataInfoListResponseData">
<xsd:sequence>
<xsd:element name="request" type="tns:GetFormDataInfoListRequestData"
minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The request</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="formDataInfoDatasets" type="tns:FormDataInfoDataset"
minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>A set of form data found in the database.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="result" type="xsd:string" />
<xsd:element name="success" type="xsd:boolean">
<xsd:annotation>
<xsd:documentation>This flag is set to true if the route was
successfully stored.
Otherwise, result contains the error
message.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!-- ####################################################################### -->
<!-- ####################################################################### -->
<xsd:complexType name="GetFormDataRequestData">
<xsd:sequence>
<xsd:element name="apiIdentifier" type="api:APIIdentifier"
minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
The reporting or requesting party.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="formGuid" type="xsd:string"
minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The GUID of the form.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!-- ####################################################################### -->
<xsd:complexType name="GetFormDataResponseData">
<xsd:sequence>
<xsd:element name="request" type="tns:GetFormDataRequestData"
minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
The request belonging to this response.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="imoNumber" type="xsd:int" minOccurs="1"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The IMO number of the vessel this form belongs
to.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="formDatasets" type="tns:FormDataset"
minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>
The requested data. If not found then this
entry is null. Note that we may have several entries for one
form here since one form may contain several entries.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="result" type="xsd:string" />
<xsd:element name="success" type="xsd:boolean">
<xsd:annotation>
<xsd:documentation>
This flag is set to true if the route was
successfully stored.
Otherwise, result contains the error
message.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!-- ####################################################################### -->
</xsd:schema>
</wsdl:types>
<!-- ####################################################################### -->
<!-- ####################################################################### -->
<message name="GetFormDataInfoListRequest">
<part name="body" type="tns:GetFormDataInfoListRequestData" />
</message>
<message name="GetFormDataInfoListResponse">
<part name="body" type="tns:GetFormDataInfoListResponseData" />
</message>
<message name="GetFormDataRequest">
<part name="body" type="tns:GetFormDataRequestData" />
</message>
<message name="GetFormDataResponse">
<part name="body" type="tns:GetFormDataResponseData" />
</message>
<!-- ####################################################################### -->
<!-- ########################################################### -->
<portType name="WSAPIFormDataPortType">
<operation name="GetFormDataInfoList">
<input message="tns:GetFormDataInfoListRequest" />
<output message="tns:GetFormDataInfoListResponse" />
</operation>
<operation name="GetFormData">
<input message="tns:GetFormDataRequest" />
<output message="tns:GetFormDataResponse" />
</operation>
</portType>
<!-- ########################################################### -->
<binding name="WSAPIFormDataBinding" type="tns:WSAPIFormDataPortType">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http" />
<operation name="GetFormDataInfoList">
<soap:operation soapAction="http://www.fleettracker.de/GetFormDataInfoList"
style="rpc" />
<input>
<soap:body use="literal" namespace="http://www.fleettracker.de/api/1.0"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</input>
<output>
<soap:body use="literal" namespace="http://www.fleettracker.de/api/1.0"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</output>
</operation>
<operation name="GetFormData">
<soap:operation soapAction="http://www.fleettracker.de/GetFormData"
style="rpc" />
<input>
<soap:body use="literal" namespace="http://www.fleettracker.de/api/1.0"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</input>
<output>
<soap:body use="literal" namespace="http://www.fleettracker.de/api/1.0"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</output>
</operation>
</binding>
<!-- ########################################################### -->
<service name="WSAPIFormData">
<port name="WSAPIFormDataPort" binding="tns:WSAPIFormDataBinding">
<soap:address location="http://www.fleettracker.de/api/1.0/WSAPIFormData.php" />
</port>
</service>
</definitions>

45
nsw/Herberg/auth.xsd Normal file
View File

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="qualified"
attributeFormDefault="unqualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.fleettracker.de/api/1.0" xmlns:tns="http://www.fleettracker.de/api/1.0"
targetNamespace="http://www.fleettracker.de/api/1.0">
<!--
#######################################################################
-->
<xsd:complexType name="APIIdentifier">
<xsd:annotation>
<xsd:documentation>This is the identifier the client has to report.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="companyGuid" type="xsd:string"
minOccurs="1" maxOccurs="1" >
<xsd:annotation>
<xsd:documentation>The unique id of the company. This is a unique
GUID identifying the
company using the API. Only if the company is registered, they may use
the API.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="clientGuid" type="xsd:string"
minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The unique id of the client. This is a unique
GUID identifying the
individual sender. E.g. each boat may have a unique id.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="clientName" type="xsd:string"
minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The optional name of the sending client. This is only for helping us identifying the sending
party.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>

89
nsw/Herberg/device.xsd Normal file
View File

@ -0,0 +1,89 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="qualified"
attributeFormDefault="unqualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.fleettracker.de/api/1.0" xmlns:tns="http://www.fleettracker.de/api/1.0"
targetNamespace="http://www.fleettracker.de/api/1.0">
<!--
#######################################################################
-->
<xsd:complexType name="DeviceId">
<xsd:annotation>
<xsd:documentation>This is the device ID.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="keyreference" minOccurs="1" maxOccurs="1"
default="UNKNOWN">
<xsd:annotation>
<xsd:documentation>The bearer key reference. We have several ways
to identify the device.
E.g. for inmarsatc, we use fleetID and vesselID (and mobile number, if
available).
For D+, we use the vesselID. Daily Report uses the IMO number.
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="UNKNOWN" />
<xsd:enumeration value="INMARSATC" />
<xsd:enumeration value="INMARSATD" />
<xsd:enumeration value="ORBCOMM" />
<xsd:enumeration value="IMONO" />
<xsd:enumeration value="CALLSIGN" >
<xsd:annotation>
<xsd:documentation>The callsign. For instance, Globewireless uses this.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="GLOBALSTAR" >
<xsd:annotation>
<xsd:documentation>The Globalstar device id. Example: 0-545312
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="MMSI" />
<xsd:enumeration value="GUID">
<xsd:annotation>
<xsd:documentation>The vesselID contains a unique GUID identifying the device. We use this e.g. for the API.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="IMEI">
<xsd:annotation>
<xsd:documentation>IMEI - International Mobile Equipment Identity (e.g. BGAN)
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="mobileNo" type="xsd:string" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The inmarsat C mobile number.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="fleetID" type="xsd:string" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This is the DNID for INMARSATC.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="vesselID" type="xsd:string" minOccurs="1"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This is the terminal, member number, GUID, MMSI, etc.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="imoNo" type="xsd:string" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This is the IMO number.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>

200
nsw/Herberg/geoarea.xsd Normal file
View File

@ -0,0 +1,200 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="unqualified"
attributeFormDefault="unqualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.fleettracker.de/api/1.0" xmlns:tns="http://www.fleettracker.de/api/1.0"
targetNamespace="http://www.fleettracker.de/api/1.0">
<xsd:include schemaLocation="position.xsd" />
<!--
#######################################################################
-->
<xsd:complexType name="GeoArea">
<xsd:annotation>
<xsd:documentation>This is a geographical area. It can be a polygon
or a bounding box.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="coverages" type="GeoAreaCoverage"
minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Geographical coverages of this area
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="aid" type="xsd:int" minOccurs="1"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>DB Area ID
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="alid" type="xsd:int" minOccurs="1"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>DB Area list ID
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="name" type="xsd:string" minOccurs="1"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>DB Area name
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!--
#######################################################################
-->
<xsd:complexType name="GeoAreaCoverage">
<xsd:annotation>
<xsd:documentation>This is a geographical coverage belonging to an area.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="positions" type="tns:Position" minOccurs="2"
maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Geographical positions
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="areatype" minOccurs="1" maxOccurs="1"
default="polygon">
<xsd:annotation>
<xsd:documentation>The type of this coverage. Bounding boxes are
between the first 2 positions.
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="polygon" />
<xsd:enumeration value="boundingbox" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="acid" type="xsd:int" minOccurs="1"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>DB Area coverage ID
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="name" type="xsd:string" minOccurs="1"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>DB Area Coverage name
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!--
#######################################################################
-->
<xsd:complexType name="GeoAreaEvent">
<xsd:annotation>
<xsd:documentation>This is an event related to an area.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="position" type="tns:PositionFix"
minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Geographical position when the event happened.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="acid" type="xsd:int" minOccurs="1"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>DB Area coverage ID
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="aid" type="xsd:int" minOccurs="1"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>DB Area ID
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="alid" type="xsd:int" minOccurs="1"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>DB Area list ID
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="areaName" type="xsd:string" minOccurs="1"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>DB Area name
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="areaCoverageName" type="xsd:string"
minOccurs="1" maxOccurs="1" >
<xsd:annotation>
<xsd:documentation>DB Area Coverage name
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="preliminary" type="xsd:boolean"
minOccurs="1" maxOccurs="1" default="true">
<xsd:annotation>
<xsd:documentation>This flag indicates that the event has been generated but
not yet been proven. Example: It is proven if the vessel is within the areas more than 1 minute.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="reported" type="xsd:boolean"
minOccurs="1" maxOccurs="1" default="false">
<xsd:annotation>
<xsd:documentation>This flag indicates that the event has been reported ashore.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="eventType" minOccurs="1" maxOccurs="1"
default="ENTER">
<xsd:annotation>
<xsd:documentation>The type of this event.
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="ENTER">
<xsd:annotation>
<xsd:documentation>The vessel has entered the area
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="LEAVE">
<xsd:annotation>
<xsd:documentation>The vessel has left the area
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="STOPPED">
<xsd:annotation>
<xsd:documentation>The vessel has stopped in the area
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="MOVING">
<xsd:annotation>
<xsd:documentation>The vessel has started moving within the area
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>

View File

@ -0,0 +1,231 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="unqualified"
attributeFormDefault="unqualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.fleettracker.de/api/1.0" xmlns:tns="http://www.fleettracker.de/api/1.0"
targetNamespace="http://www.fleettracker.de/api/1.0">
<xsd:include schemaLocation="position.xsd" />
<!--
#######################################################################
These definition are used to define inland position data types.
-->
<!--
#######################################################################
-->
<xsd:complexType name="InlandDistance">
<xsd:annotation>
<xsd:documentation>This is the distance on a river.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="distanceValue" type="xsd:double"
minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This is the current value in the given unit.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="distanceUnit" minOccurs="1"
maxOccurs="1" default="METER">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="METER" />
<xsd:enumeration value="STATMILE" />
<xsd:enumeration value="KM" />
<xsd:enumeration value="NAUTICALMILE" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!--
#######################################################################
-->
<xsd:complexType name="InlandSpeed">
<xsd:annotation>
<xsd:documentation>This is the speed of a target.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="speedValue" type="xsd:double"
minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This is the current value in the given unit.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="speedUnit" minOccurs="1"
maxOccurs="1" default="METER_PER_SECOND">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="METER_PER_SECOND" />
<xsd:enumeration value="STATMILES_PER_HOUR" />
<xsd:enumeration value="KM_PER_HOUR" />
<xsd:enumeration value="KNOTS" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!--
#######################################################################
-->
<xsd:complexType name="River">
<xsd:annotation>
<xsd:documentation>This represents a river.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="rivername" type="xsd:string"
minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This is the river name.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="riverabbr" type="xsd:string"
minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This is the river abbreviation.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!--
#######################################################################
-->
<xsd:complexType name="MilesMarker">
<xsd:annotation>
<xsd:documentation>This represents a miles marker entry.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="miles" type="xsd:float" minOccurs="1"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This is the river mile or kilometer.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="unit" default="STATMILES" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This is the unit of the miles.
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="STATMILES" />
<xsd:enumeration value="KM" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="river" type="tns:River" minOccurs="1"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This is the river.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!--
#######################################################################
-->
<xsd:complexType name="MilesMarkerWithPosition">
<xsd:annotation>
<xsd:documentation>This represents a miles marker entry with a
geographic position.
</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="tns:MilesMarker">
<xsd:sequence>
<xsd:element name="position" type="tns:Position"
minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The geographic position of this miles marker
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!--
#######################################################################
-->
<xsd:complexType name="MilesMarkerWithPositionList">
<xsd:annotation>
<xsd:documentation>This represents a set of miles marker entry with a
geographic position.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="entries" type="tns:MilesMarkerWithPosition"
minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>A set of miles marker entries with positions.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!--
#######################################################################
-->
<xsd:complexType name="NoPassingZone">
<xsd:annotation>
<xsd:documentation>This represents a no passing zone.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="id" type="xsd:int" minOccurs="1"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The mandatory unique id
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="name" type="xsd:string" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The optional name for identification.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="start" type="tns:MilesMarker"
minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The begin of the no passing zone. This is always
the lower mile marker.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="end" type="tns:MilesMarker" minOccurs="1"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The end of the no passing zone. This is always
the higher mile marker.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!--
#######################################################################
-->
<xsd:complexType name="NoPassingZoneList">
<xsd:annotation>
<xsd:documentation>This represents a set of no passing zones
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="entries" type="tns:NoPassingZone"
minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>A set of NoPassingZone objects.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>

127
nsw/Herberg/position.xsd Normal file
View File

@ -0,0 +1,127 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="unqualified"
attributeFormDefault="unqualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.fleettracker.de/api/1.0" xmlns:tns="http://www.fleettracker.de/api/1.0"
targetNamespace="http://www.fleettracker.de/api/1.0">
<!--
#######################################################################
-->
<xsd:complexType name="Position">
<xsd:annotation>
<xsd:documentation>This is a geographical position.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="lat" type="xsd:int" minOccurs="1"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Latitude in degrees x 60000, North &gt; 0
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="lon" type="xsd:int" minOccurs="1"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Latitude in degrees x 60000, East &gt; 0
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!--
#######################################################################
-->
<xsd:complexType name="PositionFix">
<xsd:annotation>
<xsd:documentation>This is a geographical position with a timestamp.
</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="tns:Position">
<xsd:sequence>
<xsd:element name="timestamp" type="xsd:dateTime"
minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Timestamp when the position was made
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!--
#######################################################################
-->
<xsd:complexType name="PasttrackPosition">
<xsd:annotation>
<xsd:documentation>This is a geographical position of a pasttrack.
</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="tns:PositionFix">
<xsd:sequence>
<xsd:element name="orderNumber" type="xsd:int"
minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The order number of the pastttack. The
higher
the number, the older the position.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="rot" type="xsd:float" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Rate of turn in deg/s, right &gt; 0, left &lt;
0)</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="sog" type="xsd:float" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Speed over ground in knots
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="cog" type="xsd:float" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Course over ground in degrees
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="hdg" type="xsd:float" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Heading in degrees
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="eta" type="xsd:dateTime" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>ETA to next port
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="etb" type="xsd:dateTime" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>ETB to next port
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="nextport" type="xsd:string"
minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Next port
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:schema>

97
nsw/Herberg/route.xsd Normal file
View File

@ -0,0 +1,97 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="qualified"
attributeFormDefault="unqualified"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.fleettracker.de/api/1.0"
xmlns:tns="http://www.fleettracker.de/api/1.0"
targetNamespace="http://www.fleettracker.de/api/1.0"
>
<!-- ####################################################################### -->
<xsd:complexType name="WaypointData">
<xsd:annotation>
<xsd:documentation>This represents a waypoint of a planned route.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="id" type="xsd:int">
<xsd:annotation>
<xsd:documentation>This is a unique id of the waypoint within the route.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This is an optional name of this waypoint.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="nextwp" type="xsd:int" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This is the unique id of the NEXT
waypoint within the route. This element is not set
for the last waypoint.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="lat" type="xsd:int" minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This is the latitude of this waypoint in minutes x 1000 (= degrees x 60000).
Positive = North, Negative = South.
Example: 12 deg 23.4 min North = (12 * 60 + 23.4) * 1000 = 743400
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="lon" type="xsd:int" minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This is the longitude of this waypoint in minutes x 1000 (= degrees x 60000).
Positive = East, Negative = West.
Example: 122 deg 23.4 min West = -(122 * 60 + 23.4) * 1000 = -7343400
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="sog" type="xsd:float" minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This is the planned speed over ground (SOG) in knots TO this waypoint.
So the ship will calculate to go from the previous waypoint to this
waypoint at this speed.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<!-- Attributes -->
</xsd:complexType>
<!-- ####################################################################### -->
<xsd:complexType name="RouteData">
<xsd:annotation>
<xsd:documentation>This represents the planned ship route.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="id" type="xsd:int">
<xsd:annotation>
<xsd:documentation>This is a unique id of the route. The ID has to be unique
for the vessel.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="imono" type="xsd:int" minOccurs="1">
<xsd:annotation>
<xsd:documentation>This is the IMO number of the vessel this route belongs to.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="created" type="xsd:dateTime" minOccurs="1">
<xsd:annotation>
<xsd:documentation>This is the timestamp in UTC when the route has been created.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="eta" type="xsd:dateTime" minOccurs="1">
<xsd:annotation>
<xsd:documentation>This is the ETA in local time when the ship is calculated to
reach the final waypoint of this route.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="waypoint" type="tns:WaypointData" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>This is the list of waypoints.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>

600
nsw/Herberg/schedule.xsd Normal file
View File

@ -0,0 +1,600 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="qualified"
attributeFormDefault="unqualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:api='http://www.fleettracker.de/api/1.0'
xmlns="http://www.fleettracker.de/api/1.0" targetNamespace="http://www.fleettracker.de/api/1.0">
<xsd:include schemaLocation="position.xsd" />
<xsd:simpleType name="AGENTTYPE">
<xsd:annotation>
<xsd:documentation>
The type of agent.
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="DEFAULT" >
<xsd:annotation>
<xsd:documentation>
This is the default agent, also called the Charterers agent.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="CREWING" >
<xsd:annotation>
<xsd:documentation>
This is the crewing agent.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="PURCHASING" >
<xsd:annotation>
<xsd:documentation>
This is the purchasing agent.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="OWNERS" >
<xsd:annotation>
<xsd:documentation>
This is the owners agent.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="DESTINATION_TYPE">
<xsd:annotation>
<xsd:documentation>
The destination type of the schedule entry.
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="HARBOUR">
<xsd:annotation>
<xsd:documentation>
This is a port where the ship can berth.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="ANCHORAGE">
<xsd:annotation>
<xsd:documentation>
This is an anchorage area.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="DRIFTING">
<xsd:annotation>
<xsd:documentation>
This is a drifting time.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="CANAL">
<xsd:annotation>
<xsd:documentation>
This is a canal that the vessel may pass.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="RANGE">
<xsd:annotation>
<xsd:documentation>
This is a range indicating a general direction.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="DESTINATION_REMARK_TYPE">
<xsd:annotation>
<xsd:documentation>
The type of a remark that may be attached to a schedule entry.
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="UNKNOWN_TYPE" />
<xsd:enumeration value="US_ENOA" />
<xsd:enumeration value="US_ENOD" />
<xsd:enumeration value="SG_EPANS" />
<xsd:enumeration value="USER_REMARK" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="DESTINATION_USERREMARK_TYPE">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="UNKNOWN_TYPE" />
<xsd:enumeration value="FOR_ALL_ARRIVALS_OF_ALL_VESSELS">
<xsd:annotation>
<xsd:documentation>
This type is for all future arrivals of all
vessels to the same
destination.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="FOR_ALL_ARRIVALS_OF_THIS_VESSEL">
<xsd:annotation>
<xsd:documentation>
This type is for all future arrivals of the
specified vessel to the
same destination.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="FOR_THIS_DEST_ONLY">
<xsd:annotation>
<xsd:documentation>
This type is for the specified destination only.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="DESTINATION_REMARK_STATUS">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="UNKNOWN_STATUS" />
<xsd:enumeration value="INITIAL_SENT" />
<xsd:enumeration value="UPDATE_SENT" />
</xsd:restriction>
</xsd:simpleType>
<!-- ######################################################################################### -->
<xsd:complexType name="DESTINATION_REMARK">
<xsd:annotation>
<xsd:documentation>
This is a destination remark. It refers either to
a particular
destination or a fixed object (i.e. a port).
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="date" minOccurs="1" maxOccurs="1"
type='xsd:dateTime'>
<xsd:annotation>
<xsd:documentation>This is the date when the remark was created.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="type" minOccurs="1" maxOccurs="1"
type='DESTINATION_REMARK_TYPE' />
<xsd:element name="status" minOccurs="1" maxOccurs="1"
type='DESTINATION_REMARK_STATUS' />
<xsd:element name="userRemarkType" minOccurs="0"
maxOccurs="1" type='DESTINATION_USERREMARK_TYPE' default="UNKNOWN_TYPE">
<xsd:annotation>
<xsd:documentation>
This is the optional remark type for user
remarks. If the
type is USER_REMARK then this entry defines how the
user remark should be displayed.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="username" minOccurs="0" maxOccurs="1"
type='xsd:string'>
<xsd:annotation>
<xsd:documentation>
This is the optional user name who entered the
remarks.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="message" minOccurs="0" maxOccurs="1"
type='xsd:string'>
<xsd:annotation>
<xsd:documentation>
This is the optional message (the remark).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!-- #########################################################################################
The agent ######################################################################################### -->
<xsd:complexType name="SCHEDULEELEMENTAGENT">
<xsd:sequence>
<xsd:element name="AGENTID" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
This id is given by the Daily Report. This is
NOT the database id.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="AGENTTYPE" type="AGENTTYPE" />
<xsd:element name="AGENTNAME" type="xsd:string" />
<xsd:element name="AGENTCONTACT" type="xsd:string" />
<xsd:element name="AGENTPHONE" type="xsd:string" />
<xsd:element name="AGENTMOBILE" type="xsd:string" />
<xsd:element name="AGENTEMAILADDR" type="xsd:string" />
<xsd:element name="AGENTCONTACT2" type="xsd:string" />
<xsd:element name="AGENTPHONE2" type="xsd:string" />
<xsd:element name="AGENTMOBILE2" type="xsd:string" />
<xsd:element name="AGENTEMAILADDR2" type="xsd:string" />
<xsd:element name="AGENTCONTACT3" type="xsd:string" />
<xsd:element name="AGENTPHONE3" type="xsd:string" />
<xsd:element name="AGENTMOBILE3" type="xsd:string" />
<xsd:element name="AGENTEMAILADDR3" type="xsd:string" />
<xsd:element name="AGENTFAX" type="xsd:string" />
<xsd:element name="AGENTADDRESS1" type="xsd:string" />
<xsd:element name="AGENTADDRESS2" type="xsd:string" />
<xsd:element name="AGENTADDRESS3" type="xsd:string" />
<xsd:element name="AGENTZIP" type="xsd:string" />
<xsd:element name="AGENTCITY" type="xsd:string" />
<xsd:element name="AGENTCOUNTRY" type="xsd:string" />
<xsd:element name="created" minOccurs="0" maxOccurs="1" type='xsd:dateTime'>
<xsd:annotation>
<xsd:documentation>The entry was created at this time
in UTC.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="removed" minOccurs="0" maxOccurs="1" type='xsd:dateTime'>
<xsd:annotation>
<xsd:documentation>The entry was removed at this time
in UTC.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="deprecated" type="xsd:boolean" minOccurs="0" maxOccurs="1" default="false">
<xsd:annotation>
<xsd:documentation>
Indicates that this entry should not be used any more. Added 01/2015.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="agentGuid" type="xsd:string" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
This is the unique GUID of this entry. Added 01/2015.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!-- #########################################################################################
The schedule entry ######################################################################################### -->
<xsd:complexType name="SCHEDULEELEMENT">
<xsd:annotation>
<xsd:documentation>
This is a destination remark. It refers either to
a particular
destination or a fixed object (i.e. a port).
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="ELEMENT_ID" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
This is the unique identifier (ident) created by
the Daily Report
tool. for historical reasons, this is
an integer
created based on the time stamp. The id is unique within
the
schedule.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="voyageNumber" type="xsd:string"
minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
This is the optional voyage number this
destination belongs to. It is
normally entered on board and is a
number or string.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="HARBOUR" type="xsd:string" >
<xsd:annotation>
<xsd:documentation>
The name of the schedule entry. This may be the port name (e.g. Hamburg), the anchorage name etc.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- The port type -->
<xsd:element name="DEST_TYPE" type="DESTINATION_TYPE"
default="HARBOUR" >
<xsd:annotation>
<xsd:documentation>
The type of this schedule entry.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="STATECODE" type="xsd:string" >
<xsd:annotation>
<xsd:documentation>
The state code (for US ports)
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="UNLOCATIONCODE" type="xsd:string" >
<xsd:annotation>
<xsd:documentation>
The unique UN location code (3 letters, e.g. HAM for Hamburg)
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="COUNTRYCODE" type="xsd:string" >
<xsd:annotation>
<xsd:documentation>
The ISO country code (e.g. DE for Germany, US for USA).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="COUNTRYNAME" type="xsd:string"
minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
This is the optional country name.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="DEST_POSITION" type="api:Position"
minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
This is the optional geographic position of
the
destination.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="ETA" type="xsd:dateTime" >
<xsd:annotation>
<xsd:documentation>
The expected time of arrival (local time).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="ETD" type="xsd:dateTime" minOccurs="0"
maxOccurs="1" >
<xsd:annotation>
<xsd:documentation>
The expected time of departure (local time).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="ETB" type="xsd:dateTime" minOccurs="0"
maxOccurs="1" >
<xsd:annotation>
<xsd:documentation>
The expected time of berth (local time).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="APS" type="xsd:dateTime" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
This is the optional arrival at pilot
station (local time).
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="FWE" type="xsd:dateTime" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
This is the optional Finished with Engine (local time).
Only
if arrived.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="EOSP" type="xsd:dateTime" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
This is the optional End of Sea Passage (local time).
Only
if
arrived.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="ATB" type="xsd:dateTime" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
This is the optional Actual time of Berth (local time).
Only if arrived.
Note: This is deprecated!
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="SBE" type="xsd:dateTime" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
This is the optional Stand by Engine (local time).
Only if
departed.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="ATD" type="xsd:dateTime" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
This is the optional Actual time of
Departure (local time).
Only if departed.
Note: This is deprecated!
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="BOSP" type="xsd:dateTime" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
This is the optional Begin of Sea Passage.
Only
if departed.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="ARRIVED" type="xsd:boolean" default="false" >
<xsd:annotation>
<xsd:documentation>
If true, the vessel arrived at the destination.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="LEFT" type="xsd:boolean" default="false" >
<xsd:annotation>
<xsd:documentation>
If true, the vessel departed from the destination.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="CANCELED" type="xsd:boolean" default="false" >
<xsd:annotation>
<xsd:documentation>
If true, this destination was canceled.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="COMMENT" type="xsd:string" >
<xsd:annotation>
<xsd:documentation>
Some remarks by the author responsible for the schedule.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="PORT_ACTIVITIES" minOccurs="0"
maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>
The port activity. This may be a set of the
following operations.
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="LOADING">
</xsd:enumeration>
<xsd:enumeration value="DISCHARGING">
</xsd:enumeration>
<xsd:enumeration value="BUNKERING">
</xsd:enumeration>
<xsd:enumeration value="AWAITING_SERVICE">
</xsd:enumeration>
<xsd:enumeration value="FOR_REPAIRS">
</xsd:enumeration>
<xsd:enumeration value="SHIPYARD">
</xsd:enumeration>
<xsd:enumeration value="FOR_ORDERS">
</xsd:enumeration>
<xsd:enumeration value="PURGING">
</xsd:enumeration>
<xsd:enumeration value="CLEANING">
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="PORT_CALL_NOT_FIXED_YET" type="xsd:boolean"
default="false" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
This optional value indicates that the
destination is preliminary.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="AGENT" type="SCHEDULEELEMENTAGENT"
minOccurs="0" maxOccurs="4" >
<xsd:annotation>
<xsd:documentation>
The agents responsible for the vessel at the destination.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="unbounded"
name="DESTINATION_REMARKS" type="DESTINATION_REMARK" >
<xsd:annotation>
<xsd:documentation>
A set of remarks related to the destination.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!-- #########################################################################################
The schedule ######################################################################################### -->
<xsd:complexType name="SCHEDULE">
<xsd:sequence>
<xsd:element name="SCHEDULE_ID" type="xsd:unsignedInt" >
<xsd:annotation>
<xsd:documentation>
An identifier for the schedule (not the database id). Note that several vessels may have schedules with identical SCHEDULE_IDs.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="changed" type="xsd:dateTime"
minOccurs="0" maxOccurs="1" >
<xsd:annotation>
<xsd:documentation>
Last modification time of the schedule.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="author" type="xsd:string" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
This is the author, normally the captains name.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="chiefname" type="xsd:string"
minOccurs="0" maxOccurs="1" >
<xsd:annotation>
<xsd:documentation>
This is the optional chief engineers name.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="chiefOfficerName" type="xsd:string"
minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>optional Chief officer name</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="unbounded" name="ELEMENT"
type="SCHEDULEELEMENT">
<xsd:annotation>
<xsd:documentation>
The destinations of this schedule. These are the schedule entries.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>

127
nsw/Herberg/ship.xsd Normal file
View File

@ -0,0 +1,127 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="qualified"
attributeFormDefault="unqualified"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.fleettracker.de/api/1.0"
xmlns:tns="http://www.fleettracker.de/api/1.0"
targetNamespace="http://www.fleettracker.de/api/1.0"
>
<xsd:include schemaLocation="position.xsd"/>
<xsd:include schemaLocation="device.xsd"/>
<xsd:include schemaLocation="route.xsd"/>
<!-- ####################################################################### -->
<xsd:complexType name="ShipAppearence">
<xsd:annotation>
<xsd:documentation>This is how the ship is displayed.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="color" type="xsd:string" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This is the color for not selected ship.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="selcolor" type="xsd:string" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This is the color for selected ship.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!-- ####################################################################### -->
<xsd:complexType name="ShipCategory">
<xsd:annotation>
<xsd:documentation>This is the ship category.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="number" type="xsd:int" minOccurs="1" maxOccurs="1" >
<xsd:annotation>
<xsd:documentation>This is the ship category number.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="name" type="xsd:string" minOccurs="1" maxOccurs="1" >
<xsd:annotation>
<xsd:documentation>The name of the category.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!-- ####################################################################### -->
<xsd:complexType name="AbstractShip">
<xsd:annotation>
<xsd:documentation>This is the abstract ship.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="sid" type="xsd:int" minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Database id</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="name" type="xsd:string" minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Ship name</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="charterShipName" type="xsd:string" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Charter ship name</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="pasttrack" type="tns:PasttrackPosition" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>The past positions of the ship including the latest position.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="photourl" type="xsd:string" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Optional ULR to photo image.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="categoryNumber" type="xsd:int" minOccurs="0" maxOccurs="1" default="0" >
<xsd:annotation>
<xsd:documentation>This is the ship category. This attribute is used to group a fleet
into several parts.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="appearence" type="tns:ShipAppearence" minOccurs="0" maxOccurs="1" >
<xsd:annotation>
<xsd:documentation>This contains optional individual settings for the ship appearence.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!-- ####################################################################### -->
<xsd:complexType name="FleettrackerShip">
<xsd:annotation>
<xsd:documentation>This is a Fleettracker Ship.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="tns:AbstractShip">
<xsd:sequence>
<xsd:element name="imono" type="xsd:long" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The IMO number of the ship.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="pollDevices" type="tns:DeviceId" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>The optional set of devices.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="route" type="tns:RouteData" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The optional route.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:schema>

View File

@ -0,0 +1,95 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="unqualified"
attributeFormDefault="unqualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.fleettracker.de/api/1.0" xmlns:tns="http://www.fleettracker.de/api/1.0"
targetNamespace="http://www.fleettracker.de/api/1.0">
<!--
#######################################################################
-->
<xsd:complexType name="OwnShipSpeedParams">
<xsd:annotation>
<xsd:documentation>The own ship parameter used for speed calculation.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="mmsiOwnShip" type="xsd:unsignedInt"
minOccurs="1" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
This is the MMSI of the own ship.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="maxOwnSpeedMPS" type="xsd:double"
minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
Minimal own speed we can achieve.
Unit: Meter per
second
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="minOwnSpeedMPS" type="xsd:double"
minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
Minimal own speed we can achieve.
Unit: Meter per
second
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="optOwnSpeedMPS" type="xsd:double"
minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
Optimal speed we would like to go.
Unit: Meter
per second
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="maxPositiveAccelerationMPSS" type="xsd:double"
minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
The maximal positive accelaration we can
achieve.
Unit: Meter per second^2
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="minNegativeAccelerationMPSS" type="xsd:double"
minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
The minimal negative accelaration we can
achieve.
Unit: Meter per second^2
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="optAbsoluteAccelerationMPSS" type="xsd:double"
minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>
The optimal accelaration we would like to use if
we
want to go from current speed to optimal speed. This will be
applied
if we do not have any targets.
Example: We run 5 mph, our
optimal speed is 8 mph, then we use this
acceleration
to go from 5
to 8.
Unit: Meter per second^2
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>

59
nsw/Herberg/target.xsd Normal file
View File

@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema elementFormDefault="unqualified"
attributeFormDefault="unqualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.fleettracker.de/api/1.0" xmlns:tns="http://www.fleettracker.de/api/1.0"
targetNamespace="http://www.fleettracker.de/api/1.0">
<!--
#######################################################################
These definition are used to define inland position data types.
-->
<xsd:include schemaLocation="inlandPosition.xsd" />
<!--
#######################################################################
-->
<xsd:complexType name="Target">
<xsd:annotation>
<xsd:documentation>This represents a river.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="milesmarker" type="tns:MilesMarker"
minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This is the current miles marker
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="movingDirection" minOccurs="1"
maxOccurs="1" default="UNKNOWN">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="UNKNOWN" />
<xsd:enumeration value="INCREASING_MILES" />
<xsd:enumeration value="DECREASING_MILES" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="mmsi" type="xsd:int" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This is the current miles marker
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="name" type="xsd:string" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This is the name of the target
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="inlandSpeed" type="tns:InlandSpeed" minOccurs="0"
maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This is the current speed
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>

View File

@ -76,30 +76,30 @@ namespace SendNSWMessageService
_log.InfoFormat("Sending CORE message for {0} application to {1}", _log.InfoFormat("Sending CORE message for {0} application to {1}",
message.MessageCore.IsTransit ? "TRANSIT" : "VISIT", message.MessageCore.InitialHIS.ToString()); message.MessageCore.IsTransit ? "TRANSIT" : "VISIT", message.MessageCore.InitialHIS.ToString());
bool sendSucceeded = false;
// switch über passendes HIS / Schnittstelle // switch über passendes HIS / Schnittstelle
switch (message.MessageCore.InitialHIS) switch (message.MessageCore.InitialHIS)
{ {
case Message.NSWProvider.DBH: case Message.NSWProvider.DBH:
bsmd.dbh.Request.SendMessage(message); sendSucceeded = bsmd.dbh.Request.SendMessage(message);
break; break;
case Message.NSWProvider.DAKOSY: case Message.NSWProvider.DAKOSY:
_log.Warn("Cannot send via DAKOSY yet");
break; break;
case Message.NSWProvider.DUDR: case Message.NSWProvider.DUDR:
_log.Warn("Cannot send via Daten und Dienste HRO yet");
break; break;
default: default:
_log.WarnFormat("Initial HIS not specified for message {0}", message.Id);
break; break;
} }
// senden if (sendSucceeded)
{
// .. message.InternalStatus = Message.BSMDStatus.SENT;
DBManager.Instance.Save(message);
}
} }
catch (Exception ex) catch (Exception ex)

View File

@ -68,7 +68,9 @@
</Compile> </Compile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="App.config" /> <None Include="App.config">
<SubType>Designer</SubType>
</None>
<None Include="packages.config" /> <None Include="packages.config" />
<None Include="Properties\Settings.settings"> <None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator> <Generator>SettingsSingleFileGenerator</Generator>

View File

@ -112,6 +112,24 @@ namespace bsmd.database
return result; return result;
} }
public void Save(Message message)
{
SqlCommand cmd = new SqlCommand();
message.PrepareSave(cmd);
int queryResult = this.PerformNonQuery(cmd);
switch(queryResult)
{
case 1:
_log.InfoFormat("Message {0} saved", message.Id); break;
case 0:
_log.WarnFormat("Message {0} save affected no rows", message.Id); break;
case -1:
_log.WarnFormat("Message {0} save: error occurred", message.Id); break;
default:
_log.WarnFormat("Message {0} save affected {1} rows", message.Id, queryResult); break;
}
}
#endregion #endregion
#region internal/private funcs #region internal/private funcs
@ -132,24 +150,75 @@ namespace bsmd.database
SqlCommand cmd = new SqlCommand(); SqlCommand cmd = new SqlCommand();
switch(message.MessageNotificationClass) DatabaseEntity msgClass = DBManager.CreateMessage(message.MessageNotificationClass);
{
case Message.NotificationClass.STAT:
STAT stat = new STAT();
stat.PrepareLoadCommand(cmd, Message.LoadFilter.MESSAGEHEADER, message.Id);
SqlDataReader reader = this.PerformCommand(cmd);
List<DatabaseEntity> statList = stat.LoadList(reader);
if (statList.Count > 0)
message.DerivedMessage = statList[0];
((STAT)statList[0]).MessageHeader = message;
break;
default:
break;
if (msgClass != null)
{
msgClass.PrepareLoadCommand(cmd, Message.LoadFilter.MESSAGEHEADER, message.Id);
SqlDataReader reader = this.PerformCommand(cmd);
List<DatabaseEntity> statList = msgClass.LoadList(reader);
if (statList.Count > 0) message.DerivedMessage = statList[0];
((IMessageClass)msgClass).MessageHeader = message;
}
else
{
_log.ErrorFormat("cannot create a message class for notification type {0}", message.MessageNotificationClass);
} }
} this.LoadDependingLists(message);
}
}
/// <summary>
/// factory method for messages by type
/// </summary>
internal static DatabaseEntity CreateMessage(Message.NotificationClass notificationClass)
{
DatabaseEntity result = null;
switch (notificationClass)
{
case Message.NotificationClass.STAT: result = new STAT(); break;
case Message.NotificationClass.NOA_NOD: result = new NOA_NOD(); break;
case Message.NotificationClass.MDH: result = new MDH(); break;
default: break;
}
return result;
}
/// <summary>
/// Loads inner lists / collections
/// </summary>
internal void LoadDependingLists(DatabaseEntity databaseEntity)
{
SqlCommand cmd = new SqlCommand();
if(databaseEntity.GetType().IsAssignableFrom(typeof(MDH)))
{
MDH mdh = databaseEntity as MDH;
mdh.PrepareLoadCommand(cmd, Message.LoadFilter.MDH_ID);
SqlDataReader reader = this.PerformCommand(cmd);
List<DatabaseEntity> poc30s = mdh.LoadList(reader);
foreach (PortOfCallLast30Days poc30 in poc30s)
{
mdh.PortOfCallLast30Days.Add(poc30);
poc30.MDH = mdh;
this.LoadDependingLists(poc30);
}
}
if(databaseEntity.GetType().IsAssignableFrom(typeof(PortOfCallLast30Days)))
{
PortOfCallLast30Days poc30 = databaseEntity as PortOfCallLast30Days;
poc30.PrepareLoadCommand(cmd, Message.LoadFilter.POC30_ID);
SqlDataReader reader = this.PerformCommand(cmd);
List<DatabaseEntity> poc30Names = poc30.LoadList(reader);
foreach (PortOfCallLast30DaysCrewJoinedShip poc30Name in poc30Names)
{
poc30.CrewJoinedShip.Add(poc30Name);
poc30Name.PortOfCallLast30Days = poc30;
}
}
} }
internal void LoadErrorList(Message message) internal void LoadErrorList(Message message)
@ -191,6 +260,22 @@ namespace bsmd.database
} }
} }
internal int PerformNonQuery(SqlCommand cmd)
{
try
{
cmd.Connection = this._con;
return cmd.ExecuteNonQuery();
}
catch (SqlException ex)
{
System.Diagnostics.Trace.WriteLine("SQL Exception:" + ex.Message);
_log.Error("Error performing command", ex);
return -1;
}
}
#endregion #endregion
} }

View File

@ -36,7 +36,7 @@ namespace bsmd.database
/// </summary> /// </summary>
public bool IsNew { get { return !this.id.HasValue; } } public bool IsNew { get { return !this.id.HasValue; } }
public virtual void PrepareSave(IDbCommand cmd) { } public abstract void PrepareSave(IDbCommand cmd);
public virtual void PrepareDelete(IDbCommand cmd) public virtual void PrepareDelete(IDbCommand cmd)
{ {
@ -47,6 +47,7 @@ namespace bsmd.database
public abstract void PrepareLoadCommand(IDbCommand cmd, Message.LoadFilter filter, params object[] criteria); public abstract void PrepareLoadCommand(IDbCommand cmd, Message.LoadFilter filter, params object[] criteria);
public abstract List<DatabaseEntity> LoadList(IDataReader reader); public abstract List<DatabaseEntity> LoadList(IDataReader reader);
} }
} }

View File

@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace bsmd.database
{
interface IMessageClass
{
Message MessageHeader { get; set; }
}
}

View File

@ -0,0 +1,210 @@
//
// Class: MDH
// Current CLR: 4.0.30319.34209
// System: Microsoft Visual Studio 10.0
// Author: dani
// Created: 3/21/2015 10:56:30 AM
//
// Copyright (c) 2015 Informatikbüro Daniel Schick. All rights reserved.
using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
namespace bsmd.database
{
public class MDH : DatabaseEntity, IMessageClass
{
private List<PortOfCallLast30Days> portOfCallLast30Days = new List<PortOfCallLast30Days>();
public MDH()
{
this.tablename = "[dbo].[MDH]";
}
#region Properties
public Message MessageHeader { get; set; }
public List<PortOfCallLast30Days> PortOfCallLast30Days { get { return this.portOfCallLast30Days; } }
public string MDHSimplification { get; set; }
public string PortOfCallWhereCompleteMDHNotified { get; set; }
public bool? NonAccidentalDeathsDuringVoyage { get; set; }
public int? NonAccidentalDeathsDuringVoyageCount { get; set; }
public bool? SuspisionInfectiousNature { get; set; }
public bool? NumberOfIllPersonsHigherThanExpected { get; set; }
public int? NumberOfIllPersons { get; set; }
public bool? SickPersonsOnBoard { get; set; }
public bool? MedicalConsulted { get; set; }
public bool? AwareOfFurtherInfections { get; set; }
public bool? SanitaryMeasuresApplied { get; set; }
public string SanitaryMeasuresType { get; set; }
public string SanitaryMeasuresLocation { get; set; }
public DateTime? SanitaryMeasuresDate { get; set; }
public bool? StowawaysDetected { get; set; }
public string StowawaysJoiningLocation { get; set; }
public bool? SickAnimalOrPetOnBoard { get; set; }
public bool? ValidSanitaryControlExemptionOrCertificateOnBoard { get; set; }
public string PlaceOfIssue { get; set; }
public DateTime? DateOfIssue { get; set; }
public bool? SanitaryControlReinspectionRequired { get; set; }
public bool? InfectedAreaVisited { get; set; }
public string InfectedAreaPort { get; set; }
public DateTime? InfectedAreaDate { get; set; }
#endregion
#region abstract method implementation
public override void PrepareSave(System.Data.IDbCommand cmd)
{
SqlCommand scmd = cmd as SqlCommand;
scmd.Parameters.AddWithNullableValue("@P1", this.MessageHeader.Id);
scmd.Parameters.AddWithNullableValue("@P2", this.MDHSimplification);
scmd.Parameters.AddWithNullableValue("@P3", this.PortOfCallWhereCompleteMDHNotified);
scmd.Parameters.AddWithNullableValue("@P4", this.NonAccidentalDeathsDuringVoyage);
scmd.Parameters.AddWithNullableValue("@P5", this.NonAccidentalDeathsDuringVoyageCount);
scmd.Parameters.AddWithNullableValue("@P6", this.SuspisionInfectiousNature);
scmd.Parameters.AddWithNullableValue("@P7", this.NumberOfIllPersonsHigherThanExpected);
scmd.Parameters.AddWithNullableValue("@P8", this.NumberOfIllPersons);
scmd.Parameters.AddWithNullableValue("@P9", this.SickPersonsOnBoard);
scmd.Parameters.AddWithNullableValue("@P10", this.MedicalConsulted);
scmd.Parameters.AddWithNullableValue("@P11", this.AwareOfFurtherInfections);
scmd.Parameters.AddWithNullableValue("@P12", this.SanitaryMeasuresApplied);
scmd.Parameters.AddWithNullableValue("@P13", this.SanitaryMeasuresType);
scmd.Parameters.AddWithNullableValue("@P14", this.SanitaryMeasuresLocation);
scmd.Parameters.AddWithNullableValue("@P15", this.SanitaryMeasuresDate);
scmd.Parameters.AddWithNullableValue("@P16", this.StowawaysDetected);
scmd.Parameters.AddWithNullableValue("@P17", this.StowawaysJoiningLocation);
scmd.Parameters.AddWithNullableValue("@P18", this.SickAnimalOrPetOnBoard);
scmd.Parameters.AddWithNullableValue("@P19", this.ValidSanitaryControlExemptionOrCertificateOnBoard);
scmd.Parameters.AddWithNullableValue("@P20", this.PlaceOfIssue);
scmd.Parameters.AddWithNullableValue("@P21", this.DateOfIssue);
scmd.Parameters.AddWithNullableValue("@P22", this.SanitaryControlReinspectionRequired);
scmd.Parameters.AddWithNullableValue("@P23", this.InfectedAreaVisited);
scmd.Parameters.AddWithNullableValue("@P24", this.InfectedAreaPort);
scmd.Parameters.AddWithNullableValue("@P25", this.InfectedAreaDate);
if (this.IsNew)
{
scmd.CommandText = string.Format("INSERT INTO {0} MessageHeaderId, MDHSimplification, PortOfCallWhereCompleteMDHNotified, " +
"NonAccidentalDeathsDuringVoyage, NonAccidentalDeathsDuringVoyageCount, SuspisionInfectiousNature, NumberOfIllPersonsHigherThanExpected, " +
"NumberOfIllPersons, SickPersonsOnBoard, MedicalConsulted, AwareOfFurtherInfections, SanitaryMeasuresApplied, SanitaryMeasuresType, " +
"SanitaryMeasuresLocation, SanitaryMeasuresDate, StowawaysDetected, StowawaysJoiningLocation, SickAnimalOrPetOnBoard, " +
"ValidSanitaryControlExemptionOrCertificateOnBoard, PlaceOfIssue, DateOfIssue, SanitaryControlReinspectionRequired, " +
"InfectedAreaVisited, InfectedAreaPort, InfectedAreaDate) VALUES (@P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8, @P9, @P10, @P11, @P12, " +
"@P13, @P14, @P15, @P16, @P17, @P18, @P19, @P20, @P21, @P22, @P23, @P24, @P25)", this.Tablename);
}
else
{
scmd.CommandText = string.Format("UPDATE {0} SET MDHSimplification = @P2, PortOfCallWhereCompleteMDHNotified = @P3, " +
"NonAccidentalDeathsDuringVoyage = @P4, NonAccidentalDeathsDuringVoyageCount = @P5, SuspisionInfectiousNature = @P6, " +
"NumberOfIllPersonsHigherThanExpected = @P7, NumberOfIllPersons = @P8, SickPersonsOnBoard = @P9, MedicalConsulted = @P10, " +
"AwareOfFurtherInfections = @P11, SanitaryMeasuresApplied = @P12, SanitaryMeasuresType = @P13, SanitaryMeasuresLocation = @P14, " +
"SanitaryMeasuresDate = @P15, StowawaysDetected = @P16, StowawaysJoiningLocation = @P17, SickAnimalOrPetOnBoard = @P18, " +
"ValidSanitaryControlExemptionOrCertificateOnBoard = @P19, PlaceofIssue = @P20, DateOfIssue = @P21, SanitaryControlReinspectionRequired = @P22, " +
"InfectedAreaVisited = @P23, InfectedAreaPort = @P24, InfectedAreaDate = @P25", this.Tablename);
scmd.Parameters.AddWithValue("@ID", this.Id);
}
}
public override void PrepareLoadCommand(System.Data.IDbCommand cmd, Message.LoadFilter filter, params object[] criteria)
{
string query = string.Format("SELECT Id, MDHSimplification, PortOfCallWhereCompleteMDHNotified, " +
"NonAccidentalDeathsDuringVoyage, NonAccidentalDeathsDuringVoyageCount, SuspisionInfectiousNature, " +
"NumberOfIllPersonsHigherThanExpected, NumberOfIllPersons, SickPersonsOnBoard, MedicalConsulted, AwareOfFurtherInfections, " +
"SanitaryMeasuresApplied, SanitaryMeasuresType, SanitaryMeasuresLocation, SanitaryMeasuresDate, StowawaysDetected, " +
"StowawaysJoiningLocation, SickAnimalOrPetOnBoard, ValidSanitaryControlExemptionOrCertificateOnBoard, " +
"PlaceOfIssue, DateOfIssue, SanitaryControlReinspectionRequired, InfectedAreaVisited, InfectedAreaPort, InfectedAreaDate " +
"FROM {0}", this.Tablename);
switch (filter)
{
case Message.LoadFilter.MESSAGEHEADER:
query += "WHERE MessageHeaderId = @MHID";
((SqlCommand)cmd).Parameters.AddWithValue("@MHID", criteria[0]);
break;
case Message.LoadFilter.ALL:
default:
break;
}
cmd.CommandText = query;
}
public override List<DatabaseEntity> LoadList(System.Data.IDataReader reader)
{
List<DatabaseEntity> result = new List<DatabaseEntity>();
while (reader.Read())
{
MDH mdh = new MDH();
mdh.id = reader.GetGuid(0);
if (!reader.IsDBNull(1)) mdh.MDHSimplification = reader.GetString(1);
this.id = reader.GetGuid(0);
if (!reader.IsDBNull(1)) mdh.MDHSimplification = reader.GetString(1);
if (!reader.IsDBNull(2)) mdh.PortOfCallWhereCompleteMDHNotified = reader.GetString(2);
if (!reader.IsDBNull(3)) mdh.NonAccidentalDeathsDuringVoyage = reader.GetBoolean(3);
if (!reader.IsDBNull(4)) mdh.NonAccidentalDeathsDuringVoyageCount = reader.GetInt32(4);
if (!reader.IsDBNull(5)) mdh.SuspisionInfectiousNature = reader.GetBoolean(5);
if (!reader.IsDBNull(6)) mdh.NumberOfIllPersonsHigherThanExpected = reader.GetBoolean(6);
if (!reader.IsDBNull(7)) mdh.NumberOfIllPersons = reader.GetInt32(7);
if (!reader.IsDBNull(8)) mdh.SickPersonsOnBoard = reader.GetBoolean(8);
if (!reader.IsDBNull(9)) mdh.MedicalConsulted = reader.GetBoolean(9);
if (!reader.IsDBNull(10)) mdh.AwareOfFurtherInfections = reader.GetBoolean(10);
if (!reader.IsDBNull(11)) mdh.SanitaryMeasuresApplied = reader.GetBoolean(11);
if (!reader.IsDBNull(12)) mdh.SanitaryMeasuresType = reader.GetString(12);
if (!reader.IsDBNull(13)) mdh.SanitaryMeasuresLocation = reader.GetString(13);
if (!reader.IsDBNull(14)) mdh.SanitaryMeasuresDate = reader.GetDateTime(14);
if (!reader.IsDBNull(15)) mdh.StowawaysDetected = reader.GetBoolean(15);
if (!reader.IsDBNull(16)) mdh.StowawaysJoiningLocation = reader.GetString(16);
if (!reader.IsDBNull(17)) mdh.SickAnimalOrPetOnBoard = reader.GetBoolean(17);
if (!reader.IsDBNull(18)) mdh.ValidSanitaryControlExemptionOrCertificateOnBoard = reader.GetBoolean(18);
if (!reader.IsDBNull(19)) mdh.PlaceOfIssue = reader.GetString(19);
if (!reader.IsDBNull(20)) mdh.DateOfIssue = reader.GetDateTime(20);
if (!reader.IsDBNull(21)) mdh.SanitaryControlReinspectionRequired = reader.GetBoolean(21);
if (!reader.IsDBNull(22)) mdh.InfectedAreaVisited = reader.GetBoolean(22);
if (!reader.IsDBNull(23)) mdh.InfectedAreaPort = reader.GetString(23);
if (!reader.IsDBNull(24)) mdh.InfectedAreaDate = reader.GetDateTime(24);
result.Add(mdh);
}
reader.Close();
return result;
}
#endregion
}
}

View File

@ -46,7 +46,9 @@ namespace bsmd.database
REPORTINGPARTY, REPORTINGPARTY,
MESSAGEHEADER, MESSAGEHEADER,
BSMDSTATUS, BSMDSTATUS,
WETRIS_SHIP_ID WETRIS_SHIP_ID,
MDH_ID,
POC30_ID
} }
/// <summary> /// <summary>

View File

@ -0,0 +1,132 @@
//
// Class: NOA_NOD
// Current CLR: 4.0.30319.34209
// System: Microsoft Visual Studio 10.0
// Author: dani
// Created: 3/21/2015 8:56:24 AM
//
// Copyright (c) 2015 Informatikbüro Daniel Schick. All rights reserved.
using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
namespace bsmd.database
{
public class NOA_NOD : DatabaseEntity, IMessageClass
{
public NOA_NOD()
{
this.tablename = "[dbo].[NOA_NOD]";
}
#region Properties
public Message MessageHeader { get; set; }
public DateTime? ETAToPortOfCall { get; set; }
public DateTime? ETDFromPortOfCall { get; set; }
public int? CallPurposeCode { get; set; }
public string CallPurposeDescription { get; set; }
public DateTime? ETAToKielCanal { get; set; }
public DateTime? ETDFromKielCanal { get; set; }
public string LastPort { get; set; }
public DateTime? ETDFromLastPort { get; set; }
public string NextPort { get; set; }
public DateTime? ETAToNextPort { get; set; }
#endregion
#region abstract class implementation
public override void PrepareLoadCommand(System.Data.IDbCommand cmd, Message.LoadFilter filter, params object[] criteria)
{
string query = string.Format("SELECT Id, ETAToPortOfCall, ETDFromPortOfCall, CallPurposeCode, CallPurposeDescription, " +
"ETAToKielCanal, ETDFromKielCanal, LastPort, ETDFromLastPort, NextPort, ETAToNextPort FROM {0}", this.Tablename);
switch (filter)
{
case Message.LoadFilter.MESSAGEHEADER:
query += "WHERE MessageHeaderId = @MHID";
((SqlCommand)cmd).Parameters.AddWithValue("@MHID", criteria[0]);
break;
case Message.LoadFilter.ALL:
default:
break;
}
cmd.CommandText = query;
}
public override List<DatabaseEntity> LoadList(System.Data.IDataReader reader)
{
List<DatabaseEntity> result = new List<DatabaseEntity>();
while(reader.Read())
{
NOA_NOD nn = new NOA_NOD();
nn.id = reader.GetGuid(0);
if (!reader.IsDBNull(1)) nn.ETAToPortOfCall = reader.GetDateTime(1);
if (!reader.IsDBNull(2)) nn.ETDFromPortOfCall = reader.GetDateTime(2);
if (!reader.IsDBNull(3)) nn.CallPurposeCode = reader.GetInt32(3);
if (!reader.IsDBNull(4)) nn.CallPurposeDescription = reader.GetString(4);
if (!reader.IsDBNull(5)) nn.ETAToKielCanal = reader.GetDateTime(5);
if (!reader.IsDBNull(6)) nn.ETDFromKielCanal = reader.GetDateTime(6);
if (!reader.IsDBNull(7)) nn.LastPort = reader.GetString(7);
if (!reader.IsDBNull(8)) nn.ETDFromLastPort = reader.GetDateTime(8);
if (!reader.IsDBNull(9)) nn.NextPort = reader.GetString(9);
if (!reader.IsDBNull(10)) nn.ETAToNextPort = reader.GetDateTime(10);
result.Add(nn);
}
reader.Close();
return result;
}
public override void PrepareSave(IDbCommand cmd)
{
SqlCommand scmd = cmd as SqlCommand;
scmd.Parameters.AddWithNullableValue("@P1", this.MessageHeader.Id);
scmd.Parameters.AddWithNullableValue("@P2", this.ETAToPortOfCall);
scmd.Parameters.AddWithNullableValue("@P3", this.ETDFromPortOfCall);
scmd.Parameters.AddWithNullableValue("@P4", this.CallPurposeCode.Value);
scmd.Parameters.AddWithNullableValue("@P5", this.CallPurposeDescription);
scmd.Parameters.AddWithNullableValue("@P6", this.ETAToKielCanal);
scmd.Parameters.AddWithNullableValue("@P7", this.ETDFromKielCanal);
scmd.Parameters.AddWithNullableValue("@P8", this.LastPort);
scmd.Parameters.AddWithNullableValue("@P9", this.ETDFromLastPort);
scmd.Parameters.AddWithNullableValue("@P10", this.NextPort);
scmd.Parameters.AddWithNullableValue("@P11", this.ETAToNextPort);
if (this.IsNew)
{
cmd.CommandText = string.Format("INSERT INTO {0} (MessageHeaderId, ETAToPortOfCall, ETDFromPortOfCall, " +
"CallPurposeCode, CallPurposeDescription, ETAToKielCanal, ETDFromKielCanal, LastPort, ETDFromLastPort, " +
"NextPort, ETAToNextPort) VALUES (@P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8, @P9, @P10, @P11) ", this.Tablename);
}
else
{
((SqlCommand)cmd).Parameters.AddWithValue("@ID", this.Id);
cmd.CommandText = string.Format("UPDATE {0} SET ETAToPortOfCall = @P2, ETDFromPortOfCall = @P3, CallPurposeCode = @P4, " +
"CallPurposeDescription = @P5, ETAToKielCanal = @P6, ETDFromKielCanal = @P7, LastPort = @P8, ETDFromLastPort = @P9, " +
"NextPort = @P10, ETAToNextPort = @P11 WHERE Id = @ID", this.Tablename);
}
}
#endregion
}
}

View File

@ -0,0 +1,76 @@
//
// Class: POBA - Personen an Bord beim Anlaufen
// Current CLR: 4.0.30319.34209
// System: Microsoft Visual Studio 10.0
// Author: dani
// Created: 3/25/2015 7:19:35 AM
//
// Copyright (c) 2015 Informatikbüro Daniel Schick. All rights reserved.
using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
namespace bsmd.database
{
public class POBA : DatabaseEntity, IMessageClass
{
public POBA()
{
this.tablename = "[dbo].[POBA]";
}
#region Properties
public Message MessageHeader { get; set; }
public int? TotalPersonsOnBoardUponArrival { get; set; }
public int? TotalCrewMembersOnBoardUponArrival { get; set; }
public int? TotalPassengersOnBoardUponArrival { get; set; }
public int? TotalStowawaysOnBoardUponArrival { get; set; }
#endregion
public override void PrepareSave(System.Data.IDbCommand cmd)
{
SqlCommand scmd = cmd as SqlCommand;
scmd.Parameters.AddWithValue("@P1", this.MessageHeader.Id);
scmd.Parameters.AddWithNullableValue("@P2", this.TotalPersonsOnBoardUponArrival);
scmd.Parameters.AddWithNullableValue("@P3", this.TotalCrewMembersOnBoardUponArrival);
scmd.Parameters.AddWithNullableValue("@P4", this.TotalPassengersOnBoardUponArrival);
scmd.Parameters.AddWithNullableValue("@P5", this.TotalStowawaysOnBoardUponArrival);
if (this.IsNew)
{
scmd.CommandText = string.Format("INSERT INTO {0} (MessageHeaderId, TotalPersonsOnBoardUponArrival, " +
"TotalCrewMembersonBoardUponArrival, TotalPassengersOnBoardUponArrival, " +
"TotalStowawaysOnBoardUponArrival) VALUES (@P1, @P2, @P3, @P4, @P5)", this.Tablename);
}
else
{
scmd.Parameters.AddWithValue(@"ID", this.Id);
scmd.CommandText = string.Format("UPDATE {0} SET TotalPersonsOnBoardUponArrival = @P2, " +
"TotalCrewMembersOnBoardUponArrival = @P3, TotalPassengersOnBoardUponArrival = @P4" +
"TotalStowawaysOnBoardUponArrival = @P5 WHERE Id = @ID", this.Tablename);
}
}
public override void PrepareLoadCommand(System.Data.IDbCommand cmd, Message.LoadFilter filter, params object[] criteria)
{
throw new NotImplementedException();
}
public override List<DatabaseEntity> LoadList(System.Data.IDataReader reader)
{
throw new NotImplementedException();
}
}
}

View File

@ -0,0 +1,75 @@
//
// Class: POBD - Personen an Bord beim Auslaufen
// Current CLR: 4.0.30319.34209
// System: Microsoft Visual Studio 10.0
// Author: dani
// Created: 3/25/2015 7:19:51 AM
//
// Copyright (c) 2015 Informatikbüro Daniel Schick. All rights reserved.
using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
namespace bsmd.database
{
public class POBD : DatabaseEntity, IMessageClass
{
public POBD()
{
this.tablename = "[dbo].[POBD]";
}
#region Properties
public Message MessageHeader { get; set; }
public int? TotalPersonsOnBoardUponDeparture { get; set; }
public int? TotalCrewMembersOnBoardUponDeparture { get; set; }
public int? TotalPassengersOnBoardUponDeparture { get; set; }
public int? TotalStowawaysOnBoardUponDeparture { get; set; }
#endregion
public override void PrepareSave(System.Data.IDbCommand cmd)
{
SqlCommand scmd = cmd as SqlCommand;
scmd.Parameters.AddWithValue("@P1", this.MessageHeader.Id);
scmd.Parameters.AddWithNullableValue("@P2", this.TotalPersonsOnBoardUponDeparture);
scmd.Parameters.AddWithNullableValue("@P3", this.TotalCrewMembersOnBoardUponDeparture);
scmd.Parameters.AddWithNullableValue("@P4", this.TotalPassengersOnBoardUponDeparture);
scmd.Parameters.AddWithNullableValue("@P5", this.TotalStowawaysOnBoardUponDeparture);
if (this.IsNew)
{
scmd.CommandText = string.Format("INSERT INTO {0} (MessageHeaderId, TotalPersonsOnBoardUponDeparture, " +
"TotalCrewMembersonBoardUponDeparture, TotalPassengersOnBoardUponDeparture, " +
"TotalStowawaysOnBoardUponDeparture) VALUES (@P1, @P2, @P3, @P4, @P5)", this.Tablename);
}
else
{
scmd.Parameters.AddWithValue(@"ID", this.Id);
scmd.CommandText = string.Format("UPDATE {0} SET TotalPersonsOnBoardUponDeparture = @P2, " +
"TotalCrewMembersOnBoardUponDeparture = @P3, TotalPassengersOnBoardUponDeparture = @P4" +
"TotalStowawaysOnBoardUponDeparture = @P5 WHERE Id = @ID", this.Tablename);
}
}
public override void PrepareLoadCommand(System.Data.IDbCommand cmd, Message.LoadFilter filter, params object[] criteria)
{
throw new NotImplementedException();
}
public override List<DatabaseEntity> LoadList(System.Data.IDataReader reader)
{
throw new NotImplementedException();
}
}
}

View File

@ -0,0 +1,106 @@
//
// Class: PortOfCallLast30Days
// Current CLR: 4.0.30319.34209
// System: Microsoft Visual Studio 10.0
// Author: dani
// Created: 3/22/2015 8:29:02 AM
//
// Copyright (c) 2015 Informatikbüro Daniel Schick. All rights reserved.
using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
namespace bsmd.database
{
public class PortOfCallLast30Days : DatabaseEntity
{
private List<PortOfCallLast30DaysCrewJoinedShip> poc30Crew = new List<PortOfCallLast30DaysCrewJoinedShip>();
public PortOfCallLast30Days()
{
this.tablename = "[dbo].[PortOfCallLast30Days]";
}
#region Properties
public MDH MDH { get; set; }
public List<PortOfCallLast30DaysCrewJoinedShip> CrewJoinedShip { get { return this.poc30Crew; } }
public string PortOfCallLast30DaysLocode { get; set; }
public DateTime? PortOfCallLast30DaysDateOfDeparture { get; set; }
public bool? PortOfCallLast30DaysCrewMembersJoined { get; set; }
#endregion
#region abstract class implementation
public override void PrepareSave(IDbCommand cmd)
{
SqlCommand scmd = cmd as SqlCommand;
scmd.Parameters.AddWithNullableValue("@P1", this.MDH.Id);
scmd.Parameters.AddWithNullableValue("@P2", this.PortOfCallLast30DaysLocode);
scmd.Parameters.AddWithNullableValue("@P3", this.PortOfCallLast30DaysDateOfDeparture);
scmd.Parameters.AddWithNullableValue("@P4", this.PortOfCallLast30DaysCrewMembersJoined);
if (this.IsNew)
{
scmd.CommandText = string.Format("INSERT INTO {0} (MDH_Id, PortOfCallLast30DaysLocode, PortOfCallLast30DaysDateOfDeparture, " +
"PortOfCallLast30DaysCrewMembersJoined) VALUES (@P1, @P2, @P3, @P4)", this.Tablename);
}
else
{
scmd.CommandText = string.Format("UPDATE {0} SET PortOfCallLast30DaysLocode = @P2, PortOfCallLast30DaysDateOfDeparture = @P3, " +
"PortOfCallLast30DaysCrewMembersJoined = @P4 WHERE Id = @ID", this.Tablename);
scmd.Parameters.AddWithNullableValue("@ID", this.Id);
}
}
public override void PrepareLoadCommand(IDbCommand cmd, Message.LoadFilter filter, params object[] criteria)
{
string query = string.Format("SELECT Id, PortOfCallLast30DaysLocode, PortOfCallLast30DaysDateOfDeparture, " +
"PortOfCallLast30DaysCrewMembersJoined FROM {0}", this.Tablename);
switch (filter)
{
case Message.LoadFilter.MDH_ID:
query += "WHERE MDH_Id = @MDHID";
((SqlCommand)cmd).Parameters.AddWithValue("@MHID", criteria[0]);
break;
case Message.LoadFilter.ALL:
default:
break;
}
cmd.CommandText = query;
}
public override List<DatabaseEntity> LoadList(IDataReader reader)
{
List<DatabaseEntity> result = new List<DatabaseEntity>();
while (reader.Read())
{
PortOfCallLast30Days poc = new PortOfCallLast30Days();
poc.id = reader.GetGuid(0);
if (!reader.IsDBNull(1)) poc.PortOfCallLast30DaysLocode = reader.GetString(1);
if (!reader.IsDBNull(2)) poc.PortOfCallLast30DaysDateOfDeparture = reader.GetDateTime(2);
if (!reader.IsDBNull(3)) poc.PortOfCallLast30DaysCrewMembersJoined = reader.GetBoolean(3);
result.Add(poc);
}
reader.Close();
return result;
}
#endregion
}
}

View File

@ -0,0 +1,95 @@
//
// Class: PortOfCallLast30DaysCrewJoinedShip
// Current CLR: 4.0.30319.34209
// System: Microsoft Visual Studio 10.0
// Author: dani
// Created: 3/22/2015 8:53:43 AM
//
// Copyright (c) 2015 Informatikbüro Daniel Schick. All rights reserved.
using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
namespace bsmd.database
{
public class PortOfCallLast30DaysCrewJoinedShip : DatabaseEntity
{
public PortOfCallLast30DaysCrewJoinedShip()
{
this.tablename = "[dbo].[PortOfCallLast30DaysCrewJoinedShip]";
}
#region Properties
public PortOfCallLast30Days PortOfCallLast30Days { get; set; }
public string PortOfCallLast30DaysCrewJoinedShipName { get; set; }
#endregion
#region abstract class implementation
public override void PrepareSave(IDbCommand cmd)
{
SqlCommand scmd = cmd as SqlCommand;
scmd.Parameters.AddWithValue("@P1", this.PortOfCallLast30Days.Id);
scmd.Parameters.AddWithNullableValue("@P2", this.PortOfCallLast30DaysCrewJoinedShipName);
if (this.IsNew)
{
cmd.CommandText = string.Format("INSERT INTO {0} (PortOfCallLast30DaysId = @P1, PortOfCallLast30DaysCrewJoinedShipName = @P2",
this.Tablename);
}
else
{
cmd.CommandText = string.Format("UPDATE {0} SET PortOfCallLast30DaysCrewJoinedShipName = @P2 WHERE Id = @ID", this.Tablename);
scmd.Parameters.AddWithValue("@ID", this.Id);
}
}
public override void PrepareLoadCommand(IDbCommand cmd, Message.LoadFilter filter, params object[] criteria)
{
string query = string.Format("SELECT Id, PortOfCallLast30DaysCrewJoinedShipName FROM {0}");
switch (filter)
{
case Message.LoadFilter.POC30_ID:
query += "WHERE MDH_Id = @MDHID";
((SqlCommand)cmd).Parameters.AddWithValue("@MHID", criteria[0]);
break;
case Message.LoadFilter.ALL:
default:
break;
}
cmd.CommandText = query;
}
public override List<DatabaseEntity> LoadList(IDataReader reader)
{
List<DatabaseEntity> result = new List<DatabaseEntity>();
while(reader.Read())
{
PortOfCallLast30DaysCrewJoinedShip poc30 = new PortOfCallLast30DaysCrewJoinedShip();
poc30.id = reader.GetGuid(0);
if (!reader.IsDBNull(1)) poc30.PortOfCallLast30DaysCrewJoinedShipName = reader.GetString(1);
result.Add(poc30);
}
reader.Close();
return result;
}
#endregion
}
}

View File

@ -14,7 +14,7 @@ using System.Collections.Generic;
namespace bsmd.database namespace bsmd.database
{ {
public class STAT : DatabaseEntity public class STAT : DatabaseEntity, IMessageClass
{ {
public STAT() public STAT()
@ -60,7 +60,9 @@ namespace bsmd.database
#endregion #endregion
public void PrepareLoadCommand(IDbCommand cmd, Message.LoadFilter filter, params object[] criteria) #region abstract class implementation
public override void PrepareLoadCommand(IDbCommand cmd, Message.LoadFilter filter, params object[] criteria)
{ {
string query = string.Format("SELECT Id, ShipName, Callsign, MMSINumber, Flag, LengthOverall_MTR, Beam_MTR, " + string query = string.Format("SELECT Id, ShipName, Callsign, MMSINumber, Flag, LengthOverall_MTR, Beam_MTR, " +
"GrossTonnage, PortOfRegistry, InmarsatCallNumber, ShipType, ISMCompanyName, ISMCompanyId, ISMCompanyStreetAndNumber, " + "GrossTonnage, PortOfRegistry, InmarsatCallNumber, ShipType, ISMCompanyName, ISMCompanyId, ISMCompanyStreetAndNumber, " +
@ -112,5 +114,65 @@ namespace bsmd.database
reader.Close(); reader.Close();
return result; return result;
} }
public override void PrepareSave(IDbCommand cmd)
{
SqlCommand scmd = cmd as SqlCommand;
scmd.Parameters.AddWithValue("@P1", this.MessageHeader.Id);
if (this.ShipName != null) scmd.Parameters.AddWithValue("@P2", this.ShipName);
else scmd.Parameters.AddWithValue("@P2", DBNull.Value);
if (this.CallSign != null) scmd.Parameters.AddWithValue("@P3", DBNull.Value);
else scmd.Parameters.AddWithValue("@P3", DBNull.Value);
if (this.MMSINumber != null) scmd.Parameters.AddWithValue("@P4", this.MMSINumber);
else scmd.Parameters.AddWithValue("@P4", DBNull.Value);
if (this.Flag != null) scmd.Parameters.AddWithValue("@P5", this.Flag);
else scmd.Parameters.AddWithValue("@P5", DBNull.Value);
if (this.LengthOverall_MTR.HasValue) scmd.Parameters.AddWithValue("@P6", this.LengthOverall_MTR.Value);
else scmd.Parameters.AddWithValue("@P6", DBNull.Value);
if (this.Beam_MTR.HasValue) scmd.Parameters.AddWithValue("@P7", this.Beam_MTR.Value);
else scmd.Parameters.AddWithValue("@P7", DBNull.Value);
if (this.GrossTonnage.HasValue) scmd.Parameters.AddWithValue("@P8", this.GrossTonnage.Value);
else scmd.Parameters.AddWithValue("@P8", DBNull.Value);
if (this.PortOfRegistry != null) scmd.Parameters.AddWithValue("@P9", this.PortOfRegistry);
else scmd.Parameters.AddWithValue("@P9", DBNull.Value);
if (this.InmarsatCallNumber != null) scmd.Parameters.AddWithValue("@P10", this.InmarsatCallNumber);
else scmd.Parameters.AddWithValue("@P10", DBNull.Value);
if (this.ShipType != null) scmd.Parameters.AddWithValue("@P11", this.ShipType);
else scmd.Parameters.AddWithValue("@P11", DBNull.Value);
if (this.ISMCompanyName != null) scmd.Parameters.AddWithValue("@P12", this.ISMCompanyName);
else scmd.Parameters.AddWithValue("@P12", DBNull.Value);
if (this.ISMCompanyId != null) scmd.Parameters.AddWithValue("@P13", this.ISMCompanyId);
else scmd.Parameters.AddWithValue("@P13", DBNull.Value);
if (this.ISMCompanyStreetAndNumber != null) scmd.Parameters.AddWithValue("@P14", this.ISMCompanyStreetAndNumber);
else scmd.Parameters.AddWithValue("@P14", DBNull.Value);
if (this.ISMCompanyPostalCode != null) scmd.Parameters.AddWithValue("@P15", this.ISMCompanyPostalCode);
else scmd.Parameters.AddWithValue("@P15", DBNull.Value);
if (this.ISMCompanyCity != null) scmd.Parameters.AddWithValue("@P16", this.ISMCompanyCity);
else scmd.Parameters.AddWithValue("@P16", DBNull.Value);
if (this.ISMCompanyCountry != null) scmd.Parameters.AddWithValue("@P17", this.ISMCompanyCountry);
else scmd.Parameters.AddWithValue("@P17", DBNull.Value);
if (this.IsNew)
{
cmd.CommandText = string.Format("INSERT INTO {0} (MessageHeaderId, ShipName, CallSign, MMSINumber, " +
"Flag, LengthOverall_MTR, Beam_MTR, GrossTonnage, PortOfRegistry, InmarsatCallNumber, ShiptType, " +
"ISMCompanyName, ISMCompanyId, ISMCompanyStreetAndNumber, ISMCompanyPostalAddress, ISMCompanyCity, " +
"ISMCompanyCountry) VALUES (@P1, @P2, @P3, @P4, @P5, @P6, @P7, @P8, @P9, @P10, @P11, @P12, @P13, @P14, " +
"@P15, @P16, @P17)", this.Tablename);
}
else
{
cmd.CommandText = string.Format("UPDATE {0} SET ShipName = @P2, CallSign = @P3, MMSINumber = @P4, Flag = @P5, " +
"LengthOverall_MTR = @P6, Beam_MTR = @P7, GrossTonnage = @P8, PortOfRegistry = @P9, InmarsatCallNumber = @P10, " +
"ShipType = @P11, ISMCompanyName = @P12, ISMCompanyId = @P13, ISMCompanyStreetAndNumber = @P14, " +
"ISMCompanyPostalAddress = @P15, ISMCompanyCity = @P16, ISMCompanyCountry = @P17 WHERE Id = @ID", this.Tablename);
scmd.Parameters.AddWithValue("@ID", this.Id);
}
}
#endregion
} }
} }

View File

@ -0,0 +1,30 @@
//
// Class: Util
// Current CLR: 4.0.30319.34209
// System: Microsoft Visual Studio 10.0
// Author: dani
// Created: 3/21/2015 10:36:56 AM
//
// Copyright (c) 2015 Informatikbüro Daniel Schick. All rights reserved.
using System;
using System.Data.SqlClient;
using System.Collections.Generic;
namespace bsmd.database
{
public static class Util
{
/// <summary>
/// Extension helper to add values that can be null:
/// http://stackoverflow.com/questions/13451085/exception-when-addwithvalue-parameter-is-null
/// </summary>
public static SqlParameter AddWithNullableValue(this SqlParameterCollection collection, string parameterName, object value)
{
if (value == null)
return collection.AddWithValue(parameterName, DBNull.Value);
else
return collection.AddWithValue(parameterName, value);
}
}
}

View File

@ -47,13 +47,21 @@
<ItemGroup> <ItemGroup>
<Compile Include="DBManager.cs" /> <Compile Include="DBManager.cs" />
<Compile Include="DatabaseEntity.cs" /> <Compile Include="DatabaseEntity.cs" />
<Compile Include="IMessageClass.cs" />
<Compile Include="MDH.cs" />
<Compile Include="Message.cs" /> <Compile Include="Message.cs" />
<Compile Include="MessageCore.cs" /> <Compile Include="MessageCore.cs" />
<Compile Include="MessageError.cs" /> <Compile Include="MessageError.cs" />
<Compile Include="MessageViolation.cs" /> <Compile Include="MessageViolation.cs" />
<Compile Include="NOA_NOD.cs" />
<Compile Include="POBA.cs" />
<Compile Include="POBD.cs" />
<Compile Include="PortOfCallLast30Days.cs" />
<Compile Include="PortOfCallLast30DaysCrewJoinedShip.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ReportingParty.cs" /> <Compile Include="ReportingParty.cs" />
<Compile Include="STAT.cs" /> <Compile Include="STAT.cs" />
<Compile Include="Util.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="App.Config" /> <None Include="App.Config" />

View File

@ -10,16 +10,18 @@ namespace bsmd.dbh.ResponseService
{ {
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together. // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.
[ServiceContract] [ServiceContract]
public interface IService1 public interface IResponseService
{ {
[OperationContract] [OperationContract]
string GetData(int value); string GetData(int value);
/// <summary>
/// Da die Schnittstelle nur mit einem .xsd definiert war ist die Signatur der Methode fraglich
/// Sicher ist Void, weniger sicher der Namen und der Name des Parameters. Dessen Type allerdings schon.
/// </summary>
[OperationContract] [OperationContract]
CompositeType GetDataUsingDataContract(CompositeType composite); void NSWResponse(bsmd.dbh.response.Root root);
// TODO: Add your service operations here
} }

View File

@ -1 +1 @@
<%@ ServiceHost Language="C#" Debug="true" Service="bsmd.dbh.ResponseService.Service1" CodeBehind="Service1.svc.cs" %> <%@ ServiceHost Language="C#" Debug="true" Service="bsmd.dbh.ResponseService.ResponseService" CodeBehind="Service1.svc.cs" %>

View File

@ -5,29 +5,26 @@ using System.Runtime.Serialization;
using System.ServiceModel; using System.ServiceModel;
using System.ServiceModel.Web; using System.ServiceModel.Web;
using System.Text; using System.Text;
using log4net;
namespace bsmd.dbh.ResponseService namespace bsmd.dbh.ResponseService
{ {
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together. // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together.
// NOTE: In order to launch WCF Test Client for testing this service, please select Service1.svc or Service1.svc.cs at the Solution Explorer and start debugging. // NOTE: In order to launch WCF Test Client for testing this service, please select Service1.svc or Service1.svc.cs at the Solution Explorer and start debugging.
public class Service1 : IService1 public class ResponseService : IResponseService
{ {
private ILog _log = LogManager.GetLogger("dbh ResponseService");
public string GetData(int value) public string GetData(int value)
{ {
return string.Format("You entered: {0}", value); return string.Format("You entered: {0}", value);
} }
public CompositeType GetDataUsingDataContract(CompositeType composite) public void NSWResponse(bsmd.dbh.response.Root root)
{ {
if (composite == null) _log.Info("response received!");
{ Response.ProcessResponse(root);
throw new ArgumentNullException("composite");
}
if (composite.BoolValue)
{
composite.StringValue += "Suffix";
}
return composite;
} }
} }
} }

View File

@ -39,6 +39,9 @@
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="log4net">
<HintPath>..\packages\log4net.2.0.3\lib\net40-full\log4net.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp" /> <Reference Include="Microsoft.CSharp" />
<Reference Include="System.Web.DynamicData" /> <Reference Include="System.Web.DynamicData" />
<Reference Include="System.Web.Entity" /> <Reference Include="System.Web.Entity" />
@ -59,20 +62,21 @@
<Reference Include="System.Xml.Linq" /> <Reference Include="System.Xml.Linq" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="Service1.svc" /> <Content Include="ResponseService.svc" />
<Content Include="Web.config" /> <Content Include="Web.config" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Service1.svc.cs"> <Compile Include="ResponseService.svc.cs">
<DependentUpon>Service1.svc</DependentUpon> <DependentUpon>ResponseService.svc</DependentUpon>
</Compile> </Compile>
<Compile Include="IService1.cs" /> <Compile Include="IResponseService.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="App_Data\" /> <Folder Include="App_Data\" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Content Include="packages.config" />
<None Include="Web.Debug.config"> <None Include="Web.Debug.config">
<DependentUpon>Web.config</DependentUpon> <DependentUpon>Web.config</DependentUpon>
</None> </None>
@ -81,6 +85,10 @@
</None> </None>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\bsmd.database\bsmd.database.csproj">
<Project>{19945af2-379b-46a5-b27a-303b5ec1d557}</Project>
<Name>bsmd.database</Name>
</ProjectReference>
<ProjectReference Include="..\bsmd.dbh\bsmd.dbh.csproj"> <ProjectReference Include="..\bsmd.dbh\bsmd.dbh.csproj">
<Project>{df625ff0-2265-4686-9cb6-2a8511cb3b9d}</Project> <Project>{df625ff0-2265-4686-9cb6-2a8511cb3b9d}</Project>
<Name>bsmd.dbh</Name> <Name>bsmd.dbh</Name>

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="log4net" version="2.0.3" targetFramework="net45" />
</packages>

View File

@ -84,6 +84,7 @@ namespace bsmd.dbh
break; break;
case Message.NotificationClass.STAT: case Message.NotificationClass.STAT:
break; break;

View File

@ -9,10 +9,36 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using bsmd.database;
namespace bsmd.dbh namespace bsmd.dbh
{ {
public class Response public class Response
{ {
public static void ProcessResponse(response.Root response)
{
switch(response.Type)
{
case dbh.response.RootType.VISIT:
break;
case dbh.response.RootType.TRANSIT:
break;
case dbh.response.RootType.CANCEL:
break;
case dbh.response.RootType.RESET:
break;
case dbh.response.RootType.DATA:
break;
}
}
} }
} }

View File

@ -0,0 +1,28 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.21005.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "bsmd.herberg.FormService", "bsmd.herberg.FormService\bsmd.herberg.FormService.csproj", "{FD0E59E4-58C9-4DAF-8024-D6F67E6ECC03}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "bsmd.database", "bsmd.database\bsmd.database.csproj", "{19945AF2-379B-46A5-B27A-303B5EC1D557}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{FD0E59E4-58C9-4DAF-8024-D6F67E6ECC03}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FD0E59E4-58C9-4DAF-8024-D6F67E6ECC03}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FD0E59E4-58C9-4DAF-8024-D6F67E6ECC03}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FD0E59E4-58C9-4DAF-8024-D6F67E6ECC03}.Release|Any CPU.Build.0 = Release|Any CPU
{19945AF2-379B-46A5-B27A-303B5EC1D557}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{19945AF2-379B-46A5-B27A-303B5EC1D557}.Debug|Any CPU.Build.0 = Debug|Any CPU
{19945AF2-379B-46A5-B27A-303B5EC1D557}.Release|Any CPU.ActiveCfg = Release|Any CPU
{19945AF2-379B-46A5-B27A-303B5EC1D557}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="bsmd.herberg.FormService.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
</configSections>
<log4net>
<root>
<level value="DEBUG" />
<appender-ref ref="LogFileAppender" />
</root>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" >
<param name="File" value="log-Herberg.FormService.txt" />
<param name="AppendToFile" value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%date [%thread] %-5level [%logger] - %message%newline" />
</layout>
</appender>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<userSettings>
<bsmd.herberg.FormService.Properties.Settings>
<setting name="ConnectionString" serializeAs="String">
<value>replace me!</value>
</setting>
<setting name="ServerAddress" serializeAs="String">
<value>https://www.fleettracker.de/api/1.0/WSAPIFormData.php</value>
</setting>
</bsmd.herberg.FormService.Properties.Settings>
</userSettings>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="WSAPIFormDataBinding" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://www.fleettracker.de/api/1.0/WSAPIFormData.php"
binding="basicHttpBinding" bindingConfiguration="WSAPIFormDataBinding"
contract="ServiceReferenceHerberg.WSAPIFormDataPortType" name="WSAPIFormDataPort" />
</client>
</system.serviceModel>
</configuration>

View File

@ -0,0 +1,37 @@
namespace bsmd.herberg.FormService
{
partial class FormService
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
this.ServiceName = "Service1";
}
#endregion
}
}

View File

@ -0,0 +1,140 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.IO;
using System.ServiceProcess;
using System.Text;
using System.Timers;
using System.Threading.Tasks;
using log4net;
using bsmd.database;
using bsmd.herberg.FormService.ServiceReferenceHerberg;
namespace bsmd.herberg.FormService
{
public partial class FormService : ServiceBase
{
private Timer _timer;
private object _timerlock = new object();
private bool processRunning = false;
private ILog _log = LogManager.GetLogger(typeof(FormService));
public FormService()
{
Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);
InitializeComponent();
}
protected override void OnStart(string[] args)
{
this.EventLog.Source = this.ServiceName;
this.EventLog.Log = "Application";
this.EventLog.BeginInit();
if (!EventLog.SourceExists(this.EventLog.Source, this.EventLog.Log))
EventLog.CreateEventSource(this.EventLog.Source, this.EventLog.Log);
this.EventLog.EndInit();
this.Init(args);
this.EventLog.WriteEntry("NSW Send Service started.", EventLogEntryType.Information);
}
public void Init(string[] args)
{
this._timer = new Timer();
this._timer.Interval = 5000; // 5 sec
this._timer.Elapsed += _timer_Elapsed;
this._timer.Enabled = true;
}
protected override void OnStop()
{
}
void _timer_Elapsed(object sender, ElapsedEventArgs e)
{
lock (this._timerlock)
{
if (this.processRunning) return;
else this.processRunning = true;
}
if (DBManager.Instance.Connect(Properties.Settings.Default.ConnectionString))
{
try
{
WSAPIFormDataPortTypeClient client = new WSAPIFormDataPortTypeClient();
client.Endpoint.Address = new System.ServiceModel.EndpointAddress(Properties.Settings.Default.ServerAddress);
// client.Endpoint.Name = "Fleettracker Forms"; // TODO
// Verbindung zu Herberg's Service aufnehmen und Formulare abfragen
GetFormDataInfoListRequestData body = new GetFormDataInfoListRequestData();
body.apiIdentifier = new APIIdentifier();
body.apiIdentifier.companyGuid = Guid.NewGuid().ToString(); // TODO
body.apiIdentifier.clientGuid = Guid.NewGuid().ToString(); // TODO
body.ffFolderTemplateTypeTag = "NSWAP";
body.timeFrameRequestFilter = new TimeFrameRequestFilter();
body.timeFrameRequestFilter.startDate = DateTime.Now; // TODO
body.timeFrameRequestFilter.startDateSpecified = true;
// Liste der verfügbaren Formulare abholen
GetFormDataInfoListResponseData listReponse = client.GetFormDataInfoList(body);
if (listReponse.success)
{
for (int i = 0; i < listReponse.formDataInfoDatasets.Length; i++)
{
FormDataInfoDataset dataSet = listReponse.formDataInfoDatasets[i];
// prüfen, ob ich das Formular schon habe? -> RS Jan
// Formular abholen
GetFormDataRequestData formBody = new GetFormDataRequestData();
formBody.apiIdentifier = new APIIdentifier();
formBody.apiIdentifier.companyGuid = Guid.NewGuid().ToString(); // TODO
formBody.apiIdentifier.clientGuid = Guid.NewGuid().ToString(); // TODO
formBody.formGuid = dataSet.formGuid;
GetFormDataResponseData formResponse = client.GetFormData(formBody);
if (formResponse.success)
{
// abgefragtes Formular in die DB speichern
}
else
{
_log.ErrorFormat("Request of form {0} failed", dataSet.formGuid);
}
}
}
else
{
_log.Error("Request of form list failed");
}
}
catch (Exception ex)
{
_log.ErrorFormat("Exception occurred: {0}", ex.ToString());
}
}
else
{
this.EventLog.WriteEntry("FormService stopped: DB connection failed", EventLogEntryType.Error);
this.Stop();
}
lock (this._timerlock)
{
this.processRunning = false;
}
}
}
}

View File

@ -0,0 +1,38 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Threading.Tasks;
namespace bsmd.herberg.FormService
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
static void Main()
{
ServiceBase[] ServicesToRun;
log4net.Config.XmlConfigurator.Configure();
ServicesToRun = new ServiceBase[]
{
new FormService()
};
if (Debugger.IsAttached)
{
((FormService)ServicesToRun[0]).Init(null);
while (true) ;
}
else
{
ServiceBase.Run(ServicesToRun);
}
}
}
}

View File

@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("bsmd.herberg.FormService")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("bsmd.herberg.FormService")]
[assembly: AssemblyCopyright("Copyright © 2015")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("663d14d2-42ce-4efd-9915-82254b211d81")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@ -0,0 +1,50 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.34209
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace bsmd.herberg.FormService.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("replace me!")]
public string ConnectionString {
get {
return ((string)(this["ConnectionString"]));
}
set {
this["ConnectionString"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("https://www.fleettracker.de/api/1.0/WSAPIFormData.php")]
public string ServerAddress {
get {
return ((string)(this["ServerAddress"]));
}
set {
this["ServerAddress"] = value;
}
}
}
}

View File

@ -0,0 +1,12 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="bsmd.herberg.FormService.Properties" GeneratedClassName="Settings">
<Profiles />
<Settings>
<Setting Name="ConnectionString" Type="System.String" Scope="User">
<Value Profile="(Default)">replace me!</Value>
</Setting>
<Setting Name="ServerAddress" Type="System.String" Scope="User">
<Value Profile="(Default)">https://www.fleettracker.de/api/1.0/WSAPIFormData.php</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@ -0,0 +1,880 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.34209
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace bsmd.herberg.FormService.ServiceReferenceHerberg {
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(Namespace="http://www.fleettracker.de/api/1.0", ConfigurationName="ServiceReferenceHerberg.WSAPIFormDataPortType")]
public interface WSAPIFormDataPortType {
[System.ServiceModel.OperationContractAttribute(Action="http://www.fleettracker.de/GetFormDataInfoList", ReplyAction="*")]
[System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)]
bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataInfoListResponse GetFormDataInfoList(bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataInfoListRequest request);
// CODEGEN: Generating message contract since the operation has multiple return values.
[System.ServiceModel.OperationContractAttribute(Action="http://www.fleettracker.de/GetFormDataInfoList", ReplyAction="*")]
System.Threading.Tasks.Task<bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataInfoListResponse> GetFormDataInfoListAsync(bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataInfoListRequest request);
[System.ServiceModel.OperationContractAttribute(Action="http://www.fleettracker.de/GetFormData", ReplyAction="*")]
[System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)]
bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataResponse GetFormData(bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataRequest request);
// CODEGEN: Generating message contract since the operation has multiple return values.
[System.ServiceModel.OperationContractAttribute(Action="http://www.fleettracker.de/GetFormData", ReplyAction="*")]
System.Threading.Tasks.Task<bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataResponse> GetFormDataAsync(bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataRequest request);
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34234")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.fleettracker.de/api/1.0")]
public partial class GetFormDataInfoListRequestData : object, System.ComponentModel.INotifyPropertyChanged {
private APIIdentifier apiIdentifierField;
private TimeFrameRequestFilter timeFrameRequestFilterField;
private string ffTemplateNameField;
private string ffFolderTemplateTypeTagField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)]
public APIIdentifier apiIdentifier {
get {
return this.apiIdentifierField;
}
set {
this.apiIdentifierField = value;
this.RaisePropertyChanged("apiIdentifier");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)]
public TimeFrameRequestFilter timeFrameRequestFilter {
get {
return this.timeFrameRequestFilterField;
}
set {
this.timeFrameRequestFilterField = value;
this.RaisePropertyChanged("timeFrameRequestFilter");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=2)]
public string ffTemplateName {
get {
return this.ffTemplateNameField;
}
set {
this.ffTemplateNameField = value;
this.RaisePropertyChanged("ffTemplateName");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=3)]
public string ffFolderTemplateTypeTag {
get {
return this.ffFolderTemplateTypeTagField;
}
set {
this.ffFolderTemplateTypeTagField = value;
this.RaisePropertyChanged("ffFolderTemplateTypeTag");
}
}
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName) {
System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
if ((propertyChanged != null)) {
propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34234")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.fleettracker.de/api/1.0")]
public partial class APIIdentifier : object, System.ComponentModel.INotifyPropertyChanged {
private string companyGuidField;
private string clientGuidField;
private string clientNameField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=0)]
public string companyGuid {
get {
return this.companyGuidField;
}
set {
this.companyGuidField = value;
this.RaisePropertyChanged("companyGuid");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=1)]
public string clientGuid {
get {
return this.clientGuidField;
}
set {
this.clientGuidField = value;
this.RaisePropertyChanged("clientGuid");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Order=2)]
public string clientName {
get {
return this.clientNameField;
}
set {
this.clientNameField = value;
this.RaisePropertyChanged("clientName");
}
}
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName) {
System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
if ((propertyChanged != null)) {
propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34234")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.fleettracker.de/api/1.0")]
public partial class FormData : object, System.ComponentModel.INotifyPropertyChanged {
private string valueField;
private string unitField;
private string nameField;
private int widget_idField;
private int rowNoField;
private bool rowNoFieldSpecified;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)]
public string value {
get {
return this.valueField;
}
set {
this.valueField = value;
this.RaisePropertyChanged("value");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)]
public string unit {
get {
return this.unitField;
}
set {
this.unitField = value;
this.RaisePropertyChanged("unit");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=2)]
public string name {
get {
return this.nameField;
}
set {
this.nameField = value;
this.RaisePropertyChanged("name");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=3)]
public int widget_id {
get {
return this.widget_idField;
}
set {
this.widget_idField = value;
this.RaisePropertyChanged("widget_id");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=4)]
public int rowNo {
get {
return this.rowNoField;
}
set {
this.rowNoField = value;
this.RaisePropertyChanged("rowNo");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool rowNoSpecified {
get {
return this.rowNoFieldSpecified;
}
set {
this.rowNoFieldSpecified = value;
this.RaisePropertyChanged("rowNoSpecified");
}
}
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName) {
System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
if ((propertyChanged != null)) {
propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34234")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.fleettracker.de/api/1.0")]
public partial class FormDataset : object, System.ComponentModel.INotifyPropertyChanged {
private System.DateTime revisionDateField;
private System.DateTime startPeriodField;
private bool startPeriodFieldSpecified;
private System.DateTime endPeriodField;
private bool endPeriodFieldSpecified;
private FormData[] formDataField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)]
public System.DateTime revisionDate {
get {
return this.revisionDateField;
}
set {
this.revisionDateField = value;
this.RaisePropertyChanged("revisionDate");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)]
public System.DateTime startPeriod {
get {
return this.startPeriodField;
}
set {
this.startPeriodField = value;
this.RaisePropertyChanged("startPeriod");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool startPeriodSpecified {
get {
return this.startPeriodFieldSpecified;
}
set {
this.startPeriodFieldSpecified = value;
this.RaisePropertyChanged("startPeriodSpecified");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=2)]
public System.DateTime endPeriod {
get {
return this.endPeriodField;
}
set {
this.endPeriodField = value;
this.RaisePropertyChanged("endPeriod");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool endPeriodSpecified {
get {
return this.endPeriodFieldSpecified;
}
set {
this.endPeriodFieldSpecified = value;
this.RaisePropertyChanged("endPeriodSpecified");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("formData", Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=3)]
public FormData[] formData {
get {
return this.formDataField;
}
set {
this.formDataField = value;
this.RaisePropertyChanged("formData");
}
}
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName) {
System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
if ((propertyChanged != null)) {
propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34234")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.fleettracker.de/api/1.0")]
public partial class GetFormDataResponseData : object, System.ComponentModel.INotifyPropertyChanged {
private GetFormDataRequestData requestField;
private int imoNumberField;
private FormDataset[] formDatasetsField;
private string resultField;
private bool successField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)]
public GetFormDataRequestData request {
get {
return this.requestField;
}
set {
this.requestField = value;
this.RaisePropertyChanged("request");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)]
public int imoNumber {
get {
return this.imoNumberField;
}
set {
this.imoNumberField = value;
this.RaisePropertyChanged("imoNumber");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("formDatasets", Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=2)]
public FormDataset[] formDatasets {
get {
return this.formDatasetsField;
}
set {
this.formDatasetsField = value;
this.RaisePropertyChanged("formDatasets");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=3)]
public string result {
get {
return this.resultField;
}
set {
this.resultField = value;
this.RaisePropertyChanged("result");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=4)]
public bool success {
get {
return this.successField;
}
set {
this.successField = value;
this.RaisePropertyChanged("success");
}
}
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName) {
System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
if ((propertyChanged != null)) {
propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34234")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.fleettracker.de/api/1.0")]
public partial class GetFormDataRequestData : object, System.ComponentModel.INotifyPropertyChanged {
private APIIdentifier apiIdentifierField;
private string formGuidField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)]
public APIIdentifier apiIdentifier {
get {
return this.apiIdentifierField;
}
set {
this.apiIdentifierField = value;
this.RaisePropertyChanged("apiIdentifier");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)]
public string formGuid {
get {
return this.formGuidField;
}
set {
this.formGuidField = value;
this.RaisePropertyChanged("formGuid");
}
}
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName) {
System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
if ((propertyChanged != null)) {
propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34234")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.fleettracker.de/api/1.0")]
public partial class FormDataInfoDataset : object, System.ComponentModel.INotifyPropertyChanged {
private string folderTemplateGuidField;
private string formTemplateGuidField;
private string folderGuidField;
private string formGuidField;
private int imoNumberField;
private System.DateTime lastRevisionDateField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)]
public string folderTemplateGuid {
get {
return this.folderTemplateGuidField;
}
set {
this.folderTemplateGuidField = value;
this.RaisePropertyChanged("folderTemplateGuid");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)]
public string formTemplateGuid {
get {
return this.formTemplateGuidField;
}
set {
this.formTemplateGuidField = value;
this.RaisePropertyChanged("formTemplateGuid");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=2)]
public string folderGuid {
get {
return this.folderGuidField;
}
set {
this.folderGuidField = value;
this.RaisePropertyChanged("folderGuid");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=3)]
public string formGuid {
get {
return this.formGuidField;
}
set {
this.formGuidField = value;
this.RaisePropertyChanged("formGuid");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=4)]
public int imoNumber {
get {
return this.imoNumberField;
}
set {
this.imoNumberField = value;
this.RaisePropertyChanged("imoNumber");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=5)]
public System.DateTime lastRevisionDate {
get {
return this.lastRevisionDateField;
}
set {
this.lastRevisionDateField = value;
this.RaisePropertyChanged("lastRevisionDate");
}
}
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName) {
System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
if ((propertyChanged != null)) {
propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34234")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.fleettracker.de/api/1.0")]
public partial class GetFormDataInfoListResponseData : object, System.ComponentModel.INotifyPropertyChanged {
private GetFormDataInfoListRequestData requestField;
private FormDataInfoDataset[] formDataInfoDatasetsField;
private string resultField;
private bool successField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)]
public GetFormDataInfoListRequestData request {
get {
return this.requestField;
}
set {
this.requestField = value;
this.RaisePropertyChanged("request");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("formDataInfoDatasets", Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)]
public FormDataInfoDataset[] formDataInfoDatasets {
get {
return this.formDataInfoDatasetsField;
}
set {
this.formDataInfoDatasetsField = value;
this.RaisePropertyChanged("formDataInfoDatasets");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=2)]
public string result {
get {
return this.resultField;
}
set {
this.resultField = value;
this.RaisePropertyChanged("result");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=3)]
public bool success {
get {
return this.successField;
}
set {
this.successField = value;
this.RaisePropertyChanged("success");
}
}
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName) {
System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
if ((propertyChanged != null)) {
propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.34234")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.fleettracker.de/api/1.0")]
public partial class TimeFrameRequestFilter : object, System.ComponentModel.INotifyPropertyChanged {
private System.DateTime startDateField;
private bool startDateFieldSpecified;
private System.DateTime endDateField;
private bool endDateFieldSpecified;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)]
public System.DateTime startDate {
get {
return this.startDateField;
}
set {
this.startDateField = value;
this.RaisePropertyChanged("startDate");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool startDateSpecified {
get {
return this.startDateFieldSpecified;
}
set {
this.startDateFieldSpecified = value;
this.RaisePropertyChanged("startDateSpecified");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)]
public System.DateTime endDate {
get {
return this.endDateField;
}
set {
this.endDateField = value;
this.RaisePropertyChanged("endDate");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool endDateSpecified {
get {
return this.endDateFieldSpecified;
}
set {
this.endDateFieldSpecified = value;
this.RaisePropertyChanged("endDateSpecified");
}
}
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName) {
System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
if ((propertyChanged != null)) {
propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
}
}
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ServiceModel.MessageContractAttribute(WrapperName="GetFormDataInfoList", WrapperNamespace="http://www.fleettracker.de/api/1.0", IsWrapped=true)]
public partial class GetFormDataInfoListRequest {
[System.ServiceModel.MessageBodyMemberAttribute(Namespace="", Order=0)]
public bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataInfoListRequestData body;
public GetFormDataInfoListRequest() {
}
public GetFormDataInfoListRequest(bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataInfoListRequestData body) {
this.body = body;
}
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ServiceModel.MessageContractAttribute(WrapperName="GetFormDataInfoListResponse", WrapperNamespace="http://www.fleettracker.de/api/1.0", IsWrapped=true)]
public partial class GetFormDataInfoListResponse {
[System.ServiceModel.MessageBodyMemberAttribute(Namespace="", Order=0)]
public bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataInfoListResponseData body;
public GetFormDataInfoListResponse() {
}
public GetFormDataInfoListResponse(bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataInfoListResponseData body) {
this.body = body;
}
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ServiceModel.MessageContractAttribute(WrapperName="GetFormData", WrapperNamespace="http://www.fleettracker.de/api/1.0", IsWrapped=true)]
public partial class GetFormDataRequest {
[System.ServiceModel.MessageBodyMemberAttribute(Namespace="", Order=0)]
public bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataRequestData body;
public GetFormDataRequest() {
}
public GetFormDataRequest(bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataRequestData body) {
this.body = body;
}
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ServiceModel.MessageContractAttribute(WrapperName="GetFormDataResponse", WrapperNamespace="http://www.fleettracker.de/api/1.0", IsWrapped=true)]
public partial class GetFormDataResponse {
[System.ServiceModel.MessageBodyMemberAttribute(Namespace="", Order=0)]
public bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataResponseData body;
public GetFormDataResponse() {
}
public GetFormDataResponse(bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataResponseData body) {
this.body = body;
}
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public interface WSAPIFormDataPortTypeChannel : bsmd.herberg.FormService.ServiceReferenceHerberg.WSAPIFormDataPortType, System.ServiceModel.IClientChannel {
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public partial class WSAPIFormDataPortTypeClient : System.ServiceModel.ClientBase<bsmd.herberg.FormService.ServiceReferenceHerberg.WSAPIFormDataPortType>, bsmd.herberg.FormService.ServiceReferenceHerberg.WSAPIFormDataPortType {
public WSAPIFormDataPortTypeClient() {
}
public WSAPIFormDataPortTypeClient(string endpointConfigurationName) :
base(endpointConfigurationName) {
}
public WSAPIFormDataPortTypeClient(string endpointConfigurationName, string remoteAddress) :
base(endpointConfigurationName, remoteAddress) {
}
public WSAPIFormDataPortTypeClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) :
base(endpointConfigurationName, remoteAddress) {
}
public WSAPIFormDataPortTypeClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) :
base(binding, remoteAddress) {
}
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataInfoListResponse bsmd.herberg.FormService.ServiceReferenceHerberg.WSAPIFormDataPortType.GetFormDataInfoList(bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataInfoListRequest request) {
return base.Channel.GetFormDataInfoList(request);
}
public bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataInfoListResponseData GetFormDataInfoList(bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataInfoListRequestData body) {
bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataInfoListRequest inValue = new bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataInfoListRequest();
inValue.body = body;
bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataInfoListResponse retVal = ((bsmd.herberg.FormService.ServiceReferenceHerberg.WSAPIFormDataPortType)(this)).GetFormDataInfoList(inValue);
return retVal.body;
}
public System.Threading.Tasks.Task<bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataInfoListResponse> GetFormDataInfoListAsync(bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataInfoListRequest request) {
return base.Channel.GetFormDataInfoListAsync(request);
}
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataResponse bsmd.herberg.FormService.ServiceReferenceHerberg.WSAPIFormDataPortType.GetFormData(bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataRequest request) {
return base.Channel.GetFormData(request);
}
public bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataResponseData GetFormData(bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataRequestData body) {
bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataRequest inValue = new bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataRequest();
inValue.body = body;
bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataResponse retVal = ((bsmd.herberg.FormService.ServiceReferenceHerberg.WSAPIFormDataPortType)(this)).GetFormData(inValue);
return retVal.body;
}
public System.Threading.Tasks.Task<bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataResponse> GetFormDataAsync(bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataRequest request) {
return base.Channel.GetFormDataAsync(request);
}
}
}

View File

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<ReferenceGroup xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ID="9a369771-bbd2-4f29-a670-cd687d25ee3b" xmlns="urn:schemas-microsoft-com:xml-wcfservicemap">
<ClientOptions>
<GenerateAsynchronousMethods>false</GenerateAsynchronousMethods>
<GenerateTaskBasedAsynchronousMethod>true</GenerateTaskBasedAsynchronousMethod>
<EnableDataBinding>true</EnableDataBinding>
<ExcludedTypes />
<ImportXmlTypes>false</ImportXmlTypes>
<GenerateInternalTypes>false</GenerateInternalTypes>
<GenerateMessageContracts>false</GenerateMessageContracts>
<NamespaceMappings />
<CollectionMappings />
<GenerateSerializableTypes>true</GenerateSerializableTypes>
<Serializer>Auto</Serializer>
<UseSerializerForFaults>true</UseSerializerForFaults>
<ReferenceAllAssemblies>true</ReferenceAllAssemblies>
<ReferencedAssemblies />
<ReferencedDataContractTypes />
<ServiceContractMappings />
</ClientOptions>
<MetadataSources>
<MetadataSource Address="E:\work\bsmd\nsw\Herberg\WSAPIFormData.wsdl" Protocol="file" SourceId="1" />
</MetadataSources>
<Metadata>
<MetadataFile FileName="ship.xsd" MetadataType="Schema" ID="b7265533-4dfe-4a50-b86f-13a36e1dd56a" SourceId="1" SourceUrl="file:///E:/work/bsmd/nsw/Herberg/ship.xsd" />
<MetadataFile FileName="geoarea.xsd" MetadataType="Schema" ID="fdb8ecaa-2778-4279-b1ca-7a8dd580c74f" SourceId="1" SourceUrl="file:///E:/work/bsmd/nsw/Herberg/geoarea.xsd" />
<MetadataFile FileName="auth.xsd" MetadataType="Schema" ID="7451b0dd-9e6c-448c-a761-0cfea28f60b6" SourceId="1" SourceUrl="file:///E:/work/bsmd/nsw/Herberg/auth.xsd" />
<MetadataFile FileName="WSAPIFormData.wsdl" MetadataType="Wsdl" ID="4d10ee63-58e5-4d66-8bb6-8b2a8d23dbec" SourceId="1" SourceUrl="file:///E:/work/bsmd/nsw/Herberg/WSAPIFormData.wsdl" />
<MetadataFile FileName="device.xsd" MetadataType="Schema" ID="a9f02ebd-e557-4311-aa36-aec065035360" SourceId="1" SourceUrl="file:///E:/work/bsmd/nsw/Herberg/device.xsd" />
<MetadataFile FileName="shipParams.xsd" MetadataType="Schema" ID="2c018a53-6c3c-4d8a-8350-49a6a91080f7" SourceId="1" SourceUrl="file:///E:/work/bsmd/nsw/Herberg/shipParams.xsd" />
<MetadataFile FileName="route.xsd" MetadataType="Schema" ID="022a9d4b-c467-4a43-979b-aaba6bd11dfc" SourceId="1" SourceUrl="file:///E:/work/bsmd/nsw/Herberg/route.xsd" />
<MetadataFile FileName="inlandPosition.xsd" MetadataType="Schema" ID="d16a22d5-3407-4218-8f08-e76d7470e426" SourceId="1" SourceUrl="file:///E:/work/bsmd/nsw/Herberg/inlandPosition.xsd" />
<MetadataFile FileName="target.xsd" MetadataType="Schema" ID="42931fc3-d77b-4c74-a01c-d58da0fbfcd3" SourceId="1" SourceUrl="file:///E:/work/bsmd/nsw/Herberg/target.xsd" />
<MetadataFile FileName="position.xsd" MetadataType="Schema" ID="813c1bc2-6268-4ca9-9762-50f749b7ae95" SourceId="1" SourceUrl="file:///E:/work/bsmd/nsw/Herberg/position.xsd" />
</Metadata>
<Extensions>
<ExtensionFile FileName="configuration91.svcinfo" Name="configuration91.svcinfo" />
<ExtensionFile FileName="configuration.svcinfo" Name="configuration.svcinfo" />
</Extensions>
</ReferenceGroup>

View File

@ -0,0 +1,289 @@
<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:apml="http://www.herbergEngineering.com/apml" xmlns:api="http://www.fleettracker.de/api/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://www.fleettracker.de/api/1.0" targetNamespace="http://www.fleettracker.de/api/1.0" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<xsd:schema targetNamespace="http://www.fleettracker.de/api/1.0">
<xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<xsd:import namespace="http://schemas.xmlsoap.org/wsdl/" />
<xsd:include schemaLocation="position.xsd" />
<xsd:include schemaLocation="device.xsd" />
<xsd:include schemaLocation="auth.xsd" />
<xsd:include schemaLocation="geoarea.xsd" />
<xsd:include schemaLocation="shipParams.xsd" />
<xsd:include schemaLocation="target.xsd" />
<xsd:include schemaLocation="ship.xsd" />
<xsd:complexType name="TimeFrameRequestFilter">
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="1" name="startDate" type="xsd:dateTime" />
<xsd:element minOccurs="0" maxOccurs="1" name="endDate" type="xsd:dateTime" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="FormDataInfoDataset">
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="folderTemplateGuid" type="xsd:string">
<xsd:annotation>
<xsd:documentation>The GUID of the folder template
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="formTemplateGuid" type="xsd:string">
<xsd:annotation>
<xsd:documentation>The GUID of the form template
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="folderGuid" type="xsd:string">
<xsd:annotation>
<xsd:documentation>The GUID of the folder</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="formGuid" type="xsd:string">
<xsd:annotation>
<xsd:documentation>The GUID of the form</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="imoNumber" type="xsd:int">
<xsd:annotation>
<xsd:documentation>The IMO number this form belongs to.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="lastRevisionDate" type="xsd:dateTime">
<xsd:annotation>
<xsd:documentation>The date of the latest revision.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="FormData">
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="value" type="xsd:string">
<xsd:annotation>
<xsd:documentation>The value
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="unit" type="xsd:string">
<xsd:annotation>
<xsd:documentation>The optional unit
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:string">
<xsd:annotation>
<xsd:documentation>The widget name this cell belongs to.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="widget_id" type="xsd:int">
<xsd:annotation>
<xsd:documentation>The widget id the value belongs to. Note
that this entry is the id within the form template but NOT the database id of the widget!
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="rowNo" type="xsd:int">
<xsd:annotation>
<xsd:documentation>The optional row number. This is set if we
have a widget that is part of a table.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="FormDataset">
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="revisionDate" type="xsd:dateTime">
<xsd:annotation>
<xsd:documentation>The date of the revision.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="startPeriod" type="xsd:dateTime">
<xsd:annotation>
<xsd:documentation>The begin of the period this dataset is valid
for.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="endPeriod" type="xsd:dateTime">
<xsd:annotation>
<xsd:documentation>The end of the period this row is valid for.
If startPeriod is not given, the endPeriod contains the sample
timestamp.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="unbounded" name="formData" type="tns:FormData">
<xsd:annotation>
<xsd:documentation>The values.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="GetFormDataInfoListRequestData">
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="apiIdentifier" type="tns:APIIdentifier">
<xsd:annotation>
<xsd:documentation>
The reporting or requesting party.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="timeFrameRequestFilter" type="tns:TimeFrameRequestFilter">
<xsd:annotation>
<xsd:documentation>The optional time frame. If not set then all entries are returned.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="ffTemplateName" type="xsd:string">
<xsd:annotation>
<xsd:documentation>This is the Fleetform form template name (see
FolderTemplate.Template.TemplateName).
You have to either set
this or ffFolderTemplateTypeTag.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="ffFolderTemplateTypeTag" type="xsd:string">
<xsd:annotation>
<xsd:documentation>This is the Fleetform folder template typeTag,
e.g. CREWLIST, PERFORMANCEREPORT, SHIPDETAILS, etc. See
FolderTemplate in fleetform.xsd
for possible values.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="GetFormDataInfoListResponseData">
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="request" type="tns:GetFormDataInfoListRequestData">
<xsd:annotation>
<xsd:documentation>The request</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="unbounded" name="formDataInfoDatasets" type="tns:FormDataInfoDataset">
<xsd:annotation>
<xsd:documentation>A set of form data found in the database.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="result" type="xsd:string" />
<xsd:element name="success" type="xsd:boolean">
<xsd:annotation>
<xsd:documentation>This flag is set to true if the route was
successfully stored.
Otherwise, result contains the error
message.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="GetFormDataRequestData">
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="apiIdentifier" type="tns:APIIdentifier">
<xsd:annotation>
<xsd:documentation>
The reporting or requesting party.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="formGuid" type="xsd:string">
<xsd:annotation>
<xsd:documentation>The GUID of the form.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="GetFormDataResponseData">
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="request" type="tns:GetFormDataRequestData">
<xsd:annotation>
<xsd:documentation>
The request belonging to this response.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="imoNumber" type="xsd:int">
<xsd:annotation>
<xsd:documentation>The IMO number of the vessel this form belongs
to.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="unbounded" name="formDatasets" type="tns:FormDataset">
<xsd:annotation>
<xsd:documentation>
The requested data. If not found then this
entry is null. Note that we may have several entries for one
form here since one form may contain several entries.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="result" type="xsd:string" />
<xsd:element name="success" type="xsd:boolean">
<xsd:annotation>
<xsd:documentation>
This flag is set to true if the route was
successfully stored.
Otherwise, result contains the error
message.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
<wsdl:message name="GetFormDataInfoListRequest">
<wsdl:part name="body" type="tns:GetFormDataInfoListRequestData" />
</wsdl:message>
<wsdl:message name="GetFormDataInfoListResponse">
<wsdl:part name="body" type="tns:GetFormDataInfoListResponseData" />
</wsdl:message>
<wsdl:message name="GetFormDataRequest">
<wsdl:part name="body" type="tns:GetFormDataRequestData" />
</wsdl:message>
<wsdl:message name="GetFormDataResponse">
<wsdl:part name="body" type="tns:GetFormDataResponseData" />
</wsdl:message>
<wsdl:portType name="WSAPIFormDataPortType">
<wsdl:operation name="GetFormDataInfoList">
<wsdl:input message="tns:GetFormDataInfoListRequest" />
<wsdl:output message="tns:GetFormDataInfoListResponse" />
</wsdl:operation>
<wsdl:operation name="GetFormData">
<wsdl:input message="tns:GetFormDataRequest" />
<wsdl:output message="tns:GetFormDataResponse" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="WSAPIFormDataBinding" type="tns:WSAPIFormDataPortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc" />
<wsdl:operation name="GetFormDataInfoList">
<soap:operation soapAction="http://www.fleettracker.de/GetFormDataInfoList" style="rpc" />
<wsdl:input>
<soap:body use="literal" namespace="http://www.fleettracker.de/api/1.0" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" namespace="http://www.fleettracker.de/api/1.0" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetFormData">
<soap:operation soapAction="http://www.fleettracker.de/GetFormData" style="rpc" />
<wsdl:input>
<soap:body use="literal" namespace="http://www.fleettracker.de/api/1.0" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" namespace="http://www.fleettracker.de/api/1.0" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="WSAPIFormData">
<wsdl:port name="WSAPIFormDataPort" binding="tns:WSAPIFormDataBinding">
<soap:address location="http://www.fleettracker.de/api/1.0/WSAPIFormData.php" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns="http://www.fleettracker.de/api/1.0" xmlns:tns="http://www.fleettracker.de/api/1.0" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.fleettracker.de/api/1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="APIIdentifier">
<xsd:annotation>
<xsd:documentation>This is the identifier the client has to report.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="companyGuid" type="xsd:string">
<xsd:annotation>
<xsd:documentation>The unique id of the company. This is a unique
GUID identifying the
company using the API. Only if the company is registered, they may use
the API.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="clientGuid" type="xsd:string">
<xsd:annotation>
<xsd:documentation>The unique id of the client. This is a unique
GUID identifying the
individual sender. E.g. each boat may have a unique id.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="clientName" type="xsd:string">
<xsd:annotation>
<xsd:documentation>The optional name of the sending client. This is only for helping us identifying the sending
party.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="GetFormDataInfoListResponse" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataInfoListResponse, Service References.ServiceReferenceHerberg.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="GetFormDataInfoListResponseData" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataInfoListResponseData, Service References.ServiceReferenceHerberg.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="GetFormDataResponse" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataResponse, Service References.ServiceReferenceHerberg.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="GetFormDataResponseData" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataResponseData, Service References.ServiceReferenceHerberg.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<configurationSnapshot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:schemas-microsoft-com:xml-wcfconfigurationsnapshot">
<behaviors />
<bindings>
<binding digest="System.ServiceModel.Configuration.BasicHttpBindingElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data name=&quot;WSAPIFormDataBinding&quot; /&gt;" bindingType="basicHttpBinding" name="WSAPIFormDataBinding" />
</bindings>
<endpoints>
<endpoint normalizedDigest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;http://www.fleettracker.de/api/1.0/WSAPIFormData.php&quot; binding=&quot;basicHttpBinding&quot; bindingConfiguration=&quot;WSAPIFormDataBinding&quot; contract=&quot;ServiceReferenceHerberg.WSAPIFormDataPortType&quot; name=&quot;WSAPIFormDataPort&quot; /&gt;" digest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;http://www.fleettracker.de/api/1.0/WSAPIFormData.php&quot; binding=&quot;basicHttpBinding&quot; bindingConfiguration=&quot;WSAPIFormDataBinding&quot; contract=&quot;ServiceReferenceHerberg.WSAPIFormDataPortType&quot; name=&quot;WSAPIFormDataPort&quot; /&gt;" contractName="ServiceReferenceHerberg.WSAPIFormDataPortType" name="WSAPIFormDataPort" />
</endpoints>
</configurationSnapshot>

View File

@ -0,0 +1,201 @@
<?xml version="1.0" encoding="utf-8"?>
<SavedWcfConfigurationInformation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="9.1" CheckSum="Kpt5N3ptPSaaOliRhwO3TPFzjkI=">
<bindingConfigurations>
<bindingConfiguration bindingType="basicHttpBinding" name="WSAPIFormDataBinding">
<properties>
<property path="/name" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>WSAPIFormDataBinding</serializedValue>
</property>
<property path="/closeTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/openTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/receiveTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/sendTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/allowCookies" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/bypassProxyOnLocal" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/hostNameComparisonMode" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.HostNameComparisonMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>StrongWildcard</serializedValue>
</property>
<property path="/maxBufferPoolSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/maxBufferSize" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>65536</serializedValue>
</property>
<property path="/maxReceivedMessageSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/proxyAddress" isComplexType="false" isExplicitlyDefined="false" clrType="System.Uri, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/readerQuotas" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement</serializedValue>
</property>
<property path="/readerQuotas/maxDepth" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/readerQuotas/maxStringContentLength" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/readerQuotas/maxArrayLength" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/readerQuotas/maxBytesPerRead" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/readerQuotas/maxNameTableCharCount" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/textEncoding" isComplexType="false" isExplicitlyDefined="false" clrType="System.Text.Encoding, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.Text.UTF8Encoding</serializedValue>
</property>
<property path="/transferMode" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.TransferMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>Buffered</serializedValue>
</property>
<property path="/useDefaultWebProxy" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/messageEncoding" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.WSMessageEncoding, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>Text</serializedValue>
</property>
<property path="/security" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.BasicHttpSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.BasicHttpSecurityElement</serializedValue>
</property>
<property path="/security/mode" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.BasicHttpSecurityMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>None</serializedValue>
</property>
<property path="/security/transport" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.HttpTransportSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.HttpTransportSecurityElement</serializedValue>
</property>
<property path="/security/transport/clientCredentialType" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.HttpClientCredentialType, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>None</serializedValue>
</property>
<property path="/security/transport/proxyCredentialType" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.HttpProxyCredentialType, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>None</serializedValue>
</property>
<property path="/security/transport/extendedProtectionPolicy" isComplexType="true" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement</serializedValue>
</property>
<property path="/security/transport/extendedProtectionPolicy/policyEnforcement" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.PolicyEnforcement, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>Never</serializedValue>
</property>
<property path="/security/transport/extendedProtectionPolicy/protectionScenario" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.ProtectionScenario, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>TransportSelected</serializedValue>
</property>
<property path="/security/transport/extendedProtectionPolicy/customServiceNames" isComplexType="true" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.Configuration.ServiceNameElementCollection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>(Collection)</serializedValue>
</property>
<property path="/security/transport/realm" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/security/message" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.BasicHttpMessageSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.BasicHttpMessageSecurityElement</serializedValue>
</property>
<property path="/security/message/clientCredentialType" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.BasicHttpMessageCredentialType, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>UserName</serializedValue>
</property>
<property path="/security/message/algorithmSuite" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.Security.SecurityAlgorithmSuite, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>Default</serializedValue>
</property>
</properties>
</bindingConfiguration>
</bindingConfigurations>
<endpoints>
<endpoint name="WSAPIFormDataPort" contract="ServiceReferenceHerberg.WSAPIFormDataPortType" bindingType="basicHttpBinding" address="http://www.fleettracker.de/api/1.0/WSAPIFormData.php" bindingConfiguration="WSAPIFormDataBinding">
<properties>
<property path="/address" isComplexType="false" isExplicitlyDefined="true" clrType="System.Uri, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>http://www.fleettracker.de/api/1.0/WSAPIFormData.php</serializedValue>
</property>
<property path="/behaviorConfiguration" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/binding" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>basicHttpBinding</serializedValue>
</property>
<property path="/bindingConfiguration" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>WSAPIFormDataBinding</serializedValue>
</property>
<property path="/contract" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>ServiceReferenceHerberg.WSAPIFormDataPortType</serializedValue>
</property>
<property path="/headers" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.AddressHeaderCollectionElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.AddressHeaderCollectionElement</serializedValue>
</property>
<property path="/headers/headers" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.Channels.AddressHeaderCollection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>&lt;Header /&gt;</serializedValue>
</property>
<property path="/identity" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.IdentityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.IdentityElement</serializedValue>
</property>
<property path="/identity/userPrincipalName" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.UserPrincipalNameElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.UserPrincipalNameElement</serializedValue>
</property>
<property path="/identity/userPrincipalName/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/servicePrincipalName" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.ServicePrincipalNameElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.ServicePrincipalNameElement</serializedValue>
</property>
<property path="/identity/servicePrincipalName/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/dns" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.DnsElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.DnsElement</serializedValue>
</property>
<property path="/identity/dns/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/rsa" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.RsaElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.RsaElement</serializedValue>
</property>
<property path="/identity/rsa/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/certificate" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.CertificateElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.CertificateElement</serializedValue>
</property>
<property path="/identity/certificate/encodedValue" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/certificateReference" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.CertificateReferenceElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.CertificateReferenceElement</serializedValue>
</property>
<property path="/identity/certificateReference/storeName" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.StoreName, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>My</serializedValue>
</property>
<property path="/identity/certificateReference/storeLocation" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.StoreLocation, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>LocalMachine</serializedValue>
</property>
<property path="/identity/certificateReference/x509FindType" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.X509FindType, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>FindBySubjectDistinguishedName</serializedValue>
</property>
<property path="/identity/certificateReference/findValue" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/certificateReference/isChainIncluded" isComplexType="false" isExplicitlyDefined="false" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>False</serializedValue>
</property>
<property path="/name" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>WSAPIFormDataPort</serializedValue>
</property>
<property path="/kind" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/endpointConfiguration" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
</properties>
</endpoint>
</endpoints>
</SavedWcfConfigurationInformation>

View File

@ -0,0 +1,77 @@
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns="http://www.fleettracker.de/api/1.0" xmlns:tns="http://www.fleettracker.de/api/1.0" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.fleettracker.de/api/1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="DeviceId">
<xsd:annotation>
<xsd:documentation>This is the device ID.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" default="UNKNOWN" name="keyreference">
<xsd:annotation>
<xsd:documentation>The bearer key reference. We have several ways
to identify the device.
E.g. for inmarsatc, we use fleetID and vesselID (and mobile number, if
available).
For D+, we use the vesselID. Daily Report uses the IMO number.
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="UNKNOWN" />
<xsd:enumeration value="INMARSATC" />
<xsd:enumeration value="INMARSATD" />
<xsd:enumeration value="ORBCOMM" />
<xsd:enumeration value="IMONO" />
<xsd:enumeration value="CALLSIGN">
<xsd:annotation>
<xsd:documentation>The callsign. For instance, Globewireless uses this.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="GLOBALSTAR">
<xsd:annotation>
<xsd:documentation>The Globalstar device id. Example: 0-545312
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="MMSI" />
<xsd:enumeration value="GUID">
<xsd:annotation>
<xsd:documentation>The vesselID contains a unique GUID identifying the device. We use this e.g. for the API.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="IMEI">
<xsd:annotation>
<xsd:documentation>IMEI - International Mobile Equipment Identity (e.g. BGAN)
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="mobileNo" type="xsd:string">
<xsd:annotation>
<xsd:documentation>The inmarsat C mobile number.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="fleetID" type="xsd:string">
<xsd:annotation>
<xsd:documentation>This is the DNID for INMARSATC.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="vesselID" type="xsd:string">
<xsd:annotation>
<xsd:documentation>This is the terminal, member number, GUID, MMSI, etc.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="imoNo" type="xsd:string">
<xsd:annotation>
<xsd:documentation>This is the IMO number.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>

View File

@ -0,0 +1,167 @@
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns="http://www.fleettracker.de/api/1.0" xmlns:tns="http://www.fleettracker.de/api/1.0" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://www.fleettracker.de/api/1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:include schemaLocation="position.xsd" />
<xsd:complexType name="GeoArea">
<xsd:annotation>
<xsd:documentation>This is a geographical area. It can be a polygon
or a bounding box.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="unbounded" name="coverages" type="tns:GeoAreaCoverage">
<xsd:annotation>
<xsd:documentation>Geographical coverages of this area
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="aid" type="xsd:int">
<xsd:annotation>
<xsd:documentation>DB Area ID
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="alid" type="xsd:int">
<xsd:annotation>
<xsd:documentation>DB Area list ID
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="name" type="xsd:string">
<xsd:annotation>
<xsd:documentation>DB Area name
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="GeoAreaCoverage">
<xsd:annotation>
<xsd:documentation>This is a geographical coverage belonging to an area.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element minOccurs="2" maxOccurs="unbounded" name="positions" type="tns:Position">
<xsd:annotation>
<xsd:documentation>Geographical positions
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" default="polygon" name="areatype">
<xsd:annotation>
<xsd:documentation>The type of this coverage. Bounding boxes are
between the first 2 positions.
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="polygon" />
<xsd:enumeration value="boundingbox" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="acid" type="xsd:int">
<xsd:annotation>
<xsd:documentation>DB Area coverage ID
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="name" type="xsd:string">
<xsd:annotation>
<xsd:documentation>DB Area Coverage name
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="GeoAreaEvent">
<xsd:annotation>
<xsd:documentation>This is an event related to an area.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="position" type="tns:PositionFix">
<xsd:annotation>
<xsd:documentation>Geographical position when the event happened.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="acid" type="xsd:int">
<xsd:annotation>
<xsd:documentation>DB Area coverage ID
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="aid" type="xsd:int">
<xsd:annotation>
<xsd:documentation>DB Area ID
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="alid" type="xsd:int">
<xsd:annotation>
<xsd:documentation>DB Area list ID
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="areaName" type="xsd:string">
<xsd:annotation>
<xsd:documentation>DB Area name
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="areaCoverageName" type="xsd:string">
<xsd:annotation>
<xsd:documentation>DB Area Coverage name
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" default="true" name="preliminary" type="xsd:boolean">
<xsd:annotation>
<xsd:documentation>This flag indicates that the event has been generated but
not yet been proven. Example: It is proven if the vessel is within the areas more than 1 minute.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" default="false" name="reported" type="xsd:boolean">
<xsd:annotation>
<xsd:documentation>This flag indicates that the event has been reported ashore.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" default="ENTER" name="eventType">
<xsd:annotation>
<xsd:documentation>The type of this event.
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="ENTER">
<xsd:annotation>
<xsd:documentation>The vessel has entered the area
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="LEAVE">
<xsd:annotation>
<xsd:documentation>The vessel has left the area
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="STOPPED">
<xsd:annotation>
<xsd:documentation>The vessel has stopped in the area
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="MOVING">
<xsd:annotation>
<xsd:documentation>The vessel has started moving within the area
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>

View File

@ -0,0 +1,183 @@
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns="http://www.fleettracker.de/api/1.0" xmlns:tns="http://www.fleettracker.de/api/1.0" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://www.fleettracker.de/api/1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:include schemaLocation="position.xsd" />
<xsd:complexType name="InlandDistance">
<xsd:annotation>
<xsd:documentation>This is the distance on a river.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="distanceValue" type="xsd:double">
<xsd:annotation>
<xsd:documentation>This is the current value in the given unit.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" default="METER" name="distanceUnit">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="METER" />
<xsd:enumeration value="STATMILE" />
<xsd:enumeration value="KM" />
<xsd:enumeration value="NAUTICALMILE" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="InlandSpeed">
<xsd:annotation>
<xsd:documentation>This is the speed of a target.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="speedValue" type="xsd:double">
<xsd:annotation>
<xsd:documentation>This is the current value in the given unit.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" default="METER_PER_SECOND" name="speedUnit">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="METER_PER_SECOND" />
<xsd:enumeration value="STATMILES_PER_HOUR" />
<xsd:enumeration value="KM_PER_HOUR" />
<xsd:enumeration value="KNOTS" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="River">
<xsd:annotation>
<xsd:documentation>This represents a river.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="rivername" type="xsd:string">
<xsd:annotation>
<xsd:documentation>This is the river name.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="riverabbr" type="xsd:string">
<xsd:annotation>
<xsd:documentation>This is the river abbreviation.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="MilesMarker">
<xsd:annotation>
<xsd:documentation>This represents a miles marker entry.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="miles" type="xsd:float">
<xsd:annotation>
<xsd:documentation>This is the river mile or kilometer.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" default="STATMILES" name="unit">
<xsd:annotation>
<xsd:documentation>This is the unit of the miles.
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="STATMILES" />
<xsd:enumeration value="KM" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="river" type="tns:River">
<xsd:annotation>
<xsd:documentation>This is the river.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="MilesMarkerWithPosition">
<xsd:annotation>
<xsd:documentation>This represents a miles marker entry with a
geographic position.
</xsd:documentation>
</xsd:annotation>
<xsd:complexContent mixed="false">
<xsd:extension base="tns:MilesMarker">
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="position" type="tns:Position">
<xsd:annotation>
<xsd:documentation>The geographic position of this miles marker
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="MilesMarkerWithPositionList">
<xsd:annotation>
<xsd:documentation>This represents a set of miles marker entry with a
geographic position.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="unbounded" name="entries" type="tns:MilesMarkerWithPosition">
<xsd:annotation>
<xsd:documentation>A set of miles marker entries with positions.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="NoPassingZone">
<xsd:annotation>
<xsd:documentation>This represents a no passing zone.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="id" type="xsd:int">
<xsd:annotation>
<xsd:documentation>The mandatory unique id
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:string">
<xsd:annotation>
<xsd:documentation>The optional name for identification.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="start" type="tns:MilesMarker">
<xsd:annotation>
<xsd:documentation>The begin of the no passing zone. This is always
the lower mile marker.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="end" type="tns:MilesMarker">
<xsd:annotation>
<xsd:documentation>The end of the no passing zone. This is always
the higher mile marker.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="NoPassingZoneList">
<xsd:annotation>
<xsd:documentation>This represents a set of no passing zones
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="unbounded" name="entries" type="tns:NoPassingZone">
<xsd:annotation>
<xsd:documentation>A set of NoPassingZone objects.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>

View File

@ -0,0 +1,102 @@
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns="http://www.fleettracker.de/api/1.0" xmlns:tns="http://www.fleettracker.de/api/1.0" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://www.fleettracker.de/api/1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="Position">
<xsd:annotation>
<xsd:documentation>This is a geographical position.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="lat" type="xsd:int">
<xsd:annotation>
<xsd:documentation>Latitude in degrees x 60000, North &gt; 0
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="lon" type="xsd:int">
<xsd:annotation>
<xsd:documentation>Latitude in degrees x 60000, East &gt; 0
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="PositionFix">
<xsd:annotation>
<xsd:documentation>This is a geographical position with a timestamp.
</xsd:documentation>
</xsd:annotation>
<xsd:complexContent mixed="false">
<xsd:extension base="tns:Position">
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="timestamp" type="xsd:dateTime">
<xsd:annotation>
<xsd:documentation>Timestamp when the position was made
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="PasttrackPosition">
<xsd:annotation>
<xsd:documentation>This is a geographical position of a pasttrack.
</xsd:documentation>
</xsd:annotation>
<xsd:complexContent mixed="false">
<xsd:extension base="tns:PositionFix">
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="orderNumber" type="xsd:int">
<xsd:annotation>
<xsd:documentation>The order number of the pastttack. The
higher
the number, the older the position.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="rot" type="xsd:float">
<xsd:annotation>
<xsd:documentation>Rate of turn in deg/s, right &gt; 0, left &lt;
0)</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="sog" type="xsd:float">
<xsd:annotation>
<xsd:documentation>Speed over ground in knots
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="cog" type="xsd:float">
<xsd:annotation>
<xsd:documentation>Course over ground in degrees
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="hdg" type="xsd:float">
<xsd:annotation>
<xsd:documentation>Heading in degrees
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="eta" type="xsd:dateTime">
<xsd:annotation>
<xsd:documentation>ETA to next port
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="etb" type="xsd:dateTime">
<xsd:annotation>
<xsd:documentation>ETB to next port
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="nextport" type="xsd:string">
<xsd:annotation>
<xsd:documentation>Next port
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:schema>

View File

@ -0,0 +1,88 @@
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns="http://www.fleettracker.de/api/1.0" xmlns:tns="http://www.fleettracker.de/api/1.0" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.fleettracker.de/api/1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="WaypointData">
<xsd:annotation>
<xsd:documentation>This represents a waypoint of a planned route.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="id" type="xsd:int">
<xsd:annotation>
<xsd:documentation>This is a unique id of the waypoint within the route.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:string">
<xsd:annotation>
<xsd:documentation>This is an optional name of this waypoint.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="nextwp" type="xsd:int">
<xsd:annotation>
<xsd:documentation>This is the unique id of the NEXT
waypoint within the route. This element is not set
for the last waypoint.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="lat" type="xsd:int">
<xsd:annotation>
<xsd:documentation>This is the latitude of this waypoint in minutes x 1000 (= degrees x 60000).
Positive = North, Negative = South.
Example: 12 deg 23.4 min North = (12 * 60 + 23.4) * 1000 = 743400
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="lon" type="xsd:int">
<xsd:annotation>
<xsd:documentation>This is the longitude of this waypoint in minutes x 1000 (= degrees x 60000).
Positive = East, Negative = West.
Example: 122 deg 23.4 min West = -(122 * 60 + 23.4) * 1000 = -7343400
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="sog" type="xsd:float">
<xsd:annotation>
<xsd:documentation>This is the planned speed over ground (SOG) in knots TO this waypoint.
So the ship will calculate to go from the previous waypoint to this
waypoint at this speed.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="RouteData">
<xsd:annotation>
<xsd:documentation>This represents the planned ship route.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="id" type="xsd:int">
<xsd:annotation>
<xsd:documentation>This is a unique id of the route. The ID has to be unique
for the vessel.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" name="imono" type="xsd:int">
<xsd:annotation>
<xsd:documentation>This is the IMO number of the vessel this route belongs to.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" name="created" type="xsd:dateTime">
<xsd:annotation>
<xsd:documentation>This is the timestamp in UTC when the route has been created.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" name="eta" type="xsd:dateTime">
<xsd:annotation>
<xsd:documentation>This is the ETA in local time when the ship is calculated to
reach the final waypoint of this route.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="unbounded" name="waypoint" type="tns:WaypointData">
<xsd:annotation>
<xsd:documentation>This is the list of waypoints.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>

View File

@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns="http://www.fleettracker.de/api/1.0" xmlns:tns="http://www.fleettracker.de/api/1.0" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.fleettracker.de/api/1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:include schemaLocation="position.xsd" />
<xsd:include schemaLocation="device.xsd" />
<xsd:include schemaLocation="route.xsd" />
<xsd:complexType name="ShipAppearence">
<xsd:annotation>
<xsd:documentation>This is how the ship is displayed.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="1" name="color" type="xsd:string">
<xsd:annotation>
<xsd:documentation>This is the color for not selected ship.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="selcolor" type="xsd:string">
<xsd:annotation>
<xsd:documentation>This is the color for selected ship.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ShipCategory">
<xsd:annotation>
<xsd:documentation>This is the ship category.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="number" type="xsd:int">
<xsd:annotation>
<xsd:documentation>This is the ship category number.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="name" type="xsd:string">
<xsd:annotation>
<xsd:documentation>The name of the category.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="AbstractShip">
<xsd:annotation>
<xsd:documentation>This is the abstract ship.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="sid" type="xsd:int">
<xsd:annotation>
<xsd:documentation>Database id</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" name="name" type="xsd:string">
<xsd:annotation>
<xsd:documentation>Ship name</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="charterShipName" type="xsd:string">
<xsd:annotation>
<xsd:documentation>Charter ship name</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="unbounded" name="pasttrack" type="tns:PasttrackPosition">
<xsd:annotation>
<xsd:documentation>The past positions of the ship including the latest position.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="photourl" type="xsd:string">
<xsd:annotation>
<xsd:documentation>Optional ULR to photo image.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" default="0" name="categoryNumber" type="xsd:int">
<xsd:annotation>
<xsd:documentation>This is the ship category. This attribute is used to group a fleet
into several parts.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="appearence" type="tns:ShipAppearence">
<xsd:annotation>
<xsd:documentation>This contains optional individual settings for the ship appearence.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="FleettrackerShip">
<xsd:annotation>
<xsd:documentation>This is a Fleettracker Ship.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent mixed="false">
<xsd:extension base="tns:AbstractShip">
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="1" name="imono" type="xsd:long">
<xsd:annotation>
<xsd:documentation>The IMO number of the ship.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="unbounded" name="pollDevices" type="tns:DeviceId">
<xsd:annotation>
<xsd:documentation>The optional set of devices.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="route" type="tns:RouteData">
<xsd:annotation>
<xsd:documentation>The optional route.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:schema>

View File

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns="http://www.fleettracker.de/api/1.0" xmlns:tns="http://www.fleettracker.de/api/1.0" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://www.fleettracker.de/api/1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:complexType name="OwnShipSpeedParams">
<xsd:annotation>
<xsd:documentation>The own ship parameter used for speed calculation.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="mmsiOwnShip" type="xsd:unsignedInt">
<xsd:annotation>
<xsd:documentation>
This is the MMSI of the own ship.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="maxOwnSpeedMPS" type="xsd:double">
<xsd:annotation>
<xsd:documentation>
Minimal own speed we can achieve.
Unit: Meter per
second
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="minOwnSpeedMPS" type="xsd:double">
<xsd:annotation>
<xsd:documentation>
Minimal own speed we can achieve.
Unit: Meter per
second
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="optOwnSpeedMPS" type="xsd:double">
<xsd:annotation>
<xsd:documentation>
Optimal speed we would like to go.
Unit: Meter
per second
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="maxPositiveAccelerationMPSS" type="xsd:double">
<xsd:annotation>
<xsd:documentation>
The maximal positive accelaration we can
achieve.
Unit: Meter per second^2
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="minNegativeAccelerationMPSS" type="xsd:double">
<xsd:annotation>
<xsd:documentation>
The minimal negative accelaration we can
achieve.
Unit: Meter per second^2
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="optAbsoluteAccelerationMPSS" type="xsd:double">
<xsd:annotation>
<xsd:documentation>
The optimal accelaration we would like to use if
we
want to go from current speed to optimal speed. This will be
applied
if we do not have any targets.
Example: We run 5 mph, our
optimal speed is 8 mph, then we use this
acceleration
to go from 5
to 8.
Unit: Meter per second^2
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>

View File

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns="http://www.fleettracker.de/api/1.0" xmlns:tns="http://www.fleettracker.de/api/1.0" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://www.fleettracker.de/api/1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:include schemaLocation="inlandPosition.xsd" />
<xsd:complexType name="Target">
<xsd:annotation>
<xsd:documentation>This represents a river.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="1" name="milesmarker" type="tns:MilesMarker">
<xsd:annotation>
<xsd:documentation>This is the current miles marker
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="1" maxOccurs="1" default="UNKNOWN" name="movingDirection">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="UNKNOWN" />
<xsd:enumeration value="INCREASING_MILES" />
<xsd:enumeration value="DECREASING_MILES" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="mmsi" type="xsd:int">
<xsd:annotation>
<xsd:documentation>This is the current miles marker
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="name" type="xsd:string">
<xsd:annotation>
<xsd:documentation>This is the name of the target
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element minOccurs="0" maxOccurs="1" name="inlandSpeed" type="tns:InlandSpeed">
<xsd:annotation>
<xsd:documentation>This is the current speed
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>

View File

@ -0,0 +1,149 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{FD0E59E4-58C9-4DAF-8024-D6F67E6ECC03}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>bsmd.herberg.FormService</RootNamespace>
<AssemblyName>bsmd.herberg.FormService</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="log4net">
<HintPath>..\packages\log4net.2.0.3\lib\net40-full\log4net.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.ServiceProcess" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="FormService.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="FormService.Designer.cs">
<DependentUpon>FormService.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
<DependentUpon>Settings.settings</DependentUpon>
</Compile>
<Compile Include="Service References\ServiceReferenceHerberg\Reference.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Reference.svcmap</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<None Include="Service References\ServiceReferenceHerberg\auth.xsd">
<SubType>Designer</SubType>
</None>
<None Include="Service References\ServiceReferenceHerberg\bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataInfoListResponse.datasource">
<DependentUpon>Reference.svcmap</DependentUpon>
</None>
<None Include="Service References\ServiceReferenceHerberg\bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataInfoListResponseData.datasource">
<DependentUpon>Reference.svcmap</DependentUpon>
</None>
<None Include="Service References\ServiceReferenceHerberg\bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataResponse.datasource">
<DependentUpon>Reference.svcmap</DependentUpon>
</None>
<None Include="Service References\ServiceReferenceHerberg\bsmd.herberg.FormService.ServiceReferenceHerberg.GetFormDataResponseData.datasource">
<DependentUpon>Reference.svcmap</DependentUpon>
</None>
<None Include="Service References\ServiceReferenceHerberg\device.xsd">
<SubType>Designer</SubType>
</None>
<None Include="Service References\ServiceReferenceHerberg\geoarea.xsd">
<SubType>Designer</SubType>
</None>
<None Include="Service References\ServiceReferenceHerberg\inlandPosition.xsd">
<SubType>Designer</SubType>
</None>
<None Include="Service References\ServiceReferenceHerberg\position.xsd">
<SubType>Designer</SubType>
</None>
<None Include="Service References\ServiceReferenceHerberg\route.xsd">
<SubType>Designer</SubType>
</None>
<None Include="Service References\ServiceReferenceHerberg\ship.xsd">
<SubType>Designer</SubType>
</None>
<None Include="Service References\ServiceReferenceHerberg\shipParams.xsd">
<SubType>Designer</SubType>
</None>
<None Include="Service References\ServiceReferenceHerberg\target.xsd">
<SubType>Designer</SubType>
</None>
<None Include="Service References\ServiceReferenceHerberg\WSAPIFormData.wsdl" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\bsmd.database\bsmd.database.csproj">
<Project>{19945af2-379b-46a5-b27a-303b5ec1d557}</Project>
<Name>bsmd.database</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Service References\" />
</ItemGroup>
<ItemGroup>
<WCFMetadataStorage Include="Service References\ServiceReferenceHerberg\" />
</ItemGroup>
<ItemGroup>
<None Include="Service References\ServiceReferenceHerberg\configuration91.svcinfo" />
</ItemGroup>
<ItemGroup>
<None Include="Service References\ServiceReferenceHerberg\configuration.svcinfo" />
</ItemGroup>
<ItemGroup>
<None Include="Service References\ServiceReferenceHerberg\Reference.svcmap">
<Generator>WCF Proxy Generator</Generator>
<LastGenOutput>Reference.cs</LastGenOutput>
</None>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="log4net" version="2.0.3" targetFramework="net45" />
</packages>

View File

@ -2,6 +2,8 @@
<repositories> <repositories>
<repository path="..\bsmd.dakosy\packages.config" /> <repository path="..\bsmd.dakosy\packages.config" />
<repository path="..\bsmd.database\packages.config" /> <repository path="..\bsmd.database\packages.config" />
<repository path="..\bsmd.dbh.ResponseService\packages.config" />
<repository path="..\bsmd.dbh\packages.config" /> <repository path="..\bsmd.dbh\packages.config" />
<repository path="..\bsmd.herberg.FormService\packages.config" />
<repository path="..\SendNSWMessageService\packages.config" /> <repository path="..\SendNSWMessageService\packages.config" />
</repositories> </repositories>

View File

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Mit XMLSpy v2012 rel. 2 sp1 (x64) (http://www.altova.com) von Heinz-Dieter Stöver (dbh Logistics IT AG) bearbeitet -->
<wsdl:definitions xmlns:conv="http://www.openuri.org/2002/04/soap/conversation/" xmlns:cw="http://www.openuri.org/2002/04/wsdl/conversation/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:jms="http://www.openuri.org/2002/04/wsdl/jms/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://www.openuri.org/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://www.openuri.org/">
<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="http://www.openuri.org/" xmlns:ope="http://www.openuri.org/" xmlns:s="http://www.w3.org/2001/XMLSchema">
<s:element name="root">
<s:complexType>
<s:sequence maxOccurs="1" minOccurs="1"/>
</s:complexType>
</s:element>
<s:element name="submitResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" name="messageID" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</wsdl:types>
<wsdl:message name="submitSoapIn">
<wsdl:part name="parameters" element="s0:root"/>
</wsdl:message>
<wsdl:message name="submitSoapOut">
<wsdl:part name="parameters" element="s0:submitResponse"/>
</wsdl:message>
<wsdl:portType name="Dbh_Osis_Answ_Ws">
<wsdl:operation name="root">
<wsdl:documentation>Submit a new NSW Request (only one NSWRequest per Submit!) to DBH ANSW OSIS, giving the senderID, messageID, messageType, the message. The method returns the OsisOrderNr (Unique message identifier generated by OSIS). </wsdl:documentation>
<wsdl:input message="s0:submitSoapIn"/>
<wsdl:output message="s0:submitSoapOut"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="Dbh_Osis_Answ_Ws" type="s0:Dbh_Osis_Answ_Ws">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="root">
<soap:operation soapAction="http://www.openuri.org/submit" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="Dbh_Osis_Answ_Ws">
<wsdl:documentation>Dbh_Osis_Answ_Ws is used to send Message to the DBH ANSW OSIS Application. Message format is XML.</wsdl:documentation>
<wsdl:port name="Dbh_Osis_Answ_Ws" binding="s0:Dbh_Osis_Answ_Ws">
<soap:address location="https://edi-gate.dbh.de/test/bsmd-soap"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>