// // Class: CrewPasHelper // Current CLR: 4.0.30319.34209 // System: Microsoft Visual Studio 10.0 // Author: dani // Created: 7/10/2015 8:24:06 PM // // Copyright (c) 2015 Informatikbüro Daniel Schick. All rights reserved. using System; using System.Collections.Generic; using System.IO; using System.Text; using bsmd.database; namespace bsmd.ReportGenerator { public class CrewPasHelper { public static string CreateCSV(Message message) { switch(message.MessageNotificationClass) { case Message.NotificationClass.CREW: { string filename = Path.Combine(Properties.Settings.Default.OutputDirectory, "crewlist.csv"); StringBuilder sb = new StringBuilder(); foreach (CREW crew in message.Elements) { string dateOfBirth = ""; if (crew.CrewMemberDateOfBirth.HasValue) dateOfBirth = crew.CrewMemberDateOfBirth.Value.ToString("yyyy-MM-dd"); sb.AppendLine(string.Format("{0};{1};{2};{3};{4};{5};{6};{7};{8};{9}", crew.CrewMemberLastName ?? "", crew.CrewMemberFirstName ?? "", CrewPasHelper.GetGender(crew.CrewMemberGender), crew.CrewMemberNationality ?? "", crew.CrewMemberDuty ?? "", crew.CrewMemberPlaceOfBirth ?? "", dateOfBirth, CrewPasHelper.GetDocumentType(crew.CrewMemberIdentityDocumentType), crew.CrewMemberIdentityDocumentId ?? "", crew.CrewMemberVisaNumber ?? "")); } File.WriteAllText(filename, sb.ToString(), Encoding.UTF8); return filename; } case Message.NotificationClass.PAS: { string filename = Path.Combine(Properties.Settings.Default.OutputDirectory, "passengerlist.csv"); StringBuilder sb = new StringBuilder(); foreach (PAS pas in message.Elements) { string dateOfBirth = ""; if (pas.PassengerDateOfBirth.HasValue) dateOfBirth = pas.PassengerDateOfBirth.Value.ToString("yyyy-MM-dd"); sb.AppendLine(string.Format("{0};{1};{2};{3};{4};{5};{6};{7};{8};{9};{10};{11}", pas.PassengerLastName ?? "", pas.PassengerFirstName ?? "", CrewPasHelper.GetGender(pas.PassengerGender), pas.PassengerNationality ?? "", pas.PassengerPortOfEmbarkation ?? "", pas.PassengerPortOfDisembarkation ?? "", (pas.PassengerInTransit ?? false) ? "Y" : "N", pas.PassengerPlaceOfBirth ?? "", dateOfBirth, CrewPasHelper.GetDocumentType(pas.PassengerIdentityDocumentType), pas.PassengerIdentityDocumentId ?? "", pas.PassengerVisaNumber ?? "")); } File.WriteAllText(filename, sb.ToString(), Encoding.UTF8); return filename; } default: return null; } } private static string GetDocumentType(byte? type) { string documentType = ""; if (type.HasValue) { switch (type.Value) { case 0: documentType = "IDENTITY_CARD"; break; case 1: documentType = "PASSPORT"; break; case 2: documentType = "MUSTER_BOOK"; break; case 3: documentType = "PICTURE_ID"; break; case 4: documentType = "RESIDENTAL_PERMIT"; break; default: documentType = "OTHER_LEGAL_IDENTITY_DOCUMENT"; break; } } return documentType; } private static string GetGender(byte? gender) { string genders = ""; if (gender.HasValue) { if (gender == 0) genders = "MALE"; if (gender == 1) genders = "FEMALE"; if (gender == 2) genders = "OTHER"; } return genders; } } }