in Arbeit!

This commit is contained in:
Daniel Schick 2015-04-30 06:31:56 +00:00
parent ff9bbf334a
commit 457751893c
53 changed files with 2715 additions and 669 deletions

BIN
NSW.rdp

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,6 +1,8 @@
GO
ALTER TABLE [dbo].[MessageCore]
ADD [HerbergFormGuid] UNIQUEIDENTIFIER NULL,
ADD
[InitialHIS] tinyint NULL,
[HerbergFormGuid] UNIQUEIDENTIFIER NULL,
[HerbergFormTemplateGuid] UNIQUEIDENTIFIER NULL;

View File

@ -0,0 +1,2 @@
GO
ALTER TABLE [dbo].[MDH] ALTER COLUMN [MDHSimplification] BIT NULL;

View File

@ -59,10 +59,28 @@
</Compile>
<Compile Include="eDeclaration.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="Request.cs" />
<Compile Include="sftp.cs" />
</ItemGroup>
<ItemGroup>
<None Include="..\bsmdKey.snk" />
<None Include="app.config" />
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\bsmd.database\bsmd.database.csproj">
<Project>{19945af2-379b-46a5-b27a-303b5ec1d557}</Project>
<Name>bsmd.database</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.

File diff suppressed because it is too large Load Diff

View File

@ -14,7 +14,7 @@ using System.Collections.Generic;
namespace bsmd.database
{
public class ATA : DatabaseEntity, IMessageClass
public class ATA : DatabaseEntity
{
public ATA()
@ -22,9 +22,7 @@ namespace bsmd.database
this.tablename = "[dbo].[ATA]";
}
#region Properties
public Message MessageHeader { get; set; }
#region Properties
public DateTime? ATAPortOfCall { get; set; }

View File

@ -14,7 +14,7 @@ using System.Collections.Generic;
namespace bsmd.database
{
public class ATD : DatabaseEntity, IMessageClass
public class ATD : DatabaseEntity
{
public ATD()
@ -22,9 +22,7 @@ namespace bsmd.database
this.tablename = "[dbo].[ATD]";
}
#region Properties
public Message MessageHeader { get; set; }
#region Properties
public DateTime? ATDPortOfCall { get; set; }

View File

@ -14,7 +14,7 @@ using System.Collections.Generic;
namespace bsmd.database
{
public class BRKA : DatabaseEntity, IMessageClass
public class BRKA : DatabaseEntity
{
public BRKA()
@ -24,8 +24,6 @@ namespace bsmd.database
#region Properties
public Message MessageHeader { get; set; }
public string BunkerFuelType { get; set; }
public float? BunkerFuelQuantity_TNE { get; set; }

View File

@ -14,7 +14,7 @@ using System.Collections.Generic;
namespace bsmd.database
{
public class BPOL : DatabaseEntity, IMessageClass
public class BPOL : DatabaseEntity
{
private List<PortOfItinerary> poi = new List<PortOfItinerary>();
@ -26,8 +26,6 @@ namespace bsmd.database
#region Properties
public Message MessageHeader { get; set; }
public bool? StowawaysOnBoard { get; set; }
public List<PortOfItinerary> PortOfItineraries { get { return this.poi; } }

View File

@ -14,7 +14,7 @@ using System.Collections.Generic;
namespace bsmd.database
{
public class BRKD : DatabaseEntity, IMessageClass
public class BRKD : DatabaseEntity
{
public BRKD()
@ -24,8 +24,6 @@ namespace bsmd.database
#region Properties
public Message MessageHeader { get; set; }
public string BunkerFuelType { get; set; }
public float? BunkerFuelQuantity_TNE { get; set; }

View File

@ -14,7 +14,7 @@ using System.Collections.Generic;
namespace bsmd.database
{
public class CREW : DatabaseEntity, IMessageClass
public class CREW : DatabaseEntity
{
public CREW()
@ -24,8 +24,6 @@ namespace bsmd.database
#region Properties
public Message MessageHeader { get; set; }
public string CrewMemberLastName { get; set; }
public string CrewMemberFirstName { get; set; }

View File

@ -128,6 +128,42 @@ namespace bsmd.database
return result;
}
public DatabaseEntity GetMessageById(Guid id)
{
Message aMessage = new Message();
SqlCommand cmd = new SqlCommand();
Message.LoadFilter filter = Message.LoadFilter.BY_ID;
aMessage.PrepareLoadCommand(cmd, filter, id);
SqlDataReader reader = this.PerformCommand(cmd);
List<DatabaseEntity> messages = aMessage.LoadList(reader);
List<Message> messageList = new List<Message>();
foreach (Message message in messages)
messageList.Add(message);
List<DatabaseEntity> result = this.LoadMessageDependencies(messageList);
if(((Message)result[0]).MessageCoreId.HasValue)
result[0].MessageCore = this.GetMessageCoreById(((Message)result[0]).MessageCoreId.Value);
return result[0];
}
public MessageCore GetMessageCoreById(Guid id)
{
MessageCore aCore = new MessageCore();
SqlCommand cmd = new SqlCommand();
Message.LoadFilter filter = Message.LoadFilter.BY_ID;
aCore.PrepareLoadCommand(cmd, filter, id);
SqlDataReader reader = this.PerformCommand(cmd);
List<DatabaseEntity> cores = aCore.LoadList(reader);
if (cores.Count > 0) return cores[0] as MessageCore;
return null;
}
public void Save(DatabaseEntity entity)
{
SqlCommand cmd = new SqlCommand();
@ -186,7 +222,7 @@ namespace bsmd.database
SqlDataReader reader = this.PerformCommand(cmd);
List<DatabaseEntity> statList = msgClass.LoadList(reader);
if (statList.Count > 0) message.DerivedMessage = statList[0];
((IMessageClass)msgClass).MessageHeader = message;
msgClass.MessageHeader = message;
this.LoadDependingLists(msgClass);
result.Add(msgClass);
}

View File

@ -30,6 +30,11 @@ namespace bsmd.database
/// </summary>
public MessageCore MessageCore { get; set; }
/// <summary>
/// gemeinschaftliche Daten
/// </summary>
public Message MessageHeader { get; set; }
/// <summary>
/// Status für Services
/// </summary>

View File

@ -14,7 +14,7 @@ using System.Collections.Generic;
namespace bsmd.database
{
public class INFO : DatabaseEntity, IMessageClass
public class INFO : DatabaseEntity
{
public INFO()
@ -22,9 +22,7 @@ namespace bsmd.database
this.tablename = "[dbo].[INFO]";
}
#region Properties
public Message MessageHeader { get; set; }
#region Properties
public byte? ShippingArea { get; set; }

View File

@ -14,7 +14,7 @@ using System.Collections.Generic;
namespace bsmd.database
{
public class LADG : DatabaseEntity, IMessageClass
public class LADG : DatabaseEntity
{
public LADG()
@ -22,9 +22,7 @@ namespace bsmd.database
this.tablename = "[dbo].[LADG]";
}
#region Properties
public Message MessageHeader { get; set; }
#region Properties
public byte? CargoHandlingType { get; set; }

View File

@ -14,7 +14,7 @@ using System.Collections.Generic;
namespace bsmd.database
{
public class MDH : DatabaseEntity, IMessageClass
public class MDH : DatabaseEntity
{
private List<PortOfCallLast30Days> portOfCallLast30Days = new List<PortOfCallLast30Days>();
@ -26,11 +26,9 @@ namespace bsmd.database
#region Properties
public Message MessageHeader { get; set; }
public List<PortOfCallLast30Days> PortOfCallLast30Days { get { return this.portOfCallLast30Days; } }
public string MDHSimplification { get; set; }
public bool? MDHSimplification { get; set; }
public string PortOfCallWhereCompleteMDHNotified { get; set; }
@ -167,12 +165,9 @@ namespace bsmd.database
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(1)) mdh.MDHSimplification = reader.GetBoolean(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);

View File

@ -52,7 +52,8 @@ namespace bsmd.database
WDSP_ID,
BPOL_ID,
SEC_ID,
HERBERG_FORMGUID
HERBERG_FORMGUID,
BY_ID
}
/// <summary>
@ -60,14 +61,15 @@ namespace bsmd.database
/// </summary>
public enum BSMDStatus
{
UNDEFINED,
UNDEFINED = 0,
PREPARE,
TOSEND,
SENT,
RESPONDED,
FAILURE,
REPORTREQUESTED,
ARCHIVED
ARCHIVED,
HIS_FAILURE_DBH
}
/// <summary>
@ -97,6 +99,8 @@ namespace bsmd.database
public Guid? MessageId { get; set; }
public Guid? MessageCoreId { get { return this.messageCoreId; } }
public DateTime? SentAt { get; set; }
public DateTime? ReceivedAt { get; set; }
@ -212,6 +216,12 @@ namespace bsmd.database
((SqlCommand)cmd).Parameters.AddWithValue("@BSMDSTATUS", criteria[0]);
break;
}
case LoadFilter.BY_ID:
{
query += "WHERE Id = @ID";
((SqlCommand)cmd).Parameters.AddWithValue("@ID", criteria[0]);
break;
}
case LoadFilter.ALL:
default:
break;

View File

@ -14,7 +14,7 @@ using System.Collections.Generic;
namespace bsmd.database
{
public class NAME : DatabaseEntity, IMessageClass
public class NAME : DatabaseEntity
{
public NAME()
@ -24,8 +24,6 @@ namespace bsmd.database
#region Properties
public Message MessageHeader { get; set; }
public string NameOfMaster { get; set; }
#endregion

View File

@ -14,7 +14,7 @@ using System.Collections.Generic;
namespace bsmd.database
{
public class NOA_NOD : DatabaseEntity, IMessageClass
public class NOA_NOD : DatabaseEntity
{
public NOA_NOD()
@ -24,8 +24,6 @@ namespace bsmd.database
#region Properties
public Message MessageHeader { get; set; }
public DateTime? ETAToPortOfCall { get; set; }
public DateTime? ETDFromPortOfCall { get; set; }

View File

@ -14,7 +14,7 @@ using System.Collections.Generic;
namespace bsmd.database
{
public class PAS : DatabaseEntity, IMessageClass
public class PAS : DatabaseEntity
{
public PAS()
@ -22,9 +22,7 @@ namespace bsmd.database
this.tablename = "[dbo].[PAS]";
}
#region Properties
public Message MessageHeader { get; set; }
#region Properties
public string PassengerLastName { get; set; }

View File

@ -14,7 +14,7 @@ using System.Collections.Generic;
namespace bsmd.database
{
public class POBA : DatabaseEntity, IMessageClass
public class POBA : DatabaseEntity
{
public POBA()
@ -24,8 +24,6 @@ namespace bsmd.database
#region Properties
public Message MessageHeader { get; set; }
public int? TotalPersonsOnBoardUponArrival { get; set; }
public int? TotalCrewMembersOnBoardUponArrival { get; set; }

View File

@ -14,7 +14,7 @@ using System.Collections.Generic;
namespace bsmd.database
{
public class POBD : DatabaseEntity, IMessageClass
public class POBD : DatabaseEntity
{
public POBD()
@ -22,9 +22,7 @@ namespace bsmd.database
this.tablename = "[dbo].[POBD]";
}
#region Properties
public Message MessageHeader { get; set; }
#region Properties
public int? TotalPersonsOnBoardUponDeparture { get; set; }

View File

@ -14,7 +14,7 @@ using System.Collections.Generic;
namespace bsmd.database
{
public class PRE72H : DatabaseEntity, IMessageClass
public class PRE72H : DatabaseEntity
{
public PRE72H()
@ -22,9 +22,7 @@ namespace bsmd.database
this.tablename = "[dbo].[PRE72H]";
}
#region Properties
public Message MessageHeader { get; set; }
#region Properties
public bool? Tanker { get; set; }

View File

@ -14,7 +14,7 @@ using System.Collections.Generic;
namespace bsmd.database
{
public class SEC : DatabaseEntity, IMessageClass
public class SEC : DatabaseEntity
{
private List<LastTenPortFacilitiesCalled> ltpfc = new List<LastTenPortFacilitiesCalled>();
@ -26,9 +26,7 @@ namespace bsmd.database
this.tablename = "[dbo].[SEC]";
}
#region Properties
public Message MessageHeader { get; set; }
#region Properties
public string SECSimplification { get; set; }

View File

@ -14,7 +14,7 @@ using System.Collections.Generic;
namespace bsmd.database
{
public class SERV : DatabaseEntity, IMessageClass
public class SERV : DatabaseEntity
{
public SERV()
@ -22,9 +22,7 @@ namespace bsmd.database
this.tablename = "[dbo].[SERV]";
}
#region Properties
public Message MessageHeader { get; set; }
#region Properties
public string ServiceName { get; set; }

View File

@ -14,7 +14,7 @@ using System.Collections.Generic;
namespace bsmd.database
{
public class STAT : DatabaseEntity, IMessageClass
public class STAT : DatabaseEntity
{
public STAT()
@ -24,8 +24,6 @@ namespace bsmd.database
#region Properties
public Message MessageHeader { get; set; }
public string ShipName { get; set; }
public string CallSign { get; set; }

View File

@ -14,7 +14,7 @@ using System.Collections.Generic;
namespace bsmd.database
{
public class TIEFA : DatabaseEntity, IMessageClass
public class TIEFA : DatabaseEntity
{
public TIEFA()
@ -22,9 +22,7 @@ namespace bsmd.database
this.tablename = "[dbo].[TIEFA]";
}
#region Properties
public Message MessageHeader { get; set; }
#region Properties
public float? DraughtUponArrival_DMT { get; set; }

View File

@ -14,7 +14,7 @@ using System.Collections.Generic;
namespace bsmd.database
{
public class TIEFD : DatabaseEntity, IMessageClass
public class TIEFD : DatabaseEntity
{
public TIEFD()
@ -24,8 +24,6 @@ namespace bsmd.database
#region Properties
public Message MessageHeader { get; set; }
public float? DraughtUponDeparture_DMT { get; set; }
#endregion

View File

@ -14,7 +14,7 @@ using System.Collections.Generic;
namespace bsmd.database
{
public class TOWA : DatabaseEntity, IMessageClass
public class TOWA : DatabaseEntity
{
public TOWA()
@ -22,9 +22,7 @@ namespace bsmd.database
this.tablename = "[dbo].[TOWA]";
}
#region Properties
public Message MessageHeader { get; set; }
#region Properties
public string TowageOnArrivalName { get; set; }

View File

@ -14,7 +14,7 @@ using System.Collections.Generic;
namespace bsmd.database
{
public class TOWD : DatabaseEntity, IMessageClass
public class TOWD : DatabaseEntity
{
public TOWD()
@ -22,9 +22,7 @@ namespace bsmd.database
this.tablename = "[dbo].[TOWD]";
}
#region Properties
public Message MessageHeader { get; set; }
#region Properties
public string TowageOnDepartureName { get; set; }

View File

@ -14,7 +14,7 @@ using System.Collections.Generic;
namespace bsmd.database
{
public class WAS : DatabaseEntity, IMessageClass
public class WAS : DatabaseEntity
{
private List<WasteDisposalServiceProvider> wdsp = new List<WasteDisposalServiceProvider>();
@ -26,8 +26,6 @@ namespace bsmd.database
#region Properties
public Message MessageHeader { get; set; }
public bool? WasteDisposalValidExemption { get; set; }
public string LastWasteDisposalPort { get; set; }

View File

@ -63,7 +63,6 @@
<Compile Include="CREW.cs" />
<Compile Include="DBManager.cs" />
<Compile Include="DatabaseEntity.cs" />
<Compile Include="IMessageClass.cs" />
<Compile Include="INFO.cs" />
<Compile Include="LADG.cs" />
<Compile Include="MDH.cs" />

View File

@ -20,7 +20,7 @@
<!-- To avoid disclosing metadata information, set the values below to false before deployment -->
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
@ -40,7 +40,7 @@
<applicationSettings>
<bsmd.dbh.ResponseService.Properties.Settings>
<setting name="DBConnectionString" serializeAs="String">
<value>replace me!</value>
<value>Initial Catalog=nsw;Data Source=SMSPLASH01\SQLEXPRESS;Uid=dfuser;pwd=dfpasswd;Persist Security Info=False;Connection Reset=false</value>
</setting>
</bsmd.dbh.ResponseService.Properties.Settings>
</applicationSettings>

View File

@ -63,6 +63,7 @@
</ItemGroup>
<ItemGroup>
<Content Include="ResponseService.svc" />
<Content Include="todo.txt" />
<Content Include="Web.config">
<SubType>Designer</SubType>
</Content>

View File

@ -0,0 +1,4 @@
Nachschauen im Protokoll: Liefert die Response nur Visit/TransitID und die Failure/Error
Listen oder noch anderen Informationen?
Speichern der zurückgemeldeten Datensätze

View File

@ -0,0 +1,716 @@
// ------------------------------------------------------------------------------
// <auto-generated>
// Generated by Xsd2Code. Version 3.4.0.32989
// <NameSpace>bsmd.dbh.response</NameSpace><Collection>List</Collection><codeType>CSharp</codeType><EnableDataBinding>False</EnableDataBinding><EnableLazyLoading>False</EnableLazyLoading><TrackingChangesEnable>False</TrackingChangesEnable><GenTrackingClasses>False</GenTrackingClasses><HidePrivateFieldInIDE>False</HidePrivateFieldInIDE><EnableSummaryComment>False</EnableSummaryComment><VirtualProp>False</VirtualProp><IncludeSerializeMethod>False</IncludeSerializeMethod><UseBaseClass>False</UseBaseClass><GenBaseClass>False</GenBaseClass><GenerateCloneMethod>False</GenerateCloneMethod><GenerateDataContracts>False</GenerateDataContracts><CodeBaseTag>Net20</CodeBaseTag><SerializeMethodName>Serialize</SerializeMethodName><DeserializeMethodName>Deserialize</DeserializeMethodName><SaveToFileMethodName>SaveToFile</SaveToFileMethodName><LoadFromFileMethodName>LoadFromFile</LoadFromFileMethodName><GenerateXMLAttributes>False</GenerateXMLAttributes><OrderXMLAttrib>False</OrderXMLAttrib><EnableEncoding>False</EnableEncoding><AutomaticProperties>False</AutomaticProperties><GenerateShouldSerialize>False</GenerateShouldSerialize><DisableDebug>False</DisableDebug><PropNameSpecified>Default</PropNameSpecified><Encoder>UTF8</Encoder><CustomUsings></CustomUsings><ExcludeIncludedTypes>False</ExcludeIncludedTypes><EnableInitializeFields>True</EnableInitializeFields>
// </auto-generated>
// ------------------------------------------------------------------------------
namespace bsmd.dbh.response
{
using System;
using System.Diagnostics;
using System.Xml.Serialization;
using System.Collections;
using System.Xml.Schema;
using System.ComponentModel;
using System.Collections.Generic;
public partial class Root
{
private string versionField;
private string messageIdField;
private string visitIdField;
private string transitIdField;
private System.DateTime timestampField;
private string senderField;
private string senderReferenceField;
private RootType typeField;
private RootReportingClassesFull reportingClassesFullField;
private RootReportingClassesPartial reportingClassesPartialField;
private RootReportingClassesError reportingClassesErrorField;
private RootReportingClassesResetted reportingClassesResettedField;
private List<RootMessage> messagesField;
public Root()
{
this.messagesField = new List<RootMessage>();
this.reportingClassesResettedField = new RootReportingClassesResetted();
this.reportingClassesErrorField = new RootReportingClassesError();
this.reportingClassesPartialField = new RootReportingClassesPartial();
this.reportingClassesFullField = new RootReportingClassesFull();
}
public string Version
{
get
{
return this.versionField;
}
set
{
this.versionField = value;
}
}
public string MessageId
{
get
{
return this.messageIdField;
}
set
{
this.messageIdField = value;
}
}
public string VisitId
{
get
{
return this.visitIdField;
}
set
{
this.visitIdField = value;
}
}
public string TransitId
{
get
{
return this.transitIdField;
}
set
{
this.transitIdField = value;
}
}
public System.DateTime Timestamp
{
get
{
return this.timestampField;
}
set
{
this.timestampField = value;
}
}
public string Sender
{
get
{
return this.senderField;
}
set
{
this.senderField = value;
}
}
public string SenderReference
{
get
{
return this.senderReferenceField;
}
set
{
this.senderReferenceField = value;
}
}
public RootType Type
{
get
{
return this.typeField;
}
set
{
this.typeField = value;
}
}
public RootReportingClassesFull ReportingClassesFull
{
get
{
return this.reportingClassesFullField;
}
set
{
this.reportingClassesFullField = value;
}
}
public RootReportingClassesPartial ReportingClassesPartial
{
get
{
return this.reportingClassesPartialField;
}
set
{
this.reportingClassesPartialField = value;
}
}
public RootReportingClassesError ReportingClassesError
{
get
{
return this.reportingClassesErrorField;
}
set
{
this.reportingClassesErrorField = value;
}
}
public RootReportingClassesResetted ReportingClassesResetted
{
get
{
return this.reportingClassesResettedField;
}
set
{
this.reportingClassesResettedField = value;
}
}
[System.Xml.Serialization.XmlArrayItemAttribute("Message", IsNullable = false)]
public List<RootMessage> Messages
{
get
{
return this.messagesField;
}
set
{
this.messagesField = value;
}
}
}
public enum RootType
{
/// <remarks/>
VISIT,
/// <remarks/>
TRANSIT,
/// <remarks/>
DATA,
/// <remarks/>
RESET,
/// <remarks/>
CANCEL,
}
public partial class RootReportingClassesFull
{
private List<RootReportingClassesFullReportingClass> reportingClassField;
public RootReportingClassesFull()
{
this.reportingClassField = new List<RootReportingClassesFullReportingClass>();
}
public List<RootReportingClassesFullReportingClass> ReportingClass
{
get
{
return this.reportingClassField;
}
set
{
this.reportingClassField = value;
}
}
}
public enum RootReportingClassesFullReportingClass
{
/// <remarks/>
NOA_NOD,
/// <remarks/>
ATA,
/// <remarks/>
ATD,
/// <remarks/>
SEC,
/// <remarks/>
POBA,
/// <remarks/>
POBD,
/// <remarks/>
NAME,
/// <remarks/>
TIEFA,
/// <remarks/>
TIEFD,
/// <remarks/>
BKRA,
/// <remarks/>
BKRD,
/// <remarks/>
STAT,
/// <remarks/>
LADG,
/// <remarks/>
INFO,
/// <remarks/>
SERV,
/// <remarks/>
PRE72H,
/// <remarks/>
MDH,
/// <remarks/>
WAS,
/// <remarks/>
CREW,
/// <remarks/>
PAS,
/// <remarks/>
BPOL,
/// <remarks/>
TOWA,
/// <remarks/>
TOWD,
/// <remarks/>
HAZA,
/// <remarks/>
HAZD,
}
public partial class RootReportingClassesPartial
{
private List<RootReportingClassesPartialReportingClass> reportingClassField;
public RootReportingClassesPartial()
{
this.reportingClassField = new List<RootReportingClassesPartialReportingClass>();
}
public List<RootReportingClassesPartialReportingClass> ReportingClass
{
get
{
return this.reportingClassField;
}
set
{
this.reportingClassField = value;
}
}
}
public enum RootReportingClassesPartialReportingClass
{
/// <remarks/>
NOA_NOD,
/// <remarks/>
ATA,
/// <remarks/>
ATD,
/// <remarks/>
SEC,
/// <remarks/>
POBA,
/// <remarks/>
POBD,
/// <remarks/>
NAME,
/// <remarks/>
TIEFA,
/// <remarks/>
TIEFD,
/// <remarks/>
BKRA,
/// <remarks/>
BKRD,
/// <remarks/>
STAT,
/// <remarks/>
LADG,
/// <remarks/>
INFO,
/// <remarks/>
SERV,
/// <remarks/>
PRE72H,
/// <remarks/>
MDH,
/// <remarks/>
WAS,
/// <remarks/>
CREW,
/// <remarks/>
PAS,
/// <remarks/>
BPOL,
/// <remarks/>
TOWA,
/// <remarks/>
TOWD,
/// <remarks/>
HAZA,
/// <remarks/>
HAZD,
}
public partial class RootReportingClassesError
{
private List<RootReportingClassesErrorReportingClass> reportingClassField;
public RootReportingClassesError()
{
this.reportingClassField = new List<RootReportingClassesErrorReportingClass>();
}
public List<RootReportingClassesErrorReportingClass> ReportingClass
{
get
{
return this.reportingClassField;
}
set
{
this.reportingClassField = value;
}
}
}
public enum RootReportingClassesErrorReportingClass
{
/// <remarks/>
NOA_NOD,
/// <remarks/>
ATA,
/// <remarks/>
ATD,
/// <remarks/>
SEC,
/// <remarks/>
POBA,
/// <remarks/>
POBD,
/// <remarks/>
NAME,
/// <remarks/>
TIEFA,
/// <remarks/>
TIEFD,
/// <remarks/>
BKRA,
/// <remarks/>
BKRD,
/// <remarks/>
STAT,
/// <remarks/>
LADG,
/// <remarks/>
INFO,
/// <remarks/>
SERV,
/// <remarks/>
PRE72H,
/// <remarks/>
MDH,
/// <remarks/>
WAS,
/// <remarks/>
CREW,
/// <remarks/>
PAS,
/// <remarks/>
BPOL,
/// <remarks/>
TOWA,
/// <remarks/>
TOWD,
/// <remarks/>
HAZA,
/// <remarks/>
HAZD,
}
public partial class RootReportingClassesResetted
{
private List<RootReportingClassesResettedReportingClass> reportingClassField;
public RootReportingClassesResetted()
{
this.reportingClassField = new List<RootReportingClassesResettedReportingClass>();
}
public List<RootReportingClassesResettedReportingClass> ReportingClass
{
get
{
return this.reportingClassField;
}
set
{
this.reportingClassField = value;
}
}
}
public enum RootReportingClassesResettedReportingClass
{
/// <remarks/>
NOA_NOD,
/// <remarks/>
ATA,
/// <remarks/>
ATD,
/// <remarks/>
SEC,
/// <remarks/>
POBA,
/// <remarks/>
POBD,
/// <remarks/>
NAME,
/// <remarks/>
TIEFA,
/// <remarks/>
TIEFD,
/// <remarks/>
BKRA,
/// <remarks/>
BKRD,
/// <remarks/>
STAT,
/// <remarks/>
LADG,
/// <remarks/>
INFO,
/// <remarks/>
SERV,
/// <remarks/>
PRE72H,
/// <remarks/>
MDH,
/// <remarks/>
WAS,
/// <remarks/>
CREW,
/// <remarks/>
PAS,
/// <remarks/>
BPOL,
/// <remarks/>
TOWA,
/// <remarks/>
TOWD,
/// <remarks/>
HAZA,
/// <remarks/>
HAZD,
}
public partial class RootMessage
{
private string idField;
private RootMessageType typeField;
private string locationField;
private string textField;
public string ID
{
get
{
return this.idField;
}
set
{
this.idField = value;
}
}
public RootMessageType Type
{
get
{
return this.typeField;
}
set
{
this.typeField = value;
}
}
public string Location
{
get
{
return this.locationField;
}
set
{
this.locationField = value;
}
}
public string Text
{
get
{
return this.textField;
}
set
{
this.textField = value;
}
}
}
public enum RootMessageType
{
/// <remarks/>
INFO,
/// <remarks/>
WARNING,
/// <remarks/>
VIOLATION,
/// <remarks/>
ERROR,
}
}

View File

@ -43,6 +43,8 @@
<xs:documentation>Timestamp, when the message is sent</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Sender" type="xs:string"/>
<xs:element name="SenderReference" type="xs:string"/>
<xs:element name="Type">
<xs:annotation>
<xs:documentation>The message type (should be the same as in the request message):

View File

@ -25,16 +25,23 @@ namespace bsmd.dbh
if (dbEntity == null) return false;
Message aMessage = null;
RootType rootType = RootType.DATA;
if (dbEntity.GetType().IsAssignableFrom(typeof(Message)))
{
aMessage = (Message)dbEntity;
rootType = aMessage.MessageCore.IsTransit ? RootType.TRANSIT : RootType.VISIT;
aMessage.SentAt = DateTime.Now;
}
else
{
aMessage = dbEntity.MessageHeader;
}
if (aMessage.ReportingParty == null)
{
IMessageClass msgClass = (IMessageClass)dbEntity;
aMessage = msgClass.MessageHeader;
_log.ErrorFormat("Reporting party not set on message {0}", aMessage.Id);
return false;
}
// map message to dbh NSWRequest object
@ -56,10 +63,10 @@ namespace bsmd.dbh
rp.RPType = (RootReportingPartyRPType)aMessage.ReportingParty.ReportingPartyType.Value;
DateTime timestamp = DateTime.Now;
string version = "1.9";
string version = "2.0";
object item = null;
string senderReference = Guid.NewGuid().ToString(); // TODO
RootType rootType = RootType.DATA;
string senderReference = dbEntity.Id.ToString();
ItemChoiceType2 itemChoiceType2 = ItemChoiceType2.Visit; // ?
switch (aMessage.MessageNotificationClass)
@ -81,7 +88,7 @@ namespace bsmd.dbh
rootVisit.ItemElementName = ItemChoiceType.ENINumber;
rootVisit.Item = aMessage.MessageCore.ENI;
}
rootVisit.PortOfCall = aMessage.MessageCore.PoC;
rootVisit.ETAPortOfCall = aMessage.MessageCore.ETA.Value;
item = rootVisit;
@ -239,10 +246,20 @@ namespace bsmd.dbh
}
// send object
string result = client.Root(version, timestamp, Properties.Settings.Default.Sender, senderReference, rootType,
item, itemChoiceType2, null, rp, null, null);
return false;
bool returnval = true;
try
{
string result = client.Root(version, timestamp, Properties.Settings.Default.Sender, senderReference, rootType,
item, itemChoiceType2, null, rp, null, null);
}
catch (Exception ex)
{
_log.ErrorFormat("exception on message send: {0}", ex.Message);
returnval = false;
}
return returnval;
}
}

View File

@ -11,6 +11,8 @@ using System;
using System.Collections.Generic;
using bsmd.database;
using log4net;
using System.IO;
using System.Xml.Serialization;
namespace bsmd.dbh
{
@ -19,58 +21,95 @@ namespace bsmd.dbh
private static ILog _log = LogManager.GetLogger("dbh Response");
public static void ProcessResponse(response.Root response, string connectionString)
public static void ProcessResponse(response.Root aResponse, string connectionString)
{
_log.InfoFormat("processing message type {0}, version {1}", response.Type, response.Version);
_log.InfoFormat("processing message type {0}, version {1}", aResponse.Type, aResponse.Version);
XmlSerializer serializer = new XmlSerializer(typeof(response.Root));
using(StringWriter textWriter = new StringWriter())
{
serializer.Serialize(textWriter, aResponse);
_log.Debug(textWriter.ToString());
}
if (DBManager.Instance.Connect(connectionString))
{
// Status zu den jeweiligen Nachrichten. Bei uns sollte die Anzahl hier immer 1 sein, da wir die Dinger
// einzeln verschicken.
for (int i = 0; i < response.Messages.Length; i++)
if (aResponse.Messages != null)
{
switch (response.Messages[i].Type)
// Status zu den jeweiligen Nachrichten. Bei uns sollte die Anzahl hier immer 1 sein, da wir die Dinger
// einzeln verschicken.
for (int i = 0; i < aResponse.Messages.Count; i++)
{
case dbh.response.RootMessageType.ERROR:
MessageError messageError = new MessageError();
messageError.ErrorText = response.Messages[i].Text;
// messageError.ErrorCode =
_log.InfoFormat("message {0} type {1}: {2}", i,
aResponse.Messages[i].Type,
aResponse.Messages[i].Text ?? "null");
switch (aResponse.Messages[i].Type)
{
case dbh.response.RootMessageType.ERROR:
MessageError messageError = new MessageError();
messageError.ErrorText = aResponse.Messages[i].Text;
// messageError.ErrorCode =
break;
case dbh.response.RootMessageType.VIOLATION:
break;
case dbh.response.RootMessageType.VIOLATION:
break;
case dbh.response.RootMessageType.WARNING:
case dbh.response.RootMessageType.INFO:
default:
break;
case dbh.response.RootMessageType.WARNING:
case dbh.response.RootMessageType.INFO:
default:
break;
break;
}
}
}
switch (response.Type)
Guid messageId;
if (!Guid.TryParse(aResponse.SenderReference, out messageId))
{
case dbh.response.RootType.VISIT:
break;
case dbh.response.RootType.TRANSIT:
_log.WarnFormat("SenderReference {0} is not a guid, skipping message processing!", aResponse.SenderReference);
return;
}
DatabaseEntity dbEntity = DBManager.Instance.GetMessageById(messageId);
if ((dbEntity != null) && (dbEntity.MessageCore != null))
{
Message aMessage = null;
if (dbEntity.GetType().IsAssignableFrom(typeof(Message)))
aMessage = (Message)dbEntity;
else
aMessage = dbEntity.MessageHeader;
break;
case dbh.response.RootType.CANCEL:
switch (aResponse.Type)
{
case dbh.response.RootType.VISIT:
// neue VISIT - ID
aMessage.MessageCore.VisitId = aResponse.VisitId;
break;
case dbh.response.RootType.RESET:
break;
case dbh.response.RootType.TRANSIT:
aMessage.MessageCore.TransitId = aResponse.TransitId;
break;
case dbh.response.RootType.DATA:
break;
case dbh.response.RootType.CANCEL:
break;
break;
case dbh.response.RootType.RESET:
break;
case dbh.response.RootType.DATA:
break;
}
//aMessage.Status = Message.MessageStatus.
aMessage.InternalStatus = Message.BSMDStatus.RESPONDED;
DBManager.Instance.Save(aMessage);
}
else
{
_log.ErrorFormat("no entry found in DB for sender reference {0}", messageId);
}
DBManager.Instance.Disconnect();
}

View File

@ -11,7 +11,7 @@
<value>https://edi-gate.dbh.de/test/bsmd-soap</value>
</setting>
<setting name="Sender" serializeAs="String">
<value>00007009</value>
<value>00003050</value>
</setting>
</bsmd.dbh.Properties.Settings>
</userSettings>

View File

@ -60,7 +60,7 @@
<Link>Properties\AssemblyProjectKeyInfo.cs</Link>
</Compile>
<Compile Include="NSWRequest.cs" />
<Compile Include="NSWResponse.cs" />
<Compile Include="NSWResponse.designer.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>

View File

@ -0,0 +1,22 @@
<configuration>
<configSections>
<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="E:\Temp\dbh.Response.log" />
<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>
</configuration>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
nsw/dakosy/XML Visit_en.pdf Normal file

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff