git_bsmd/nsw/Source/bsmd.ReportGenerator/CrewPasHelper.cs
2015-07-15 17:14:26 +00:00

119 lines
4.9 KiB
C#

//
// 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;
}
}
}