From 8e70a7ecde942d1fe12a73dcda6e5c5497a2e09a Mon Sep 17 00:00:00 2001 From: Daniel Schick Date: Wed, 6 Mar 2019 17:16:09 +0000 Subject: [PATCH] =?UTF-8?q?Zwischenstand=20Bearbeitung=20M=C3=A4rz?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ENI-2/ENI2/ENI2/App.config | 8 ++++---- ENI-2/ENI2/ENI2/App.xaml.cs | 7 +++---- .../WasteDetailControl.xaml.cs | 5 ++--- ENI-2/ENI2/ENI2/ENI2.csproj | 4 ++-- ENI-2/ENI2/ENI2/LocalizedLookup.cs | 15 +++++++++++---- .../ENI2/Properties/Resources.Designer.cs | 2 +- ENI-2/ENI2/ENI2/Properties/Resources.resx | 2 +- Stundensheet.xlsx | Bin 39930 -> 39965 bytes nsw/Source/bsmd.ExcelReadService/Util.cs | 10 +++------- nsw/Source/bsmd.database/CREW.cs | 2 +- nsw/Source/bsmd.database/RuleEngine.cs | 15 +++++++++------ nsw/Source/bsmd.database/WAS.cs | 3 +-- 12 files changed, 38 insertions(+), 35 deletions(-) diff --git a/ENI-2/ENI2/ENI2/App.config b/ENI-2/ENI2/ENI2/App.config index ebb9b721..8fd27a4b 100644 --- a/ENI-2/ENI2/ENI2/App.config +++ b/ENI-2/ENI2/ENI2/App.config @@ -26,12 +26,12 @@ 1000 - http://192.168.2.4/LockingService/LockingService.svc - + + http://heupferd/bsmd.LockingService/LockingService.svc - Data Source=192.168.2.12;Initial Catalog=nsw;Uid=dfuser;Pwd=dfpasswd;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False - + + Data Source=(localdb)\Projects;Initial Catalog=nsw;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False diff --git a/ENI-2/ENI2/ENI2/App.xaml.cs b/ENI-2/ENI2/ENI2/App.xaml.cs index c9289697..4c4c46bf 100644 --- a/ENI-2/ENI2/ENI2/App.xaml.cs +++ b/ENI-2/ENI2/ENI2/App.xaml.cs @@ -82,6 +82,7 @@ namespace ENI2 List vFields = bsmd.database.ValidationRule.ValidationFields; RuleEngine.RegisterLocodeChecker(Util.GlobalStructures.IsValidLocode); RuleEngine.RegisterPortAreaChecker(LocalizedLookup.PortAreaExists); + RuleEngine.RegisterNationalityChecker(LocalizedLookup.CheckNationality); // Connect to locking service (if enabled) try @@ -108,8 +109,7 @@ namespace ENI2 private void DatePicker_PreviewKeyDown(object sender, KeyEventArgs e) { - var dp = sender as DatePicker; - if (dp == null) return; + if (!(sender is DatePicker dp)) return; if (e.Key == Key.D && Keyboard.Modifiers == ModifierKeys.Control) { @@ -140,7 +140,6 @@ namespace ENI2 ResetSplashCreated.Set(); System.Windows.Threading.Dispatcher.Run(); - } - + } } } diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/WasteDetailControl.xaml.cs b/ENI-2/ENI2/ENI2/DetailViewControls/WasteDetailControl.xaml.cs index d40d1e94..7af38dba 100644 --- a/ENI-2/ENI2/ENI2/DetailViewControls/WasteDetailControl.xaml.cs +++ b/ENI-2/ENI2/ENI2/DetailViewControls/WasteDetailControl.xaml.cs @@ -24,7 +24,7 @@ namespace ENI2.DetailViewControls private Message _wasMessage; private WAS _was; - private static string[] _wasteDeliveryList = + private static readonly string[] _wasteDeliveryList = { "ALL", "SOME", @@ -144,8 +144,7 @@ namespace ENI2.DetailViewControls private void DataGridWaste_DeleteRequested(DatabaseEntity obj) { - Waste waste = obj as Waste; - if (waste != null) + if (obj is Waste waste) { // are you sure dialog is in base class _was.Waste.Remove(waste); diff --git a/ENI-2/ENI2/ENI2/ENI2.csproj b/ENI-2/ENI2/ENI2/ENI2.csproj index 4c819638..fbe9d87d 100644 --- a/ENI-2/ENI2/ENI2/ENI2.csproj +++ b/ENI-2/ENI2/ENI2/ENI2.csproj @@ -35,8 +35,8 @@ 3.5.1.0 true publish.html - 1 - 5.1.4.%2a + 0 + 5.1.6.%2a false true true diff --git a/ENI-2/ENI2/ENI2/LocalizedLookup.cs b/ENI-2/ENI2/ENI2/LocalizedLookup.cs index a3253ab1..0a7d07fc 100644 --- a/ENI-2/ENI2/ENI2/LocalizedLookup.cs +++ b/ENI-2/ENI2/ENI2/LocalizedLookup.cs @@ -11,10 +11,11 @@ using bsmd.ExcelReadService; namespace ENI2 { - static class LocalizedLookup + internal static class LocalizedLookup { - private static SQLiteConnection _con; + private static readonly SQLiteConnection _con; private const string _locode_DB_NAME = "db.sqlite"; + private static Dictionary _nationalities = null; static LocalizedLookup() { @@ -71,6 +72,12 @@ namespace ENI2 return numResults > 0; } + public static bool CheckNationality(string nationality) + { + if (_nationalities == null) _nationalities = getNationalities(); + return _nationalities.ContainsKey(nationality); + } + public static Dictionary getNationalities() { Dictionary result = new Dictionary(); @@ -179,7 +186,7 @@ namespace ENI2 if (!reader.IsDBNull(0)) code = reader.GetString(0); if (!reader.IsDBNull(1)) description = reader.GetString(1); - if ((code != null) && (code.Length == 1)) + if (code?.Length == 1) code = string.Format("0{0}", code); // bei einstelligen Werten 0 voranstellen if ((code != null) && (description != null)) @@ -220,7 +227,7 @@ namespace ENI2 { List results = new List(); - string query = "SELECT LocationCode, LocationName FROM SSN_LOCODES WHERE LocationName like $PAR"; + const string query = "SELECT LocationCode, LocationName FROM SSN_LOCODES WHERE LocationName like $PAR"; SQLiteCommand cmd = new SQLiteCommand(query, _con); cmd.Parameters.AddWithValue("$PAR", city); IDataReader reader = cmd.ExecuteReader(); diff --git a/ENI-2/ENI2/ENI2/Properties/Resources.Designer.cs b/ENI-2/ENI2/ENI2/Properties/Resources.Designer.cs index 4d2a9c47..f5616dd1 100644 --- a/ENI-2/ENI2/ENI2/Properties/Resources.Designer.cs +++ b/ENI-2/ENI2/ENI2/Properties/Resources.Designer.cs @@ -3708,7 +3708,7 @@ namespace ENI2.Properties { } /// - /// Looks up a localized string similar to Risks. + /// Looks up a localized string similar to Hazards. /// public static string textRisks { get { diff --git a/ENI-2/ENI2/ENI2/Properties/Resources.resx b/ENI-2/ENI2/ENI2/Properties/Resources.resx index 73e214f0..9e7502cf 100644 --- a/ENI-2/ENI2/ENI2/Properties/Resources.resx +++ b/ENI-2/ENI2/ENI2/Properties/Resources.resx @@ -1298,7 +1298,7 @@ Radionuclide name - Risks + Hazards Stowage position diff --git a/Stundensheet.xlsx b/Stundensheet.xlsx index c23477cb822b8029c823f977f4171117fe11c93f..473b6e4ea53a401b20e00fc496a12ac3cfd098f4 100644 GIT binary patch delta 28826 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�eL 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 delta 28801 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 V>Xg 5) - { - string lastWasteDisposalPort = reader.ReadText("WAS.LastWasteDisposalPort"); - List deliveryLocodes = LocodeDB.AllLocodesForCityName(lastWasteDisposalPort); - if (deliveryLocodes.Count == 1) - was.LastWasteDisposalPort = deliveryLocodes[0]; - } + was.LastWasteDisposalPort = reader.ReadLoCode("WAS.LastWasteDisposalPort"); string wastedispServProvName = reader.ReadText("WAS.WasteDisposalServiceProviderName"); if (wastedispServProvName != null) diff --git a/nsw/Source/bsmd.database/CREW.cs b/nsw/Source/bsmd.database/CREW.cs index 23a2dc64..c7438f53 100644 --- a/nsw/Source/bsmd.database/CREW.cs +++ b/nsw/Source/bsmd.database/CREW.cs @@ -155,7 +155,7 @@ namespace bsmd.database } else { - scmd.Parameters.AddWithValue(@"ID", this.Id); + scmd.Parameters.AddWithValue("ID", this.Id); scmd.CommandText = string.Format("UPDATE {0} SET CrewMemberLastName = @P2, CrewMemberFirstName = @P3, " + "CrewMemberPlaceOfBirth = @P4, CrewMemberDateOfBirth = @P5, CrewMemberGender = @P6, CrewMemberNationality = @P7, "+ "CrewMemberIdentityDocumentType = @P8, CrewMemberIdentityDocumentId = @P9, CrewMemberVisaNumber = @P10, " + diff --git a/nsw/Source/bsmd.database/RuleEngine.cs b/nsw/Source/bsmd.database/RuleEngine.cs index ed67fa6f..5f7d75f2 100644 --- a/nsw/Source/bsmd.database/RuleEngine.cs +++ b/nsw/Source/bsmd.database/RuleEngine.cs @@ -106,12 +106,14 @@ namespace bsmd.database public delegate bool LocodeValidHandler(string locode, LocodeMode mode); public delegate bool PortAreaValidHandler(string locode, string portArea); + public delegate bool NationalityValidHandler(string nationality); private static readonly ILog log = LogManager.GetLogger(typeof(RuleEngine)); private static Dictionary errorTextList = null; private static Dictionary violationTextList = null; private static LocodeValidHandler _locodeChecker = null; private static PortAreaValidHandler _portAreaChecker = null; + private static NationalityValidHandler _nationalityChecker = null; public RuleEngine() { @@ -125,11 +127,14 @@ namespace bsmd.database public Dictionary> ViolationDict { get; } = new Dictionary>(); public static PortAreaValidHandler PortAreaChecker { get { return _portAreaChecker; } } + public static LocodeValidHandler LocodeChecker { get { return _locodeChecker; } } + public static NationalityValidHandler NationalityChecker { get { return _nationalityChecker; } } #region public static property validation public static void RegisterLocodeChecker(LocodeValidHandler handler) { _locodeChecker = handler; } public static void RegisterPortAreaChecker(PortAreaValidHandler handler) { _portAreaChecker = handler; } + public static void RegisterNationalityChecker(NationalityValidHandler handler) { _nationalityChecker = handler; } /// /// Test function checks decorated properties on an entity for errors (only errors, violations cannot @@ -271,9 +276,9 @@ namespace bsmd.database } break; case ValidationCode.FLAG_CODE: - { - Regex rgx = new Regex("[A-Z]{2}"); - if(!rgx.IsMatch(value)) errors.Add(RuleEngine.CreateError(validationCode, property.Name, value, entity.Title, identifier, entity.Tablename)); + { + if(!RuleEngine.NationalityChecker(value)) + errors.Add(RuleEngine.CreateError(validationCode, property.Name, value, entity.Title, identifier, entity.Tablename)); } break; case ValidationCode.TWO_DIGIT: @@ -464,9 +469,7 @@ namespace bsmd.database public static bool IsGermanLocode(string val) { return gerLocodeList.Contains(val.ToUpper()); - } - - public static LocodeValidHandler LocodeChecker { get { return _locodeChecker; } } + } #endregion diff --git a/nsw/Source/bsmd.database/WAS.cs b/nsw/Source/bsmd.database/WAS.cs index 90dec340..b5529f20 100644 --- a/nsw/Source/bsmd.database/WAS.cs +++ b/nsw/Source/bsmd.database/WAS.cs @@ -43,8 +43,7 @@ namespace bsmd.database public bool? WasteDisposalValidExemption { get; set; } [ShowReport] - [Validation2(ValidationCode.LOCODE)] - [LookupName("WAS.LastWasteDisposalPort")] + [Validation2(ValidationCode.LOCODE)] [MaxLength(5)] [ENI2Validation] public string LastWasteDisposalPort { get; set; }