3.20.0: MaxLength Attribut zur zusätzlichen Validierung beim Speichern, Modultest Excel-Einlesen (Achtung Logfile Auswertung), Versenden der Highlight-Kopie

This commit is contained in:
Daniel Schick 2016-08-21 08:57:20 +00:00
parent 746928a61e
commit dad76beb2c
55 changed files with 534 additions and 44 deletions

Binary file not shown.

View File

@ -34,6 +34,9 @@
</ArrayOfString> </ArrayOfString>
</value> </value>
</setting> </setting>
<setting name="SendConfirmationSheet" serializeAs="String">
<value>False</value>
</setting>
</bsmd.ExcelReadService.Properties.Settings> </bsmd.ExcelReadService.Properties.Settings>
</applicationSettings> </applicationSettings>
</configuration> </configuration>

View File

@ -131,18 +131,24 @@ namespace bsmd.ExcelReadService
receiptText = string.Format("Incoming sheet could not be read: {0}", readMessage); receiptText = string.Format("Incoming sheet could not be read: {0}", readMessage);
_log.Error(receiptText); _log.Error(receiptText);
} }
}
// TODO: Quittung / set messagecore to createreport and let reportGenerator create a reply? if (readResult)
{
// Quittung / set messagecore to createreport and let reportGenerator create a reply?
if (Properties.Settings.Default.SendConfirmationSheet)
{
string confirmationFileName = Path.Combine(Path.GetDirectoryName(attachmentLocalPath),
string.Format("{0}_confirm.xls", Path.GetFileNameWithoutExtension(attachmentLocalPath)));
// create a reply sheet (template + scanned highlighted content for verification if (reader.SaveCopy(confirmationFileName))
if (readResult) {
{ List<string> sendItems = new List<string>();
string confirmationExcelFilePath = Util.CreateConfirmationSheet(messageCore); sendItems.Add(confirmationFileName);
List<string> sendItems = new List<string>(); // send reply sheet back to sender
sendItems.Add(confirmationExcelFilePath); BSMDMail.SendNSWReportWithAttachments(Properties.Settings.Default.SendEMailSubject, sendItems);
// send reply sheet back to sender }
BSMDMail.SendNSWReportWithAttachments(Properties.Settings.Default.SendEMailSubject, sendItems); }
}
} }
} }

View File

@ -22,6 +22,7 @@ namespace bsmd.ExcelReadService
{ {
private ILog _log = LogManager.GetLogger(typeof(ExcelReader)); private ILog _log = LogManager.GetLogger(typeof(ExcelReader));
private Workbooks _excelWorkbooks; private Workbooks _excelWorkbooks;
private Workbook _portcall;
private Application _excelApp; private Application _excelApp;
private Dictionary<string, Name> _nameDict; private Dictionary<string, Name> _nameDict;
@ -37,22 +38,50 @@ namespace bsmd.ExcelReadService
{ {
this._excelApp = new Application(); this._excelApp = new Application();
this._excelWorkbooks = _excelApp.Workbooks; this._excelWorkbooks = _excelApp.Workbooks;
Workbook portcall = _excelWorkbooks.Open(filePath, 0, true, 5, "", "", false, XlPlatform.xlWindows, "", false, false, 0, false, false, false); this._portcall = _excelWorkbooks.Open(filePath, 0, true, 5, "", "", false, XlPlatform.xlWindows, "", false, false, 0, false, false, false);
_nameDict = new Dictionary<string, Name>(); _nameDict = new Dictionary<string, Name>();
foreach(Name name in portcall.Names) foreach(Name name in _portcall.Names)
{ {
_nameDict[name.Name] = name; _nameDict[name.Name] = name;
} }
} }
internal void Save(string filePath) internal bool Save(string filePath)
{ {
if (this._excelApp == null) return; bool result = true;
this._excelApp.SaveWorkspace(filePath); if (this._excelApp == null) return false;
try
{
this._excelApp.SaveWorkspace(filePath);
}
catch(Exception ex)
{
_log.WarnFormat("cannot save workspace: {0}", ex.Message);
result = false;
}
return result;
}
internal bool SaveCopy(string filePath)
{
bool result = true;
if (this._excelApp == null) return false;
try
{
this._portcall.Saved = true;
this._portcall.SaveCopyAs(filePath);
}
catch (Exception ex)
{
_log.WarnFormat("cannot save copy of workbook: {0}", ex.Message);
result = false;
}
return result;
} }
internal void HighlightLookup(string lookup, ReadState state) internal void HighlightLookup(string lookup, ReadState state)
{ {
if (!_nameDict.ContainsKey(lookup)) return;
Range range = _nameDict[lookup].RefersToRange; Range range = _nameDict[lookup].RefersToRange;
if(range != null) if(range != null)
{ {
@ -117,6 +146,7 @@ namespace bsmd.ExcelReadService
internal byte? ReadShippingArea(string lookup) internal byte? ReadShippingArea(string lookup)
{ {
string val = this.ReadText(lookup); string val = this.ReadText(lookup);
if (val == null) return null;
if (val.IndexOf("baltic", StringComparison.OrdinalIgnoreCase) >= 0) return 0; if (val.IndexOf("baltic", StringComparison.OrdinalIgnoreCase) >= 0) return 0;
if (val.IndexOf("europe", StringComparison.OrdinalIgnoreCase) >= 0) return 1; if (val.IndexOf("europe", StringComparison.OrdinalIgnoreCase) >= 0) return 1;
if (val.IndexOf("overseas", StringComparison.OrdinalIgnoreCase) >= 0) return 2; if (val.IndexOf("overseas", StringComparison.OrdinalIgnoreCase) >= 0) return 2;
@ -127,6 +157,7 @@ namespace bsmd.ExcelReadService
internal byte? ReadHullConfiguration(string lookup) internal byte? ReadHullConfiguration(string lookup)
{ {
string val = this.ReadText(lookup); string val = this.ReadText(lookup);
if (val == null) return null;
if (val.IndexOf("sbt", StringComparison.OrdinalIgnoreCase) >= 0) return 1; if (val.IndexOf("sbt", StringComparison.OrdinalIgnoreCase) >= 0) return 1;
if (val.IndexOf("single", StringComparison.OrdinalIgnoreCase) >= 0) return 0; if (val.IndexOf("single", StringComparison.OrdinalIgnoreCase) >= 0) return 0;
if (val.IndexOf("double", StringComparison.OrdinalIgnoreCase) >= 0) return 2; if (val.IndexOf("double", StringComparison.OrdinalIgnoreCase) >= 0) return 2;
@ -137,6 +168,7 @@ namespace bsmd.ExcelReadService
internal byte? ReadConditionTanks(string lookup) internal byte? ReadConditionTanks(string lookup)
{ {
string val = this.ReadText(lookup); string val = this.ReadText(lookup);
if (val == null) return null;
if (val.IndexOf("full", StringComparison.OrdinalIgnoreCase) >= 0) return 0; if (val.IndexOf("full", StringComparison.OrdinalIgnoreCase) >= 0) return 0;
if (val.IndexOf("empty", StringComparison.OrdinalIgnoreCase) >= 0) return 1; if (val.IndexOf("empty", StringComparison.OrdinalIgnoreCase) >= 0) return 1;
if (val.IndexOf("inerted", StringComparison.OrdinalIgnoreCase) >= 0) return 2; if (val.IndexOf("inerted", StringComparison.OrdinalIgnoreCase) >= 0) return 2;
@ -147,6 +179,7 @@ namespace bsmd.ExcelReadService
internal byte? ReadDelivery(string lookup) internal byte? ReadDelivery(string lookup)
{ {
string val = this.ReadText(lookup); string val = this.ReadText(lookup);
if (val == null) return null;
if (val.IndexOf("all", StringComparison.OrdinalIgnoreCase) >= 0) return 0; if (val.IndexOf("all", StringComparison.OrdinalIgnoreCase) >= 0) return 0;
if (val.IndexOf("some", StringComparison.OrdinalIgnoreCase) >= 0) return 1; if (val.IndexOf("some", StringComparison.OrdinalIgnoreCase) >= 0) return 1;
if (val.IndexOf("none", StringComparison.OrdinalIgnoreCase) >= 0) return 2; if (val.IndexOf("none", StringComparison.OrdinalIgnoreCase) >= 0) return 2;
@ -166,6 +199,7 @@ namespace bsmd.ExcelReadService
{ {
try try
{ {
if (!_nameDict.ContainsKey(lookup)) return null;
var val = _nameDict[lookup].RefersToRange.Value; var val = _nameDict[lookup].RefersToRange.Value;
if (val is DateTime) return val; if (val is DateTime) return val;
if (val is double) if (val is double)
@ -206,6 +240,7 @@ namespace bsmd.ExcelReadService
{ {
try try
{ {
if (!_nameDict.ContainsKey(lookup)) return null;
var val = _nameDict[lookup].RefersToRange.Value; var val = _nameDict[lookup].RefersToRange.Value;
if (val is DateTime) return val; if (val is DateTime) return val;
if (val is double) if (val is double)
@ -231,6 +266,7 @@ namespace bsmd.ExcelReadService
double result; double result;
try try
{ {
if (!_nameDict.ContainsKey(lookup)) return null;
var val = _nameDict[lookup].RefersToRange.Value; var val = _nameDict[lookup].RefersToRange.Value;
if (val is double) return val; if (val is double) return val;
if (val is string) if (val is string)

View File

@ -59,7 +59,15 @@ namespace bsmd.ExcelReadService
public static List<string> AllLocodesForCityName(string city) public static List<string> AllLocodesForCityName(string city)
{ {
List<string> results = new List<string>(); List<string> results = new List<string>();
string query = string.Format("SELECT city_code, countries.code FROM locodes JOIN countries ON locodes.country_id = countries.ID WHERE locodes.port='t' AND locodes.name like '{1}'", city); if(city.Contains(","))
{
string[] elems = city.Split(',');
string countryCode = CountryCodeFromName(elems[1].Trim());
string lcLookup = LocodeFromCity(elems[0].Trim(), countryCode);
if ((countryCode != null) && (lcLookup != null))
results.Add(lcLookup);
}
string query = string.Format("SELECT city_code, countries.code FROM locodes JOIN countries ON locodes.country_id = countries.ID WHERE locodes.port='t' AND locodes.name like '{0}'", city);
SQLiteCommand cmd = new SQLiteCommand(query, _con); SQLiteCommand cmd = new SQLiteCommand(query, _con);
IDataReader reader = cmd.ExecuteReader(); IDataReader reader = cmd.ExecuteReader();
while (reader.Read()) while (reader.Read())

View File

@ -74,5 +74,14 @@ namespace bsmd.ExcelReadService.Properties {
return ((global::System.Collections.Specialized.StringCollection)(this["ValidSender"])); return ((global::System.Collections.Specialized.StringCollection)(this["ValidSender"]));
} }
} }
[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool SendConfirmationSheet {
get {
return ((bool)(this["SendConfirmationSheet"]));
}
}
} }
} }

View File

@ -24,5 +24,8 @@
&lt;string&gt;hollmann@bsmd.de&lt;/string&gt; &lt;string&gt;hollmann@bsmd.de&lt;/string&gt;
&lt;/ArrayOfString&gt;</Value> &lt;/ArrayOfString&gt;</Value>
</Setting> </Setting>
<Setting Name="SendConfirmationSheet" Type="System.Boolean" Scope="Application">
<Value Profile="(Default)">False</Value>
</Setting>
</Settings> </Settings>
</SettingsFile> </SettingsFile>

View File

@ -142,12 +142,6 @@ namespace bsmd.ExcelReadService
return true; return true;
} }
internal static string CreateConfirmationSheet(MessageCore messageCore)
{
throw new NotImplementedException();
}
#region ATA #region ATA
static void ScanATA(List<Message> messages, MessageCore messageCore, ExcelReader reader) static void ScanATA(List<Message> messages, MessageCore messageCore, ExcelReader reader)
@ -354,6 +348,7 @@ namespace bsmd.ExcelReadService
if (!callPurposeDescription.IsNullOrEmpty()) if (!callPurposeDescription.IsNullOrEmpty())
{ {
CallPurpose callPurpose = new CallPurpose(); CallPurpose callPurpose = new CallPurpose();
callPurpose.NOA_NOD = noa_nod;
callPurpose.CallPurposeCode = noa_nod.getCallPurposeCodeFromDescription(callPurposeDescription) ?? 0; callPurpose.CallPurposeCode = noa_nod.getCallPurposeCodeFromDescription(callPurposeDescription) ?? 0;
callPurpose.CallPurposeDescription = callPurposeDescription; callPurpose.CallPurposeDescription = callPurposeDescription;
noa_nod.CallPurposes.Add(callPurpose); noa_nod.CallPurposes.Add(callPurpose);
@ -591,8 +586,8 @@ namespace bsmd.ExcelReadService
s2sActivity.ShipToShipActivityLocationName = reader.ReadText(s2sName); s2sActivity.ShipToShipActivityLocationName = reader.ReadText(s2sName);
s2sActivity.ShipToShipActivityLocationLoCode = reader.ReadTextNoWhitespace(s2sLocode); s2sActivity.ShipToShipActivityLocationLoCode = reader.ReadTextNoWhitespace(s2sLocode);
s2sActivity.ShipToShipActivityLocationCoordinatesLatitude = (int)reader.ReadNumber(s2sLatitude); s2sActivity.ShipToShipActivityLocationCoordinatesLatitude = (int?)reader.ReadNumber(s2sLatitude);
s2sActivity.ShipToShipActivityLocationCoordinatesLongitude = (int)reader.ReadNumber(s2sLongitude); s2sActivity.ShipToShipActivityLocationCoordinatesLongitude = (int?)reader.ReadNumber(s2sLongitude);
s2sActivity.ShipToShipActivityDateFrom = reader.ReadDate(s2sFromDate); s2sActivity.ShipToShipActivityDateFrom = reader.ReadDate(s2sFromDate);
s2sActivity.ShipToShipActivityDateTo = reader.ReadDate(s2sToDate); s2sActivity.ShipToShipActivityDateTo = reader.ReadDate(s2sToDate);
s2sActivity.ShipToShipActivityType = reader.ReadText(s2sActivityString); s2sActivity.ShipToShipActivityType = reader.ReadText(s2sActivityString);
@ -774,7 +769,7 @@ namespace bsmd.ExcelReadService
} }
ladg.CargoCodeNST = reader.ReadText(lnType); ladg.CargoCodeNST = reader.ReadText(lnType);
if (ladg.CargoCodeNST.Length != 2) ladg.CargoCodeNST = null; // stupid validation if ((ladg.CargoCodeNST != null) && (ladg.CargoCodeNST.Length != 2)) ladg.CargoCodeNST = null; // stupid validation
ladg.CargoNumberOfItems = (int?) reader.ReadNumber(lnCNOI); ladg.CargoNumberOfItems = (int?) reader.ReadNumber(lnCNOI);
ladg.CargoGrossQuantity_TNE = reader.ReadNumber(lnCGQ); ladg.CargoGrossQuantity_TNE = reader.ReadNumber(lnCGQ);
@ -972,8 +967,15 @@ namespace bsmd.ExcelReadService
// Im Sheet könnte der Name statt des LOCODES stehen! // Im Sheet könnte der Name statt des LOCODES stehen!
if (!RuleEngine.IsGermanLocode(poc)) if (!RuleEngine.IsGermanLocode(poc))
{ {
string aGermanPortName = poc;
if(poc.Contains(',')) // irgendwas wie "Hamburg, Germany"
{
aGermanPortName = poc.Split(',')[0];
}
// somehow lookup LOCODE from the port's name! // somehow lookup LOCODE from the port's name!
poc = LocodeDB.LocodeGERFromCity(poc); poc = LocodeDB.LocodeGERFromCity(aGermanPortName);
} }
} }
@ -982,11 +984,13 @@ namespace bsmd.ExcelReadService
// ETA // ETA
eta = reader.ReadDateTime("NOA_NOD.ETADateToPortOfCall", "NOA_NOD.ETATimeToPortOfCall"); eta = reader.ReadDateTime("NOA_NOD.ETADateToPortOfCall", "NOA_NOD.ETATimeToPortOfCall");
if ((imo != null) && (eta.HasValue)) if ((imo != null) && (eta.HasValue) && (poc != null))
{ {
result = DBManager.Instance.GetMessageCoreByShipInfos(imo, eta.Value, poc); result = DBManager.Instance.GetMessageCoreByShipInfos(imo, eta.Value, poc);
if (result.IsNew) if(result != null)
result.IsTransit = isTransit; {
_log.InfoFormat("Core [{3}] found for IMO {0}, ETA {1}, Poc {2}", imo, eta, poc, result.Id);
}
} }
} }
} }
@ -1015,6 +1019,7 @@ namespace bsmd.ExcelReadService
result = new MessageCore(); result = new MessageCore();
result.IMO = imo; result.IMO = imo;
result.IsTransit = isTransit;
result.ReportStatus = MessageCore.ReportStatusEnum.COMPLETE; result.ReportStatus = MessageCore.ReportStatusEnum.COMPLETE;
result.Portname = poc; result.Portname = poc;
result.ETA = eta; result.ETA = eta;

View File

@ -35,44 +35,54 @@ namespace bsmd.database
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
[LookupName("AGNT.AgentCompanyName")] [LookupName("AGNT.AgentCompanyName")]
[MaxLength(100)]
public string AgentCompanyName { get; set; } public string AgentCompanyName { get; set; }
[ShowReport] [ShowReport]
[LookupName("AGNT.AgentStreetAndNumber")] [LookupName("AGNT.AgentStreetAndNumber")]
[MaxLength(100)]
public string AgentStreetAndNumber { get; set; } public string AgentStreetAndNumber { get; set; }
[ShowReport] [ShowReport]
[LookupName("AGNT.AgentPostalCode")] [LookupName("AGNT.AgentPostalCode")]
[MaxLength(100)]
public string AgentPostalCode { get; set; } public string AgentPostalCode { get; set; }
[ShowReport] [ShowReport]
[LookupName("AGNT.AgentCity")] [LookupName("AGNT.AgentCity")]
[MaxLength(100)]
public string AgentCity { get; set; } public string AgentCity { get; set; }
[ShowReport] [ShowReport]
[LookupName("AGNT.AgentCountry")] [LookupName("AGNT.AgentCountry")]
[MaxLength(100)]
public string AgentCountry { get; set; } public string AgentCountry { get; set; }
[ShowReport] [ShowReport]
[LookupName("AGNT.AgentLastName")] [LookupName("AGNT.AgentLastName")]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
[MaxLength(100)]
public string AgentLastName { get; set; } public string AgentLastName { get; set; }
[ShowReport] [ShowReport]
[LookupName("AGNT.AgentFirstName")] [LookupName("AGNT.AgentFirstName")]
[MaxLength(100)]
public string AgentFirstName { get; set; } public string AgentFirstName { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
[LookupName("AGNT.AgentPhone")] [LookupName("AGNT.AgentPhone")]
[MaxLength(100)]
public string AgentPhone { get; set; } public string AgentPhone { get; set; }
[ShowReport] [ShowReport]
[LookupName("AGNT.AgentFax")] [LookupName("AGNT.AgentFax")]
[MaxLength(100)]
public string AgentFax { get; set; } public string AgentFax { get; set; }
[ShowReport] [ShowReport]
[LookupName("AGNT.AgentEMail")] [LookupName("AGNT.AgentEMail")]
[MaxLength(100)]
public string AgentEMail { get; set; } public string AgentEMail { get; set; }
#endregion #endregion

View File

@ -26,6 +26,7 @@ namespace bsmd.database
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(100)]
public string BunkerFuelType { get; set; } public string BunkerFuelType { get; set; }
[ShowReport] [ShowReport]

View File

@ -26,6 +26,7 @@ namespace bsmd.database
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(100)]
public string BunkerFuelType { get; set; } public string BunkerFuelType { get; set; }
[ShowReport] [ShowReport]

View File

@ -27,16 +27,19 @@ namespace bsmd.database
[ShowReport] [ShowReport]
[ReportDisplayName("Last name")] [ReportDisplayName("Last name")]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(100)]
public string CrewMemberLastName { get; set; } public string CrewMemberLastName { get; set; }
[ShowReport] [ShowReport]
[ReportDisplayName("First name")] [ReportDisplayName("First name")]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(100)]
public string CrewMemberFirstName { get; set; } public string CrewMemberFirstName { get; set; }
[ShowReport] [ShowReport]
[ReportDisplayName("Place of birth")] [ReportDisplayName("Place of birth")]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(100)]
public string CrewMemberPlaceOfBirth { get; set; } public string CrewMemberPlaceOfBirth { get; set; }
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
@ -63,6 +66,7 @@ namespace bsmd.database
[ShowReport] [ShowReport]
[ReportDisplayName("Nationality")] [ReportDisplayName("Nationality")]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(2)]
public string CrewMemberNationality { get; set; } public string CrewMemberNationality { get; set; }
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
@ -75,16 +79,19 @@ namespace bsmd.database
[ShowReport] [ShowReport]
[ReportDisplayName("Identity document id")] [ReportDisplayName("Identity document id")]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(100)]
public string CrewMemberIdentityDocumentId { get; set; } public string CrewMemberIdentityDocumentId { get; set; }
[ShowReport] [ShowReport]
[ReportDisplayName("Visa number")] [ReportDisplayName("Visa number")]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(100)]
public string CrewMemberVisaNumber { get; set; } public string CrewMemberVisaNumber { get; set; }
[ShowReport] [ShowReport]
[ReportDisplayName("Duty")] [ReportDisplayName("Duty")]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(100)]
public string CrewMemberDuty { get; set; } public string CrewMemberDuty { get; set; }
public string Identifier { get; set; } public string Identifier { get; set; }

View File

@ -30,6 +30,7 @@ namespace bsmd.database
public int CallPurposeCode { get; set; } public int CallPurposeCode { get; set; }
[ShowReport] [ShowReport]
[MaxLength(100)]
public string CallPurposeDescription { get; set; } public string CallPurposeDescription { get; set; }
public string Identifier { get; set; } public string Identifier { get; set; }

View File

@ -28,24 +28,34 @@ namespace bsmd.database
#region Properties #region Properties
[MaxLength(100)]
public string Name { get; set; } public string Name { get; set; }
[MaxLength(50)]
public string Phone { get; set; } public string Phone { get; set; }
[MaxLength(100)]
public string Email { get; set; } public string Email { get; set; }
[MaxLength(50)]
public string ContactFirstName { get; set; } public string ContactFirstName { get; set; }
[MaxLength(50)]
public string ContactLastName { get; set; } public string ContactLastName { get; set; }
[MaxLength(50)]
public string StreetAndNumber { get; set; } public string StreetAndNumber { get; set; }
[MaxLength(50)]
public string PostalCode { get; set; } public string PostalCode { get; set; }
[MaxLength(50)]
public string City { get; set; } public string City { get; set; }
[MaxLength(50)]
public string Country { get; set; } public string Country { get; set; }
[MaxLength(50)]
public string CustomerNumber { get; set; } public string CustomerNumber { get; set; }
#endregion #endregion

View File

@ -349,6 +349,13 @@ namespace bsmd.database
public void Save(DatabaseEntity entity) public void Save(DatabaseEntity entity)
{ {
List<string> truncatedFields = new List<string>();
entity.TruncateFields(truncatedFields);
foreach(string truncatedField in truncatedFields)
{
_log.WarnFormat("Entity {0} save: Field truncated: {1}", entity.GetType(), truncatedField);
}
SqlCommand cmd = new SqlCommand(); SqlCommand cmd = new SqlCommand();
entity.PrepareSave(cmd); entity.PrepareSave(cmd);
int queryResult = this.PerformNonQuery(cmd); int queryResult = this.PerformNonQuery(cmd);

View File

@ -83,12 +83,50 @@ namespace bsmd.database
public abstract List<DatabaseEntity> LoadList(IDataReader reader); public abstract List<DatabaseEntity> LoadList(IDataReader reader);
/// <summary>
/// Überprüft eingegangene Meldeklassen auf Fehlerkonditionen
/// </summary>
/// <param name="errors"></param>
/// <param name="violations"></param>
public virtual void Validate(List<MessageError> errors, List<MessageViolation> violations) public virtual void Validate(List<MessageError> errors, List<MessageViolation> violations)
{ {
errors = new List<MessageError>(); errors = new List<MessageError>();
violations = new List<MessageViolation>(); violations = new List<MessageViolation>();
} }
/// <summary>
/// Diese Methode sollte eigentlich nie einen Effekt haben und dient nur dazu, dass keine Situation
/// auftreten kann in der ein Insert/Update an fehlender Datenvalidierung kracht
/// </summary>
/// <param name="truncated"></param>
public virtual void TruncateFields(List<string> truncated)
{
List<PropertyInfo> props = new List<PropertyInfo>();
// add flagged properties to check list
props.AddRange(this.GetType().GetProperties().Where(prop => Attribute.IsDefined(prop, typeof(MaxLengthAttribute))));
foreach (PropertyInfo property in props)
{
object propValue = property.GetValue(this, null);
string value = (propValue == null) ? string.Empty : propValue.ToString();
MaxLengthAttribute maxLengthAttribute = Attribute.GetCustomAttribute(property, typeof(MaxLengthAttribute))
as MaxLengthAttribute;
if(value.Length > maxLengthAttribute.MaxLength) // truncate situation
{
string maxLengthValue = value.Substring(0, maxLengthAttribute.MaxLength);
truncated.Add(string.Format("[{0} ({1})]: {2}", property.Name, maxLengthAttribute.MaxLength, value));
property.SetValue(this, maxLengthValue);
}
}
}
/// <summary>
/// Kann überschrieben werden, wenn abhängig von den Daten (einem Flag) andere Regeln gelten (Bsp. wenn schon eine
/// MDH Meldung abgegeben wurde)
/// </summary>
/// <returns></returns>
public virtual ValidationBlock GetValidationBlock() public virtual ValidationBlock GetValidationBlock()
{ {
return ValidationBlock.BLOCK1; return ValidationBlock.BLOCK1;

View File

@ -27,6 +27,7 @@ namespace bsmd.database
public HAZ HAZ { get; set; } public HAZ HAZ { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(255)]
public string ProductName { get; set; } public string ProductName { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
@ -36,24 +37,37 @@ namespace bsmd.database
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
public byte? FlashpointInformation { get; set; } public byte? FlashpointInformation { get; set; }
[ShowReport] [ShowReport]
[MaxLength(11)]
public string Flashpoint_CEL { get; set; } public string Flashpoint_CEL { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.DOUBLE_GT_ZERO)] [Validation(ValidationCode.DOUBLE_GT_ZERO)]
public double? Quantity_KGM { get; set; } public double? Quantity_KGM { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(24)]
public string StowagePosition { get; set; } public string StowagePosition { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.LOCODE)] [Validation(ValidationCode.LOCODE)]
[MaxLength(5)]
public string PortOfLoading { get; set; } public string PortOfLoading { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.LOCODE)] [Validation(ValidationCode.LOCODE)]
[MaxLength(5)]
public string PortOfDischarge { get; set; } public string PortOfDischarge { get; set; }
[ShowReport] [ShowReport]
public bool? SpecRef15_19 { get; set; } public bool? SpecRef15_19 { get; set; }
[ShowReport] [ShowReport]
[MaxLength(255)]
public string Remarks { get; set; } public string Remarks { get; set; }
public string Identifier { get; set; } public string Identifier { get; set; }
#endregion #endregion

View File

@ -25,27 +25,43 @@ namespace bsmd.database
#region Properties #region Properties
public HAZ HAZ { get; set; } public HAZ HAZ { get; set; }
[ShowReport] [ShowReport]
[MaxLength(4)]
public string UNNumber { get; set; } public string UNNumber { get; set; }
[ShowReport] [ShowReport]
[MaxLength(10)]
public string IMOClass { get; set; } public string IMOClass { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(255)]
public string ProductName { get; set; } public string ProductName { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.DOUBLE_GT_ZERO)] [Validation(ValidationCode.DOUBLE_GT_ZERO)]
public double? Quantity_KGM { get; set; } public double? Quantity_KGM { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(24)]
public string StowagePosition { get; set; } public string StowagePosition { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.LOCODE)] [Validation(ValidationCode.LOCODE)]
[MaxLength(5)]
public string PortOfLoading { get; set; } public string PortOfLoading { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.LOCODE)] [Validation(ValidationCode.LOCODE)]
[MaxLength(5)]
public string PortOfDischarge { get; set; } public string PortOfDischarge { get; set; }
[ShowReport] [ShowReport]
[MaxLength(255)]
public string Remarks { get; set; } public string Remarks { get; set; }
public string Identifier { get; set; } public string Identifier { get; set; }
#endregion #endregion

View File

@ -27,83 +27,129 @@ namespace bsmd.database
#region Properties #region Properties
public HAZ HAZ { get; set; } public HAZ HAZ { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(10)]
public string UNNumber { get; set; } public string UNNumber { get; set; }
[ShowReport] [ShowReport]
public byte? PackingGroup { get; set; } public byte? PackingGroup { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(255)]
public string ProperShippingName { get; set; } public string ProperShippingName { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(10)]
public string IMOClass { get; set; } public string IMOClass { get; set; }
[ShowReport] [ShowReport]
[MaxLength(10)]
public string CompatibilityGroup { get; set; } public string CompatibilityGroup { get; set; }
[ShowReport] [ShowReport]
[MaxLength(255)]
public string TechnicalName { get; set; } public string TechnicalName { get; set; }
[ShowReport] [ShowReport]
public double? NetExplosiveMass_KGM { get; set; } public double? NetExplosiveMass_KGM { get; set; }
[ShowReport] [ShowReport]
[MaxLength(10)]
public string Flashpoint_CEL { get; set; } public string Flashpoint_CEL { get; set; }
[ShowReport] [ShowReport]
[MaxLength(100)]
public string Class7NuclideName { get; set; } public string Class7NuclideName { get; set; }
[ShowReport] [ShowReport]
public double? Class7MaxActivity_BQL { get; set; } public double? Class7MaxActivity_BQL { get; set; }
[ShowReport] [ShowReport]
public int? Class7Category { get; set; } public int? Class7Category { get; set; }
[ShowReport] [ShowReport]
public double? Class7TransportIndex { get; set; } public double? Class7TransportIndex { get; set; }
[ShowReport] [ShowReport]
public int? Class7CSI { get; set; } public int? Class7CSI { get; set; }
[ShowReport] [ShowReport]
public double? ControlTemperature_CEL { get; set; } public double? ControlTemperature_CEL { get; set; }
[ShowReport] [ShowReport]
public double? EmergencyTemperature_CEL { get; set; } public double? EmergencyTemperature_CEL { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
public bool? MarinePollutant { get; set; } public bool? MarinePollutant { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
public int? NumberOfPackages { get; set; } public int? NumberOfPackages { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(255)]
public string PackageType { get; set; } public string PackageType { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
public bool? LimitedQuantities { get; set; } public bool? LimitedQuantities { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
public bool? ExceptedQuantities { get; set; } public bool? ExceptedQuantities { get; set; }
[ShowReport] [ShowReport]
public double? NetQuantity_KGM { get; set; } public double? NetQuantity_KGM { get; set; }
[ShowReport] [ShowReport]
public double? GrossQuantity_KGM { get; set; } public double? GrossQuantity_KGM { get; set; }
[ShowReport] [ShowReport]
public double? Volume_MTQ { get; set; } public double? Volume_MTQ { get; set; }
[ShowReport] [ShowReport]
public bool? GeneralCargoIBC { get; set; } public bool? GeneralCargoIBC { get; set; }
[ShowReport] [ShowReport]
[MaxLength(24)]
public string ContainerNumber { get; set; } public string ContainerNumber { get; set; }
[ShowReport] [ShowReport]
[MaxLength(24)]
public string VehicleLicenseNumber { get; set; } public string VehicleLicenseNumber { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(24)]
public string StowagePosition { get; set; } public string StowagePosition { get; set; }
[MaxLength(5)]
public string Bay { get; set; } public string Bay { get; set; }
[MaxLength(5)]
public string Row { get; set; } public string Row { get; set; }
[MaxLength(5)]
public string Tier { get; set; } public string Tier { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.LOCODE)] [Validation(ValidationCode.LOCODE)]
[MaxLength(5)]
public string PortOfLoading { get; set; } public string PortOfLoading { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.LOCODE)] [Validation(ValidationCode.LOCODE)]
[MaxLength(5)]
public string PortOfDischarge { get; set; } public string PortOfDischarge { get; set; }
[ShowReport] [ShowReport]
[MaxLength(255)]
public string Remarks { get; set; } public string Remarks { get; set; }
public List<SubsidiaryRisks> SubsidiaryRiskList { get { return this.subsidiaryRisksList; } } public List<SubsidiaryRisks> SubsidiaryRiskList { get { return this.subsidiaryRisksList; } }

View File

@ -25,30 +25,47 @@ namespace bsmd.database
#region Properties #region Properties
public HAZ HAZ { get; set; } public HAZ HAZ { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(255)]
public string BulkCargoShippingName { get; set; } public string BulkCargoShippingName { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
public bool? MHB { get; set; } public bool? MHB { get; set; }
[ShowReport] [ShowReport]
[MaxLength(4)]
public string UNNumber { get; set; } public string UNNumber { get; set; }
[ShowReport] [ShowReport]
[MaxLength(10)]
public string IMOClass { get; set; } public string IMOClass { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.DOUBLE_GT_ZERO)] [Validation(ValidationCode.DOUBLE_GT_ZERO)]
public double? Quantity_KGM { get; set; } public double? Quantity_KGM { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(24)]
public string StowagePosition { get; set; } public string StowagePosition { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.LOCODE)] [Validation(ValidationCode.LOCODE)]
[MaxLength(5)]
public string PortOfLoading { get; set; } public string PortOfLoading { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.LOCODE)] [Validation(ValidationCode.LOCODE)]
[MaxLength(5)]
public string PortOfDischarge { get; set; } public string PortOfDischarge { get; set; }
[ShowReport] [ShowReport]
[MaxLength(255)]
public string Remarks { get; set; } public string Remarks { get; set; }
public string Identifier { get; set; } public string Identifier { get; set; }
#endregion #endregion

View File

@ -30,12 +30,15 @@ namespace bsmd.database
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[LookupName("INFO.RequestedPositionInPortOfCall")] [LookupName("INFO.RequestedPositionInPortOfCall")]
[MaxLength(100)]
public string RequestedPositionInPortOfCall { get; set; } public string RequestedPositionInPortOfCall { get; set; }
[ShowReport] [ShowReport]
[MaxLength(255)]
public string SpecialRequirementsOfShipAtBerth { get; set; } public string SpecialRequirementsOfShipAtBerth { get; set; }
[ShowReport] [ShowReport]
[MaxLength(100)]
public string ConstructionCharacteristicsOfShip { get; set; } public string ConstructionCharacteristicsOfShip { get; set; }
[ShowReport] [ShowReport]
@ -49,10 +52,13 @@ namespace bsmd.database
[ShowReport] [ShowReport]
[LookupName("INFO.PortArea")] [LookupName("INFO.PortArea")]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(50)]
public string PortArea { get; set; } public string PortArea { get; set; }
[MaxLength(50)]
public string BowThrusterPower { get; set; } public string BowThrusterPower { get; set; }
[MaxLength(50)]
public string SternThrusterPower { get; set; } public string SternThrusterPower { get; set; }
#endregion #endregion

View File

@ -27,6 +27,7 @@ namespace bsmd.database
public MDH MDH { get; set; } public MDH MDH { get; set; }
[ShowReport] [ShowReport]
[MaxLength(255)]
public string InfectedAreaPort { get; set; } public string InfectedAreaPort { get; set; }
[ShowReport] [ShowReport]

View File

@ -30,6 +30,7 @@ namespace bsmd.database
[ShowReport] [ShowReport]
[Validation(ValidationCode.TWO_DIGIT)] [Validation(ValidationCode.TWO_DIGIT)]
[MaxLength(5)]
public string CargoCodeNST { get; set; } public string CargoCodeNST { get; set; }
[ShowReport] [ShowReport]

View File

@ -25,25 +25,38 @@ namespace bsmd.database
#region Properties #region Properties
public SEC SEC { get; set; } public SEC SEC { get; set; }
[ShowReport] [ShowReport]
[MaxLength(100)]
public string PortFacilityPortName { get; set; } public string PortFacilityPortName { get; set; }
[ShowReport] [ShowReport]
[MaxLength(100)]
public string PortFacilityPortCountry { get; set; } public string PortFacilityPortCountry { get; set; }
[ShowReport] [ShowReport]
[MaxLength(5)]
public string PortFacilityPortLoCode { get; set; } public string PortFacilityPortLoCode { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
public DateTime? PortFacilityDateOfArrival { get; set; } public DateTime? PortFacilityDateOfArrival { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
public DateTime? PortFacilityDateOfDeparture { get; set; } public DateTime? PortFacilityDateOfDeparture { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
public byte? PortFacilityShipSecurityLevel { get; set; } public byte? PortFacilityShipSecurityLevel { get; set; }
[ShowReport] [ShowReport]
[MaxLength(255)]
public string PortFacilitySecurityMattersToReport { get; set; } public string PortFacilitySecurityMattersToReport { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.GISIS)] [Validation(ValidationCode.GISIS)]
[MaxLength(4)]
public string PortFacilityGISISCode { get; set; } public string PortFacilityGISISCode { get; set; }
public string Identifier { get; set; } public string Identifier { get; set; }

View File

@ -25,27 +25,41 @@ namespace bsmd.database
#region Properties #region Properties
public HAZ HAZ { get; set; } public HAZ HAZ { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(255)]
public string Name { get; set; } public string Name { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
public byte? FlashpointInformation { get; set; } public byte? FlashpointInformation { get; set; }
[ShowReport] [ShowReport]
[MaxLength(10)]
public string Flashpoint_CEL { get; set; } public string Flashpoint_CEL { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.DOUBLE_GT_ZERO)] [Validation(ValidationCode.DOUBLE_GT_ZERO)]
public double? Quantity_KGM { get; set; } public double? Quantity_KGM { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(24)]
public string StowagePosition { get; set; } public string StowagePosition { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.LOCODE)] [Validation(ValidationCode.LOCODE)]
[MaxLength(5)]
public string PortOfLoading { get; set; } public string PortOfLoading { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.LOCODE)] [Validation(ValidationCode.LOCODE)]
[MaxLength(5)]
public string PortOfDischarge { get; set; } public string PortOfDischarge { get; set; }
[ShowReport] [ShowReport]
[MaxLength(255)]
public string Remarks { get; set; } public string Remarks { get; set; }
public string Identifier { get; set; } public string Identifier { get; set; }

View File

@ -44,85 +44,113 @@ namespace bsmd.database
[Validation1(ValidationCode.NOT_NULL)] [Validation1(ValidationCode.NOT_NULL)]
[LookupName("MDH.ValidSanitaryControlExemptionOrCertificateOnBoard")] [LookupName("MDH.ValidSanitaryControlExemptionOrCertificateOnBoard")]
public bool? MDHSimplification { get; set; } public bool? MDHSimplification { get; set; }
[ShowReport] [ShowReport]
[Validation1(ValidationCode.LOCODE_GER)] [Validation1(ValidationCode.LOCODE_GER)]
[LookupName("MDH.PlaceOfIssue")] [LookupName("MDH.PlaceOfIssue")]
[MaxLength(5)]
public string PortOfCallWhereCompleteMDHNotified { get; set; } public string PortOfCallWhereCompleteMDHNotified { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
[LookupName("MDH.DateOfIssue")] [LookupName("MDH.DateOfIssue")]
public bool? NonAccidentalDeathsDuringVoyage { get; set; } public bool? NonAccidentalDeathsDuringVoyage { get; set; }
[ShowReport] [ShowReport]
[LookupName("MDH.NonAccidentialDeathsDuringVoyageCount")] [LookupName("MDH.NonAccidentialDeathsDuringVoyageCount")]
public int? NonAccidentalDeathsDuringVoyageCount { get; set; } public int? NonAccidentalDeathsDuringVoyageCount { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
[LookupName("MDH.SuspisionInfectiousNature")] [LookupName("MDH.SuspisionInfectiousNature")]
public bool? SuspisionInfectiousNature { get; set; } public bool? SuspisionInfectiousNature { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
[LookupName("MDH.NumberOfIllPersonsHigherThanExpected")] [LookupName("MDH.NumberOfIllPersonsHigherThanExpected")]
public bool? NumberOfIllPersonsHigherThanExpected { get; set; } public bool? NumberOfIllPersonsHigherThanExpected { get; set; }
[ShowReport] [ShowReport]
[LookupName("MDH.NumberOfIllPersons")] [LookupName("MDH.NumberOfIllPersons")]
public int? NumberOfIllPersons { get; set; } public int? NumberOfIllPersons { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
[LookupName("MDH.SickPersonsOnBoard")] [LookupName("MDH.SickPersonsOnBoard")]
public bool? SickPersonsOnBoard { get; set; } public bool? SickPersonsOnBoard { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
[LookupName("MDH.MedicalConsulted")] [LookupName("MDH.MedicalConsulted")]
public bool? MedicalConsulted { get; set; } public bool? MedicalConsulted { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
[LookupName("MDH.AwareOfConditionsForFurtherInfections")] [LookupName("MDH.AwareOfConditionsForFurtherInfections")]
public bool? AwareOfFurtherInfections { get; set; } public bool? AwareOfFurtherInfections { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
[LookupName("MDH.SanitaryMeasuresApplied")] [LookupName("MDH.SanitaryMeasuresApplied")]
public bool? SanitaryMeasuresApplied { get; set; } public bool? SanitaryMeasuresApplied { get; set; }
[ShowReport] [ShowReport]
[LookupName("MDH.SanitaryMeasuresType_1")] // TODO: NSW 3.0: wird ein Array [LookupName("MDH.SanitaryMeasuresType_1")] // TODO: NSW 3.0: wird ein Array
[MaxLength(100)]
public string SanitaryMeasuresType { get; set; } public string SanitaryMeasuresType { get; set; }
[ShowReport] [ShowReport]
[LookupName("MDH.SanitaryMeasuresLocation_1")] [LookupName("MDH.SanitaryMeasuresLocation_1")]
[MaxLength(100)]
public string SanitaryMeasuresLocation { get; set; } public string SanitaryMeasuresLocation { get; set; }
[ShowReport] [ShowReport]
[LookupName("MDH.SanitaryMeasuresDate_1")] [LookupName("MDH.SanitaryMeasuresDate_1")]
public DateTime? SanitaryMeasuresDate { get; set; } public DateTime? SanitaryMeasuresDate { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
[LookupName("MDH.StowawaysDetected")] [LookupName("MDH.StowawaysDetected")]
public bool? StowawaysDetected { get; set; } public bool? StowawaysDetected { get; set; }
[ShowReport] [ShowReport]
[LookupName("MDH.StowawaysJoiningLocation_1")] // TODO: NSW 3.0: wird ein Array [LookupName("MDH.StowawaysJoiningLocation_1")] // TODO: NSW 3.0: wird ein Array
[MaxLength(100)]
public string StowawaysJoiningLocation { get; set; } public string StowawaysJoiningLocation { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
[LookupName("MDH.SickAnimalOrPetOnBoard")] [LookupName("MDH.SickAnimalOrPetOnBoard")]
public bool? SickAnimalOrPetOnBoard { get; set; } public bool? SickAnimalOrPetOnBoard { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
[LookupName("MDH.ValidSanitaryControlExemptionOrCertificateOnBoard")] [LookupName("MDH.ValidSanitaryControlExemptionOrCertificateOnBoard")]
public bool? ValidSanitaryControlExemptionOrCertificateOnBoard { get; set; } public bool? ValidSanitaryControlExemptionOrCertificateOnBoard { get; set; }
[ShowReport] [ShowReport]
[LookupName("MDH.PlaceOfIssue")] [LookupName("MDH.PlaceOfIssue")]
[MaxLength(100)]
public string PlaceOfIssue { get; set; } public string PlaceOfIssue { get; set; }
[ShowReport] [ShowReport]
[LookupName("MDH.DateOfIssue")] [LookupName("MDH.DateOfIssue")]
public DateTime? DateOfIssue { get; set; } public DateTime? DateOfIssue { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
[LookupName("SanitaryControlReinspectionRequired")] [LookupName("SanitaryControlReinspectionRequired")]
public bool? SanitaryControlReinspectionRequired { get; set; } public bool? SanitaryControlReinspectionRequired { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
[LookupName("MDH.InfectedAreaVisited")] [LookupName("MDH.InfectedAreaVisited")]
public bool? InfectedAreaVisited { get; set; } public bool? InfectedAreaVisited { get; set; }
[ShowReport] [ShowReport]
[LookupName("MDH.InfectedAreaPort_1")] // TODO: NSW 3.0: wird ein Array [LookupName("MDH.InfectedAreaPort_1")] // TODO: NSW 3.0: wird ein Array
[MaxLength(100)]
public string InfectedAreaPort { get; set; } public string InfectedAreaPort { get; set; }
[ShowReport] [ShowReport]
[LookupName("MDH.InfectedAreaDate_1")] [LookupName("MDH.InfectedAreaDate_1")]
public DateTime? InfectedAreaDate { get; set; } public DateTime? InfectedAreaDate { get; set; }

View File

@ -55,16 +55,22 @@ namespace bsmd.database
#region Properties #region Properties
[MaxLength(25)]
public string VisitId { get; set; } public string VisitId { get; set; }
[MaxLength(25)]
public string TransitId { get; set; } public string TransitId { get; set; }
[MaxLength(7)]
public string IMO { get; set; } public string IMO { get; set; }
[MaxLength(8)]
public string ENI { get; set; } public string ENI { get; set; }
[MaxLength(5)]
public string PoC { get; set; } public string PoC { get; set; }
[MaxLength(50)]
public string Portname { get; set; } public string Portname { get; set; }
public DateTime? ETA { get; set; } public DateTime? ETA { get; set; }
@ -83,10 +89,13 @@ namespace bsmd.database
public Guid? HerbergFormTemplateGuid { get; set; } public Guid? HerbergFormTemplateGuid { get; set; }
[MaxLength(50)]
public string HerbergReportType { get; set; } public string HerbergReportType { get; set; }
[MaxLength(255)]
public string HerbergEmailContactReportingVessel { get; set; } public string HerbergEmailContactReportingVessel { get; set; }
[MaxLength(255)]
public string HerbergEmail24HrsContact { get; set; } public string HerbergEmail24HrsContact { get; set; }
public DateTime? HerbergRevDate { get; set; } public DateTime? HerbergRevDate { get; set; }
@ -97,6 +106,7 @@ namespace bsmd.database
public ReportStatusEnum ReportStatus { get; set; } public ReportStatusEnum ReportStatus { get; set; }
[MaxLength(50)]
public string SietasSheetVersion { get; set; } public string SietasSheetVersion { get; set; }
public Guid? DefaultReportingPartyId { get; set; } public Guid? DefaultReportingPartyId { get; set; }

View File

@ -27,6 +27,7 @@ namespace bsmd.database
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[LookupName("NAME.NameOfMaster")] [LookupName("NAME.NameOfMaster")]
[MaxLength(100)]
public string NameOfMaster { get; set; } public string NameOfMaster { get; set; }
#endregion #endregion

View File

@ -29,25 +29,35 @@ namespace bsmd.database
[ShowReport] [ShowReport]
[Validation1(ValidationCode.NOT_NULL)] [Validation1(ValidationCode.NOT_NULL)]
public DateTime? ETAToPortOfCall { get; set; } public DateTime? ETAToPortOfCall { get; set; }
[ShowReport] [ShowReport]
[Validation1(ValidationCode.NOT_NULL)] [Validation1(ValidationCode.NOT_NULL)]
public DateTime? ETDFromPortOfCall { get; set; } public DateTime? ETDFromPortOfCall { get; set; }
[Validation1(ValidationCode.NOT_NULL)] [Validation1(ValidationCode.NOT_NULL)]
public List<CallPurpose> CallPurposes { get { return this.callPurposes; } } public List<CallPurpose> CallPurposes { get { return this.callPurposes; } }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
public DateTime? ETAToKielCanal { get; set; } public DateTime? ETAToKielCanal { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
public DateTime? ETDFromKielCanal { get; set; } public DateTime? ETDFromKielCanal { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(5)]
public string LastPort { get; set; } public string LastPort { get; set; }
[ShowReport] [ShowReport]
public DateTime? ETDFromLastPort { get; set; } public DateTime? ETDFromLastPort { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(5)]
public string NextPort { get; set; } public string NextPort { get; set; }
[ShowReport] [ShowReport]
public DateTime? ETAToNextPort { get; set; } public DateTime? ETAToNextPort { get; set; }

View File

@ -23,19 +23,26 @@ namespace bsmd.database
} }
#region Properties #region Properties
[ShowReport] [ShowReport]
[ReportDisplayName("Last name")] [ReportDisplayName("Last name")]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(100)]
public string PassengerLastName { get; set; } public string PassengerLastName { get; set; }
[ShowReport] [ShowReport]
[ReportDisplayName("First name")] [ReportDisplayName("First name")]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(100)]
public string PassengerFirstName { get; set; } public string PassengerFirstName { get; set; }
[ShowReport] [ShowReport]
[ReportDisplayName("Place of birth")] [ReportDisplayName("Place of birth")]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(100)]
public string PassengerPlaceOfBirth { get; set; } public string PassengerPlaceOfBirth { get; set; }
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
public DateTime? PassengerDateOfBirth { get; set; } public DateTime? PassengerDateOfBirth { get; set; }
@ -59,6 +66,7 @@ namespace bsmd.database
[ShowReport] [ShowReport]
[ReportDisplayName("Nationality")] [ReportDisplayName("Nationality")]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(2)]
public string PassengerNationality { get; set; } public string PassengerNationality { get; set; }
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
@ -71,18 +79,26 @@ namespace bsmd.database
[ShowReport] [ShowReport]
[ReportDisplayName("Identity document id")] [ReportDisplayName("Identity document id")]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(100)]
public string PassengerIdentityDocumentId { get; set; } public string PassengerIdentityDocumentId { get; set; }
[ShowReport] [ShowReport]
[ReportDisplayName("Visa number")] [ReportDisplayName("Visa number")]
[MaxLength(100)]
public string PassengerVisaNumber { get; set; } public string PassengerVisaNumber { get; set; }
[ShowReport] [ShowReport]
[ReportDisplayName("Port of embarkation")] [ReportDisplayName("Port of embarkation")]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(5)]
public string PassengerPortOfEmbarkation { get; set; } public string PassengerPortOfEmbarkation { get; set; }
[ShowReport] [ShowReport]
[ReportDisplayName("Port of disembarkation")] [ReportDisplayName("Port of disembarkation")]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(5)]
public string PassengerPortOfDisembarkation { get; set; } public string PassengerPortOfDisembarkation { get; set; }
[ShowReport] [ShowReport]
[ReportDisplayName("In transit")] [ReportDisplayName("In transit")]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]

View File

@ -28,27 +28,38 @@ namespace bsmd.database
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[LookupName("PRE72H.Tanker")] [LookupName("PRE72H.Tanker")]
public bool? Tanker { get; set; } public bool? Tanker { get; set; }
[ShowReport] [ShowReport]
public byte? TankerHullConfiguration { get; set; } public byte? TankerHullConfiguration { get; set; }
[ShowReport] [ShowReport]
public byte? ConditionCargoBallastTanks { get; set; } public byte? ConditionCargoBallastTanks { get; set; }
[ShowReport] [ShowReport]
[LookupName("PRE72H.NaturOfCargo")] [LookupName("PRE72H.NaturOfCargo")]
[MaxLength(100)]
public string NatureOfCargo { get; set; } public string NatureOfCargo { get; set; }
[ShowReport] [ShowReport]
[LookupName("PRE72H.VolumeOfCargo_TNE")] [LookupName("PRE72H.VolumeOfCargo_TNE")]
public double? VolumeOfCargo { get; set; } public double? VolumeOfCargo { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[LookupName("PRE72H.PlannedOperations")] [LookupName("PRE72H.PlannedOperations")]
[MaxLength(100)]
public string PlannedOperations { get; set; } public string PlannedOperations { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[LookupName("PRE72H.PlannedWorks")] [LookupName("PRE72H.PlannedWorks")]
[MaxLength(255)]
public string PlannedWorks { get; set; } public string PlannedWorks { get; set; }
[ShowReport] [ShowReport]
[LookupName("PRE72H.DateOfLastExpandedInspection")] [LookupName("PRE72H.DateOfLastExpandedInspection")]
public DateTime? DateOfLastExpandedInspection { get; set; } public DateTime? DateOfLastExpandedInspection { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.DOUBLE_GT_ZERO)] [Validation(ValidationCode.DOUBLE_GT_ZERO)]
[LookupName("PRE72H.PlannedPeriodOfStay_HUR")] [LookupName("PRE72H.PlannedPeriodOfStay_HUR")]

View File

@ -14,14 +14,19 @@ namespace bsmd.database
#region Properties #region Properties
[MaxLength(10)]
public string Country { get; set; } public string Country { get; set; }
[MaxLength(5)]
public string Locode { get; set; } public string Locode { get; set; }
[MaxLength(255)]
public string Port { get; set; } public string Port { get; set; }
[MaxLength(10)]
public string Code { get; set; } public string Code { get; set; }
[MaxLength(255)]
public string Name { get; set; } public string Name { get; set; }
#endregion #endregion

View File

@ -31,10 +31,13 @@ namespace bsmd.database
public List<PortOfCallLast30DaysCrewJoinedShip> CrewJoinedShip { get { return this.poc30Crew; } } public List<PortOfCallLast30DaysCrewJoinedShip> CrewJoinedShip { get { return this.poc30Crew; } }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.LOCODE)] [Validation2(ValidationCode.LOCODE)]
[MaxLength(5)]
public string PortOfCallLast30DaysLocode { get; set; } public string PortOfCallLast30DaysLocode { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
public DateTime? PortOfCallLast30DaysDateOfDeparture { get; set; } public DateTime? PortOfCallLast30DaysDateOfDeparture { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
public bool? PortOfCallLast30DaysCrewMembersJoined { get; set; } public bool? PortOfCallLast30DaysCrewMembersJoined { get; set; }

View File

@ -25,8 +25,10 @@ namespace bsmd.database
#region Properties #region Properties
public PortOfCallLast30Days PortOfCallLast30Days { get; set; } public PortOfCallLast30Days PortOfCallLast30Days { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
[MaxLength(255)]
public string PortOfCallLast30DaysCrewJoinedShipName { get; set; } public string PortOfCallLast30DaysCrewJoinedShipName { get; set; }
public string Identifier { get; set; } public string Identifier { get; set; }

View File

@ -25,9 +25,12 @@ namespace bsmd.database
#region Properties #region Properties
public BPOL BPOL { get; set; } public BPOL BPOL { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(100)]
public string PortOfItineraryName { get; set; } public string PortOfItineraryName { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
public DateTime? PortOfItineraryETA { get; set; } public DateTime? PortOfItineraryETA { get; set; }

View File

@ -2,6 +2,6 @@
[assembly: AssemblyCompany("Informatikbüro Daniel Schick")] [assembly: AssemblyCompany("Informatikbüro Daniel Schick")]
[assembly: AssemblyProduct("BSMD NSW interface")] [assembly: AssemblyProduct("BSMD NSW interface")]
[assembly: AssemblyInformationalVersion("3.1.6")] [assembly: AssemblyInformationalVersion("3.2.0")]
[assembly: AssemblyCopyright("Copyright © 2014-2016 Informatikbüro Daniel Schick. All rights reserved.")] [assembly: AssemblyCopyright("Copyright © 2014-2016 Informatikbüro Daniel Schick. All rights reserved.")]
[assembly: AssemblyTrademark("")] [assembly: AssemblyTrademark("")]

View File

@ -1,4 +1,4 @@
using System.Reflection; using System.Reflection;
[assembly: AssemblyVersion("3.1.6.*")] [assembly: AssemblyVersion("3.2.0.*")]

View File

@ -20,24 +20,34 @@ namespace bsmd.database
#region Properties #region Properties
[MaxLength(100)]
public string Name { get; set; } public string Name { get; set; }
[MaxLength(100)]
public string StreetAndNumber { get; set; } public string StreetAndNumber { get; set; }
[MaxLength(25)]
public string PostalCode { get; set; } public string PostalCode { get; set; }
[MaxLength(100)]
public string City { get; set; } public string City { get; set; }
[MaxLength(100)]
public string Country { get; set; } public string Country { get; set; }
[MaxLength(100)]
public string LastName { get; set; } public string LastName { get; set; }
[MaxLength(100)]
public string FirstName { get; set; } public string FirstName { get; set; }
[MaxLength(100)]
public string Phone { get; set; } public string Phone { get; set; }
[MaxLength(100)]
public string Fax { get; set; } public string Fax { get; set; }
[MaxLength(100)]
public string EMail { get; set; } public string EMail { get; set; }
public ReportingPartyTypeEnum? ReportingPartyType { get; set; } public ReportingPartyTypeEnum? ReportingPartyType { get; set; }

View File

@ -27,44 +27,62 @@ namespace bsmd.database
} }
#region Properties #region Properties
[ShowReport] [ShowReport]
[Validation1(ValidationCode.NOT_NULL)] [Validation1(ValidationCode.NOT_NULL)]
public bool? SECSimplification { get; set; } public bool? SECSimplification { get; set; }
[ShowReport] [ShowReport]
[Validation1(ValidationCode.LOCODE_GER)] [Validation1(ValidationCode.LOCODE_GER)]
[MaxLength(5)]
public string PortOfCallWhereCompleteSECNotified { get; set; } public string PortOfCallWhereCompleteSECNotified { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
[LookupName("SEC.CSOLastName")] [LookupName("SEC.CSOLastName")]
[MaxLength(100)]
public string CSOLastName { get; set; } public string CSOLastName { get; set; }
[ShowReport] [ShowReport]
[MaxLength(100)]
public string CSOFirstName { get; set; } public string CSOFirstName { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
[LookupName("SEC.CSOPhone")] [LookupName("SEC.CSOPhone")]
[MaxLength(100)]
public string CSOPhone { get; set; } public string CSOPhone { get; set; }
[ShowReport] [ShowReport]
[MaxLength(100)]
public string CSOFax { get; set; } public string CSOFax { get; set; }
[ShowReport] [ShowReport]
[MaxLength(100)]
public string CSOEMail { get; set; } public string CSOEMail { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
[LookupName("SEC.ValidISSCOnBoard")] [LookupName("SEC.ValidISSCOnBoard")]
public bool? ValidISSCOnBoard { get; set; } public bool? ValidISSCOnBoard { get; set; }
[ShowReport] [ShowReport]
[LookupName("SEC.ReasonsForNoValidISSC")] [LookupName("SEC.ReasonsForNoValidISSC")]
[MaxLength(255)]
public string ReasonsForNoValidISSC { get; set; } public string ReasonsForNoValidISSC { get; set; }
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
[LookupName("SEC.ISSCType")] [LookupName("SEC.ISSCType")]
public byte? ISSCType { get; set; } public byte? ISSCType { get; set; }
[ShowReport] [ShowReport]
[ReportDisplayName("ISSC type")] [ReportDisplayName("ISSC type")]
public string ISSCTypeDisplay { get { return Util.GetISSCTypeDisplay(this.ISSCType); } } public string ISSCTypeDisplay { get { return Util.GetISSCTypeDisplay(this.ISSCType); } }
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
[LookupName("SEC.ISSCIssuerType")] [LookupName("SEC.ISSCIssuerType")]
public byte? ISSCIssuerType { get; set; } public byte? ISSCIssuerType { get; set; }
[ShowReport] [ShowReport]
[ReportDisplayName("ISSC issuer type")] [ReportDisplayName("ISSC issuer type")]
public string ISSCIssuerTypeDisplay { get { return Util.GetISSCIssuerTypeDisplay(this.ISSCIssuerType); } } public string ISSCIssuerTypeDisplay { get { return Util.GetISSCIssuerTypeDisplay(this.ISSCIssuerType); } }
@ -72,21 +90,28 @@ namespace bsmd.database
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
[LookupName("SEC.ISSCIssuerName")] [LookupName("SEC.ISSCIssuerName")]
[MaxLength(100)]
public string ISSCIssuerName { get; set; } public string ISSCIssuerName { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
[LookupName("SEC.ISSCDateOfExpiration")] [LookupName("SEC.ISSCDateOfExpiration")]
public DateTime? ISSCDateOfExpiration { get; set; } public DateTime? ISSCDateOfExpiration { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
[LookupName("SEC.ApprovedSecurityPlanOnBoard")] [LookupName("SEC.ApprovedSecurityPlanOnBoard")]
public bool? ApprovedSecurityPlanOnBoard { get; set; } public bool? ApprovedSecurityPlanOnBoard { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[LookupName("SEC.CurrentShipSecurityLevel")] [LookupName("SEC.CurrentShipSecurityLevel")]
public byte? CurrentShipSecurityLevel { get; set; } public byte? CurrentShipSecurityLevel { get; set; }
[ShowReport] [ShowReport]
[MaxLength(100)]
public string PortFacilityOfArrival { get; set; } public string PortFacilityOfArrival { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
[LookupName("SEC.GeneralDescriptionOfCargo")] [LookupName("SEC.GeneralDescriptionOfCargo")]

View File

@ -23,15 +23,21 @@ namespace bsmd.database
} }
#region Properties #region Properties
[ShowReport] [ShowReport]
[MaxLength(100)]
public string ServiceName { get; set; } public string ServiceName { get; set; }
[ShowReport] [ShowReport]
[Validation1(ValidationCode.NOT_NULL)] [Validation1(ValidationCode.NOT_NULL)]
[LookupName("SERV.ServiceBeneficiary")] [LookupName("SERV.ServiceBeneficiary")]
[MaxLength(100)]
public string ServiceBeneficiary { get; set; } public string ServiceBeneficiary { get; set; }
[ShowReport] [ShowReport]
[Validation1(ValidationCode.NOT_NULL)] [Validation1(ValidationCode.NOT_NULL)]
[LookupName("SERV.ServiceInvoiceRecipient")] [LookupName("SERV.ServiceInvoiceRecipient")]
[MaxLength(100)]
public string ServiceInvoiceRecipient { get; set; } public string ServiceInvoiceRecipient { get; set; }
public string Identifier { get; set; } public string Identifier { get; set; }

View File

@ -27,21 +27,25 @@ namespace bsmd.database
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[LookupName("STAT.ShipName")] [LookupName("STAT.ShipName")]
[MaxLength(100)]
public string ShipName { get; set; } public string ShipName { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[LookupName("STAT.CallSign")] [LookupName("STAT.CallSign")]
[MaxLength(50)]
public string CallSign { get; set; } public string CallSign { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[LookupName("STAT.MMSINumber")] [LookupName("STAT.MMSINumber")]
[MaxLength(50)]
public string MMSINumber { get; set; } public string MMSINumber { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.FLAG_CODE)] [Validation(ValidationCode.FLAG_CODE)]
[LookupName("STAT.Flag")] [LookupName("STAT.Flag")]
[MaxLength(2)]
public string Flag { get; set; } public string Flag { get; set; }
[ShowReport] [ShowReport]
@ -62,15 +66,18 @@ namespace bsmd.database
[ShowReport] [ShowReport]
[Validation(ValidationCode.LOCODE)] [Validation(ValidationCode.LOCODE)]
[LookupName("STAT.PortOfRegistry")] [LookupName("STAT.PortOfRegistry")]
[MaxLength(5)]
public string PortOfRegistry { get; set; } public string PortOfRegistry { get; set; }
[ShowReport] [ShowReport]
[MaxLength(100)]
public string InmarsatCallNumber { get; set; } public string InmarsatCallNumber { get; set; }
/// <summary> /// <summary>
/// UNECE Rec.19 Code (http://www.unece.org/fileadmin/DAM/cefact/recommendations/rec19/rec19_ecetrd138.pdf) /// UNECE Rec.19 Code (http://www.unece.org/fileadmin/DAM/cefact/recommendations/rec19/rec19_ecetrd138.pdf)
/// </summary> /// </summary>
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(1)]
public string TransportMode { get; set; } public string TransportMode { get; set; }
[ShowReport] [ShowReport]
@ -90,27 +97,34 @@ namespace bsmd.database
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[LookupName("STAT.ShipType")] [LookupName("STAT.ShipType")]
[MaxLength(5)]
public string ShipType { get; set; } public string ShipType { get; set; }
[ShowReport] [ShowReport]
[LookupName("STAT.ISMCompanyName")] [LookupName("STAT.ISMCompanyName")]
[MaxLength(100)]
public string ISMCompanyName { get; set; } public string ISMCompanyName { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.STRING_EXACT_LEN, 7)] [Validation(ValidationCode.STRING_EXACT_LEN, 7)]
[LookupName("STAT.ISMCompanyId")] [LookupName("STAT.ISMCompanyId")]
[MaxLength(10)]
public string ISMCompanyId { get; set; } public string ISMCompanyId { get; set; }
[ShowReport] [ShowReport]
[MaxLength(100)]
public string ISMCompanyStreetAndNumber { get; set; } public string ISMCompanyStreetAndNumber { get; set; }
[ShowReport] [ShowReport]
[MaxLength(24)]
public string ISMCompanyPostalCode { get; set; } public string ISMCompanyPostalCode { get; set; }
[ShowReport] [ShowReport]
[MaxLength(100)]
public string ISMCompanyCity { get; set; } public string ISMCompanyCity { get; set; }
[ShowReport] [ShowReport]
[MaxLength(100)]
public string ISMCompanyCountry { get; set; } public string ISMCompanyCountry { get; set; }
public override string Subtitle public override string Subtitle

View File

@ -28,9 +28,11 @@ namespace bsmd.database
public MDH MDH { get; set; } public MDH MDH { get; set; }
[ShowReport] [ShowReport]
[MaxLength(255)]
public string SanitaryMeasuresType { get; set; } public string SanitaryMeasuresType { get; set; }
[ShowReport] [ShowReport]
[MaxLength(255)]
public string SanitaryMeasuresLocation { get; set; } public string SanitaryMeasuresLocation { get; set; }
[ShowReport] [ShowReport]

View File

@ -25,24 +25,36 @@ namespace bsmd.database
#region Properties #region Properties
public SEC SEC { get; set; } public SEC SEC { get; set; }
[ShowReport] [ShowReport]
[MaxLength(255)]
public string ShipToShipActivityLocationName { get; set; } public string ShipToShipActivityLocationName { get; set; }
[ShowReport] [ShowReport]
[MaxLength(5)]
public string ShipToShipActivityLocationLoCode { get; set; } public string ShipToShipActivityLocationLoCode { get; set; }
[ShowReport] [ShowReport]
public int? ShipToShipActivityLocationCoordinatesLatitude { get; set; } public int? ShipToShipActivityLocationCoordinatesLatitude { get; set; }
[ShowReport] [ShowReport]
public int? ShipToShipActivityLocationCoordinatesLongitude { get; set; } public int? ShipToShipActivityLocationCoordinatesLongitude { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
public DateTime? ShipToShipActivityDateFrom { get; set; } public DateTime? ShipToShipActivityDateFrom { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
public DateTime? ShipToShipActivityDateTo { get; set; } public DateTime? ShipToShipActivityDateTo { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
[MaxLength(255)]
public string ShipToShipActivityType { get; set; } public string ShipToShipActivityType { get; set; }
[ShowReport] [ShowReport]
[MaxLength(255)]
public string ShipToShipActivitySecurityMattersToReport { get; set; } public string ShipToShipActivitySecurityMattersToReport { get; set; }
public string Identifier { get; set; } public string Identifier { get; set; }

View File

@ -28,6 +28,7 @@ namespace bsmd.database
public MDH MDH { get; set; } public MDH MDH { get; set; }
[ShowReport] [ShowReport]
[MaxLength(255)]
public string StowawayJoiningLocation { get; set; } public string StowawayJoiningLocation { get; set; }
public string Identifier { get; set; } public string Identifier { get; set; }

View File

@ -27,6 +27,7 @@ namespace bsmd.database
public IMDGPosition IMDGPosition { get; set; } public IMDGPosition IMDGPosition { get; set; }
[ShowReport] [ShowReport]
[MaxLength(11)]
public string SubsidiaryRisk { get; set; } public string SubsidiaryRisk { get; set; }
public string Identifier { get; set; } public string Identifier { get; set; }

View File

@ -26,35 +26,45 @@ namespace bsmd.database
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[LookupName("TOWA.TowageOnArrivalName")] [LookupName("TOWA.TowageOnArrivalName")]
[MaxLength(100)]
public string TowageOnArrivalName { get; set; } public string TowageOnArrivalName { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.FLAG_CODE)] [Validation(ValidationCode.FLAG_CODE)]
[LookupName("TOWA.TowageOnArrivalFlag")] [LookupName("TOWA.TowageOnArrivalFlag")]
[MaxLength(2)]
public string TowageOnArrivalFlag { get; set; } public string TowageOnArrivalFlag { get; set; }
[ShowReport] [ShowReport]
[MaxLength(100)]
public string TowageOnArrivalOperatorCompanyName { get; set; } public string TowageOnArrivalOperatorCompanyName { get; set; }
[ShowReport] [ShowReport]
[MaxLength(100)]
public string TowageOnArrivalOperatorStreetNameAndNumber { get; set; } public string TowageOnArrivalOperatorStreetNameAndNumber { get; set; }
[ShowReport] [ShowReport]
[MaxLength(24)]
public string TowageOnArrivalOperatorPostalCode { get; set; } public string TowageOnArrivalOperatorPostalCode { get; set; }
[ShowReport] [ShowReport]
[MaxLength(100)]
public string TowageOnArrivalOperatorCity { get; set; } public string TowageOnArrivalOperatorCity { get; set; }
[ShowReport] [ShowReport]
[MaxLength(100)]
public string TowageOnArrivalOperatorCountry { get; set; } public string TowageOnArrivalOperatorCountry { get; set; }
[ShowReport] [ShowReport]
[MaxLength(100)]
public string TowageOnArrivalOperatorPhone { get; set; } public string TowageOnArrivalOperatorPhone { get; set; }
[ShowReport] [ShowReport]
[MaxLength(100)]
public string TowageOnArrivalOperatorFax { get; set; } public string TowageOnArrivalOperatorFax { get; set; }
[ShowReport] [ShowReport]
[MaxLength(100)]
public string TowageOnArrivalOperatorEmail { get; set; } public string TowageOnArrivalOperatorEmail { get; set; }
[ShowReport] [ShowReport]
@ -75,6 +85,7 @@ namespace bsmd.database
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[LookupName("TOWA.TowageOnArrivalPurposeOfCall")] [LookupName("TOWA.TowageOnArrivalPurposeOfCall")]
[MaxLength(100)]
public string TowageOnArrivalPurposeOfCall { get; set; } public string TowageOnArrivalPurposeOfCall { get; set; }
[ShowReport] [ShowReport]
@ -83,6 +94,7 @@ namespace bsmd.database
public double? TowageOnArrivalDraught_DMT { get; set; } public double? TowageOnArrivalDraught_DMT { get; set; }
[ShowReport] [ShowReport]
[MaxLength(255)]
public string TowageOnArrivalRemarks { get; set; } public string TowageOnArrivalRemarks { get; set; }
public string Identifier { get; set; } public string Identifier { get; set; }

View File

@ -27,34 +27,44 @@ namespace bsmd.database
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[LookupName("TOWD.TowageOnDepartureName")] [LookupName("TOWD.TowageOnDepartureName")]
[MaxLength(100)]
public string TowageOnDepartureName { get; set; } public string TowageOnDepartureName { get; set; }
[ShowReport] [ShowReport]
[LookupName("TOWD.TowageOnDepartureFlag")] [LookupName("TOWD.TowageOnDepartureFlag")]
[MaxLength(2)]
public string TowageOnDepartureFlag { get; set; } public string TowageOnDepartureFlag { get; set; }
[ShowReport] [ShowReport]
[MaxLength(100)]
public string TowageOnDepartureOperatorCompanyName { get; set; } public string TowageOnDepartureOperatorCompanyName { get; set; }
[ShowReport] [ShowReport]
[MaxLength(100)]
public string TowageOnDepartureOperatorStreetNameAndNumber { get; set; } public string TowageOnDepartureOperatorStreetNameAndNumber { get; set; }
[ShowReport] [ShowReport]
[MaxLength(24)]
public string TowageOnDepartureOperatorPostalCode { get; set; } public string TowageOnDepartureOperatorPostalCode { get; set; }
[ShowReport] [ShowReport]
[MaxLength(100)]
public string TowageOnDepartureOperatorCity { get; set; } public string TowageOnDepartureOperatorCity { get; set; }
[ShowReport] [ShowReport]
[MaxLength(100)]
public string TowageOnDepartureOperatorCountry { get; set; } public string TowageOnDepartureOperatorCountry { get; set; }
[ShowReport] [ShowReport]
[MaxLength(100)]
public string TowageOnDepartureOperatorPhone { get; set; } public string TowageOnDepartureOperatorPhone { get; set; }
[ShowReport] [ShowReport]
[MaxLength(100)]
public string TowageOnDepartureOperatorFax { get; set; } public string TowageOnDepartureOperatorFax { get; set; }
[ShowReport] [ShowReport]
[MaxLength(100)]
public string TowageOnDepartureOperatorEmail { get; set; } public string TowageOnDepartureOperatorEmail { get; set; }
[ShowReport] [ShowReport]
@ -71,6 +81,7 @@ namespace bsmd.database
public double? TowageOnDepartureDraught_DMT { get; set; } public double? TowageOnDepartureDraught_DMT { get; set; }
[ShowReport] [ShowReport]
[MaxLength(255)]
public string TowageOnDepartureRemarks { get; set; } public string TowageOnDepartureRemarks { get; set; }
public string Identifier { get; set; } public string Identifier { get; set; }

View File

@ -147,4 +147,25 @@ namespace bsmd.database
#endregion #endregion
#region Überprüfung der maximalen String-Länge
[AttributeUsage(AttributeTargets.Property)]
public class MaxLengthAttribute : Attribute
{
private int maxLength;
public MaxLengthAttribute(int length)
{
this.maxLength = length;
}
public int MaxLength
{
get { return this.maxLength; }
set { this.maxLength = value; }
}
}
#endregion
} }

View File

@ -27,19 +27,25 @@ namespace bsmd.database
} }
#region Properties #region Properties
[ShowReport] [ShowReport]
public bool? WasteDisposalValidExemption { get; set; } public bool? WasteDisposalValidExemption { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
[MaxLength(5)]
public string LastWasteDisposalPort { get; set; } public string LastWasteDisposalPort { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
[LookupName("WAS.ConfirmationOfCorrectness")] [LookupName("WAS.ConfirmationOfCorrectness")]
public bool? ConfirmationOfCorrectness { get; set; } public bool? ConfirmationOfCorrectness { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
[LookupName("WAS.LastWasteDisposalDate")] [LookupName("WAS.LastWasteDisposalDate")]
public DateTime? LastWasteDisposalDate { get; set; } public DateTime? LastWasteDisposalDate { get; set; }
[ShowReport] [ShowReport]
[Validation2(ValidationCode.NOT_NULL)] [Validation2(ValidationCode.NOT_NULL)]
public byte? WasteDisposalDelivery { get; set; } public byte? WasteDisposalDelivery { get; set; }

View File

@ -50,22 +50,29 @@ namespace bsmd.database
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
public byte? WasteType { get; set; } public byte? WasteType { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
[MaxLength(100)]
public string WasteDescription { get; set; } public string WasteDescription { get; set; }
[ShowReport] [ShowReport]
[Validation(ValidationCode.NOT_NULL)] [Validation(ValidationCode.NOT_NULL)]
public double? WasteDisposalAmount_MTQ { get; set; } public double? WasteDisposalAmount_MTQ { get; set; }
[ShowReport] [ShowReport]
public double? WasteCapacity_MTQ { get; set; } public double? WasteCapacity_MTQ { get; set; }
[ShowReport] [ShowReport]
public double? WasteAmountRetained_MTQ { get; set; } public double? WasteAmountRetained_MTQ { get; set; }
[ShowReport] [ShowReport]
[MaxLength(5)]
public string WasteDisposalPort { get; set; } public string WasteDisposalPort { get; set; }
[ShowReport] [ShowReport]
public double? WasteAmountGeneratedTillNextPort_MTQ { get; set; } public double? WasteAmountGeneratedTillNextPort_MTQ { get; set; }
public string Identifier { get; set; } public string Identifier { get; set; }
#endregion #endregion

View File

@ -25,8 +25,11 @@ namespace bsmd.database
#region Properties #region Properties
public WAS WAS { get; set; } public WAS WAS { get; set; }
[ShowReport] [ShowReport]
[MaxLength(100)]
public string WasteDisposalServiceProviderName { get; set; } public string WasteDisposalServiceProviderName { get; set; }
[ShowReport] [ShowReport]
public byte? WasteDisposalDelivery { get; set; } public byte? WasteDisposalDelivery { get; set; }

View File

@ -90,8 +90,7 @@ namespace bsmd.email.Properties {
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("<?xml version=\"1.0\" encoding=\"utf-16\"?>\r\n<ArrayOfString xmlns:xsi=\"http://www.w3." + [global::System.Configuration.DefaultSettingValueAttribute("<?xml version=\"1.0\" encoding=\"utf-16\"?>\r\n<ArrayOfString xmlns:xsi=\"http://www.w3." +
"org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\r\n <s" + "org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\r\n <s" +
"tring>nsw@textbausteine.net</string>\r\n <string>hollmann@bsmd.de</string>\r\n</Arr" + "tring>nsw@textbausteine.net</string>\r\n</ArrayOfString>")]
"ayOfString>")]
public global::System.Collections.Specialized.StringCollection Recipient { public global::System.Collections.Specialized.StringCollection Recipient {
get { get {
return ((global::System.Collections.Specialized.StringCollection)(this["Recipient"])); return ((global::System.Collections.Specialized.StringCollection)(this["Recipient"]));

View File

@ -27,7 +27,6 @@
<Value Profile="(Default)">&lt;?xml version="1.0" encoding="utf-16"?&gt; <Value Profile="(Default)">&lt;?xml version="1.0" encoding="utf-16"?&gt;
&lt;ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt; &lt;ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"&gt;
&lt;string&gt;nsw@textbausteine.net&lt;/string&gt; &lt;string&gt;nsw@textbausteine.net&lt;/string&gt;
&lt;string&gt;hollmann@bsmd.de&lt;/string&gt;
&lt;/ArrayOfString&gt;</Value> &lt;/ArrayOfString&gt;</Value>
</Setting> </Setting>
<Setting Name="Sender" Type="System.String" Scope="Application"> <Setting Name="Sender" Type="System.String" Scope="Application">

View File

@ -33,7 +33,6 @@
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<string>nsw@textbausteine.net</string> <string>nsw@textbausteine.net</string>
<string>hollmann@bsmd.de</string>
</ArrayOfString> </ArrayOfString>
</value> </value>
</setting> </setting>

Binary file not shown.