fixed errors and implemented sending for CREWA/D PASA/D through dbh

This commit is contained in:
Daniel Schick 2023-10-27 12:28:55 +02:00
parent 8249c8f01d
commit 805ef43551

View File

@ -25,7 +25,7 @@ namespace bsmd.dbh
try
{
Root root = new Root();
root.Version = RootVersion.Item71;
root.Version = RootVersion.Item72;
root.SourceDocumentVersion = "7.1";
root.Timestamp = DateTime.Now;
string filenameComponent;
@ -461,38 +461,41 @@ namespace bsmd.dbh
#endregion
#region CREW
#region CREWA
case Message.NotificationClass.CREW:
case Message.NotificationClass.CREW: // this is CREWA
{
RootCREW rootCREW = new RootCREW();
RootCREWA rootCREW = new RootCREWA();
rootCREW.CrewMember = new RootCREWCrewMember[message.Elements.Count];
rootCREW.CrewMember = new RootCREWACrewMember[message.Elements.Count];
for (int i = 0; i < message.Elements.Count; i++)
{
CREW crew = message.Elements[i] as CREW;
rootCREW.CrewMember[i] = new RootCREWCrewMember();
rootCREW.CrewMember[i] = new RootCREWACrewMember();
if (crew.CrewMemberDateOfBirth.HasValue)
rootCREW.CrewMember[i].CrewMemberDateOfBirth = crew.CrewMemberDateOfBirth.Value;
rootCREW.CrewMember[i].CrewMemberDuty = crew.CrewMemberDuty;
rootCREW.CrewMember[i].CrewMemberFirstName = crew.CrewMemberFirstName;
rootCREW.CrewMember[i].CrewMemberGenderSpecified = crew.CrewMemberGender.HasValue;
if (crew.CrewMemberGender.HasValue)
rootCREW.CrewMember[i].CrewMemberGender = SetGender(crew.CrewMemberGender.Value);
rootCREW.CrewMember[i].CrewMemberIdentityDocumentId = crew.CrewMemberIdentityDocumentId;
if (crew.CrewMemberIdentityDocumentType.HasValue)
rootCREW.CrewMember[i].CrewMemberIdentityDocumentType = (IdDocType)crew.CrewMemberIdentityDocumentType.Value;
rootCREW.CrewMember[i].CrewMemberLastName = crew.CrewMemberLastName;
rootCREW.CrewMember[i].CrewMemberNationality = crew.CrewMemberNationality;
rootCREW.CrewMember[i].CrewMemberPlaceOfBirth = crew.CrewMemberPlaceOfBirth;
rootCREW.CrewMember[i].CrewMemberVisaNumber = crew.CrewMemberVisaNumber;
if (crew.CrewMemberIdentityDocumentIssuingState.Trim().Length == 2)
rootCREW.CrewMember[i].CrewMemberIdentityDocumentIssuingState = crew.CrewMemberIdentityDocumentIssuingState;
if (crew.CrewMemberIdentityDocumentExpiryDate.HasValue)
rootCREW.CrewMember[i].CrewMemberIdentityDocumentExpiryDate = crew.CrewMemberIdentityDocumentExpiryDate.Value;
rootCREW.CrewMember[i].DateOfBirth = crew.CrewMemberDateOfBirth.Value;
rootCREW.CrewMember[i].DutyOnBoard = crew.CrewMemberDuty;
rootCREW.CrewMember[i].FirstName = crew.CrewMemberFirstName;
rootCREW.CrewMember[i].LastName = crew.CrewMemberLastName;
rootCREW.CrewMember[i].Nationality = crew.CrewMemberNationality;
rootCREW.CrewMember[i].PlaceOfBirth = crew.CrewMemberPlaceOfBirth;
rootCREW.CrewMember[i].Gender = SetGender(crew.CrewMemberGender.Value);
if (crew.NotificationSchengen ?? false)
{
rootCREW.CrewMember[i].DetailsSchengen = new RootCREWACrewMemberDetailsSchengen();
rootCREW.CrewMember[i].DetailsSchengen.IdentityDocumentId = crew.CrewMemberIdentityDocumentId;
if (crew.CrewMemberIdentityDocumentType.HasValue)
rootCREW.CrewMember[i].DetailsSchengen.IdentityDocumentType = (IdDocType)crew.CrewMemberIdentityDocumentType.Value;
rootCREW.CrewMember[i].DetailsSchengen.VisaNumber = crew.CrewMemberVisaNumber;
if (crew.CrewMemberIdentityDocumentIssuingState.Trim().Length == 2)
rootCREW.CrewMember[i].DetailsSchengen.IdentityDocumentIssuingState = crew.CrewMemberIdentityDocumentIssuingState;
if (crew.CrewMemberIdentityDocumentExpiryDate.HasValue)
rootCREW.CrewMember[i].DetailsSchengen.IdentityDocumentExpiryDate = crew.CrewMemberIdentityDocumentExpiryDate.Value;
}
}
// rootCREW.ReportingParty = rp;
root.Items = new object[1];
root.Items[0] = rootCREW;
@ -501,41 +504,153 @@ namespace bsmd.dbh
#endregion
#region PAS
case Message.NotificationClass.PAS:
#region CREWD
case Message.NotificationClass.CREWD:
{
RootPAS rootPAS = new RootPAS();
rootPAS.Passenger = new RootPASPassenger[message.Elements.Count];
RootCREWD rootCREW = new RootCREWD();
rootCREW.CrewMember = new RootCREWDCrewMember[message.Elements.Count];
for (int i = 0; i < message.Elements.Count; i++)
{
CREW crew = message.Elements[i] as CREW;
rootCREW.CrewMember[i] = new RootCREWDCrewMember();
if (crew.CrewMemberDateOfBirth.HasValue)
rootCREW.CrewMember[i].DateOfBirth = crew.CrewMemberDateOfBirth.Value;
rootCREW.CrewMember[i].DutyOnBoard = crew.CrewMemberDuty;
rootCREW.CrewMember[i].FirstName = crew.CrewMemberFirstName;
rootCREW.CrewMember[i].LastName = crew.CrewMemberLastName;
rootCREW.CrewMember[i].Nationality = crew.CrewMemberNationality;
rootCREW.CrewMember[i].PlaceOfBirth = crew.CrewMemberPlaceOfBirth;
rootCREW.CrewMember[i].Gender = SetGender(crew.CrewMemberGender.Value);
if (crew.NotificationSchengen ?? false)
{
rootCREW.CrewMember[i].DetailsSchengen = new RootCREWDCrewMemberDetailsSchengen();
rootCREW.CrewMember[i].DetailsSchengen.IdentityDocumentId = crew.CrewMemberIdentityDocumentId;
if (crew.CrewMemberIdentityDocumentType.HasValue)
rootCREW.CrewMember[i].DetailsSchengen.IdentityDocumentType = (IdDocType)crew.CrewMemberIdentityDocumentType.Value;
rootCREW.CrewMember[i].DetailsSchengen.VisaNumber = crew.CrewMemberVisaNumber;
if (crew.CrewMemberIdentityDocumentIssuingState.Trim().Length == 2)
rootCREW.CrewMember[i].DetailsSchengen.IdentityDocumentIssuingState = crew.CrewMemberIdentityDocumentIssuingState;
if (crew.CrewMemberIdentityDocumentExpiryDate.HasValue)
rootCREW.CrewMember[i].DetailsSchengen.IdentityDocumentExpiryDate = crew.CrewMemberIdentityDocumentExpiryDate.Value;
}
}
root.Items = new object[1];
root.Items[0] = rootCREW;
}
break;
#endregion
#region PASA
case Message.NotificationClass.PAS: // this is PASA
{
RootPASA rootPAS = new RootPASA();
rootPAS.Passenger = new RootPASAPassenger[message.Elements.Count];
for (int i = 0; i < message.Elements.Count; i++)
{
PAS pas = message.Elements[i] as PAS;
rootPAS.Passenger[i] = new RootPASPassenger();
rootPAS.Passenger[i].PassengerLastName = pas.PassengerLastName;
rootPAS.Passenger[i].PassengerFirstName = pas.PassengerFirstName;
rootPAS.Passenger[i].PassengerPlaceOfBirth = pas.PassengerPlaceOfBirth;
rootPAS.Passenger[i] = new RootPASAPassenger();
rootPAS.Passenger[i].LastName = pas.PassengerLastName;
rootPAS.Passenger[i].FirstName = pas.PassengerFirstName;
rootPAS.Passenger[i].PlaceOfBirth = pas.PassengerPlaceOfBirth;
if (pas.PassengerDateOfBirth.HasValue)
rootPAS.Passenger[i].PassengerDateOfBirth = pas.PassengerDateOfBirth.Value;
rootPAS.Passenger[i].PassengerGenderSpecified = pas.PassengerGender.HasValue;
if (pas.PassengerGender.HasValue)
rootPAS.Passenger[i].PassengerGender = SetGender(pas.PassengerGender.Value);
rootPAS.Passenger[i].PassengerNationality = pas.PassengerNationality;
if (pas.PassengerIdentityDocumentType.HasValue)
rootPAS.Passenger[i].PassengerIdentityDocumentType = (IdDocType)pas.PassengerIdentityDocumentType.Value;
rootPAS.Passenger[i].PassengerIdentityDocumentId = pas.PassengerIdentityDocumentId;
rootPAS.Passenger[i].PassengerVisaNumber = pas.PassengerVisaNumber;
rootPAS.Passenger[i].PassengerPortOfEmbarkation = pas.PassengerPortOfEmbarkation;
rootPAS.Passenger[i].PassengerPortOfDisembarkation = pas.PassengerPortOfDisembarkation;
rootPAS.Passenger[i].PassengerInTransit = pas.PassengerInTransit ?? false ? RootSECValidISSCOnBoard.Y : RootSECValidISSCOnBoard.N;
if (pas.PassengerIdentityDocumentIssuingState.Trim().Length == 2)
rootPAS.Passenger[i].PassengerIdentityDocumentIssuingState = pas.PassengerIdentityDocumentIssuingState;
if (pas.PassengerIdentityDocumentExpiryDate.HasValue)
rootPAS.Passenger[i].PassengerIdentityDocumentExpiryDate = pas.PassengerIdentityDocumentExpiryDate.Value;
rootPAS.Passenger[i].DateOfBirth = pas.PassengerDateOfBirth.Value;
rootPAS.Passenger[i].Gender = SetGender(pas.PassengerGender.Value);
rootPAS.Passenger[i].Nationality = pas.PassengerNationality;
if (pas.NotificationSchengen ?? false)
{
rootPAS.Passenger[i].DetailsSchengen = new RootPASAPassengerDetailsSchengen();
if (pas.PassengerIdentityDocumentType.HasValue)
rootPAS.Passenger[i].DetailsSchengen.IdentityDocumentType = (IdDocType)pas.PassengerIdentityDocumentType.Value;
rootPAS.Passenger[i].DetailsSchengen.IdentityDocumentId = pas.PassengerIdentityDocumentId;
if(!pas.PassengerVisaNumber.IsNullOrEmpty())
rootPAS.Passenger[i].DetailsSchengen.VisaNumber = pas.PassengerVisaNumber;
rootPAS.Passenger[i].DetailsSchengen.PortOfEmbarkation = pas.PassengerPortOfEmbarkation;
rootPAS.Passenger[i].DetailsSchengen.PortOfDisembarkation = pas.PassengerPortOfDisembarkation;
rootPAS.Passenger[i].DetailsSchengen.InTransit = pas.PassengerInTransit ?? false ? RootSECValidISSCOnBoard.Y : RootSECValidISSCOnBoard.N;
if (pas.PassengerIdentityDocumentIssuingState.Trim().Length == 2)
rootPAS.Passenger[i].DetailsSchengen.IdentityDocumentIssuingState = pas.PassengerIdentityDocumentIssuingState;
if (pas.PassengerIdentityDocumentExpiryDate.HasValue)
rootPAS.Passenger[i].DetailsSchengen.IdentityDocumentExpiryDate = pas.PassengerIdentityDocumentExpiryDate.Value;
}
if(pas.NotificationPAX ?? false)
{
rootPAS.Passenger[i].DetailsPAX = new RootPASAPassengerDetailsPAX();
if (!pas.EmergencyCare.IsNullOrEmpty())
rootPAS.Passenger[i].DetailsPAX.EmergencyCare = pas.EmergencyCare;
if (!pas.EmergencyContactNumber.IsNullOrEmpty())
rootPAS.Passenger[i].DetailsPAX.EmergencyContactNumber = pas.EmergencyContactNumber;
}
}
// rootPAS.ReportingParty = rp;
root.Items = new object[1];
root.Items[0] = rootPAS;
}
break;
#endregion
#region PASD
case Message.NotificationClass.PASD:
{
RootPASD rootPAS = new RootPASD();
rootPAS.Passenger = new RootPASDPassenger[message.Elements.Count];
for (int i = 0; i < message.Elements.Count; i++)
{
PAS pas = message.Elements[i] as PAS;
rootPAS.Passenger[i] = new RootPASDPassenger();
rootPAS.Passenger[i].LastName = pas.PassengerLastName;
rootPAS.Passenger[i].FirstName = pas.PassengerFirstName;
rootPAS.Passenger[i].PlaceOfBirth = pas.PassengerPlaceOfBirth;
if (pas.PassengerDateOfBirth.HasValue)
rootPAS.Passenger[i].DateOfBirth = pas.PassengerDateOfBirth.Value;
rootPAS.Passenger[i].Gender = SetGender(pas.PassengerGender.Value);
rootPAS.Passenger[i].Nationality = pas.PassengerNationality;
if (pas.NotificationSchengen ?? false)
{
rootPAS.Passenger[i].DetailsSchengen = new RootPASDPassengerDetailsSchengen();
if (pas.PassengerIdentityDocumentType.HasValue)
rootPAS.Passenger[i].DetailsSchengen.IdentityDocumentType = (IdDocType)pas.PassengerIdentityDocumentType.Value;
rootPAS.Passenger[i].DetailsSchengen.IdentityDocumentId = pas.PassengerIdentityDocumentId;
if (!pas.PassengerVisaNumber.IsNullOrEmpty())
rootPAS.Passenger[i].DetailsSchengen.VisaNumber = pas.PassengerVisaNumber;
rootPAS.Passenger[i].DetailsSchengen.PortOfEmbarkation = pas.PassengerPortOfEmbarkation;
rootPAS.Passenger[i].DetailsSchengen.PortOfDisembarkation = pas.PassengerPortOfDisembarkation;
rootPAS.Passenger[i].DetailsSchengen.InTransit = pas.PassengerInTransit ?? false ? RootSECValidISSCOnBoard.Y : RootSECValidISSCOnBoard.N;
if (pas.PassengerIdentityDocumentIssuingState.Trim().Length == 2)
rootPAS.Passenger[i].DetailsSchengen.IdentityDocumentIssuingState = pas.PassengerIdentityDocumentIssuingState;
if (pas.PassengerIdentityDocumentExpiryDate.HasValue)
rootPAS.Passenger[i].DetailsSchengen.IdentityDocumentExpiryDate = pas.PassengerIdentityDocumentExpiryDate.Value;
}
if (pas.NotificationPAX ?? false)
{
rootPAS.Passenger[i].DetailsPAX = new RootPASDPassengerDetailsPAX();
if (!pas.EmergencyCare.IsNullOrEmpty())
rootPAS.Passenger[i].DetailsPAX.EmergencyCare = pas.EmergencyCare;
if (!pas.EmergencyContactNumber.IsNullOrEmpty())
rootPAS.Passenger[i].DetailsPAX.EmergencyContactNumber = pas.EmergencyContactNumber;
}
}
root.Items = new object[1];
root.Items[0] = rootPAS;
}
break;
#endregion
#region BKRA