From 14d48d2b20ede20da32e944f17dbe7aa47d561ff Mon Sep 17 00:00:00 2001 From: Daniel Schick Date: Wed, 24 Jan 2018 06:08:28 +0000 Subject: [PATCH] Kleinigkeiten korrigiert auf dem Weg zur neuen Version --- .../Controls/ReportingPartyControl.xaml.cs | 27 ++++++++++++++++++ .../PSC72hDetailControl.xaml.cs | 1 + .../ENI2/EditControls/EditBKRDialog.xaml.cs | 1 + .../EditCallPurposeDialog.xaml.cs | 3 +- ENI-2/ENI2/ENI2/MainWindow.xaml.cs | 3 ++ .../ENI2/Properties/Resources.Designer.cs | 27 ++++++++++++++++++ ENI-2/ENI2/ENI2/Properties/Resources.resx | 9 ++++++ Stundensheet.xlsx | Bin 35744 -> 35853 bytes .../bsmd.ExcelReadService/ExcelReadService.cs | 18 ++++++------ nsw/Source/bsmd.dakosy/Request.cs | 4 +-- nsw/Source/bsmd.database/CallPurpose.cs | 3 +- nsw/Source/bsmd.database/INFO.cs | 4 +-- .../LastTenPortFacilitiesCalled.cs | 11 +++++-- nsw/Source/bsmd.database/NOA_NOD.cs | 11 +++++-- nsw/Source/bsmd.database/RuleEngine.cs | 8 ++++++ nsw/Source/bsmd.dbh/Request.cs | 6 ++-- nsw/Source/bsmd.hisnord/Request.cs | 15 ++++++---- 17 files changed, 122 insertions(+), 29 deletions(-) diff --git a/ENI-2/ENI2/ENI2/Controls/ReportingPartyControl.xaml.cs b/ENI-2/ENI2/ENI2/Controls/ReportingPartyControl.xaml.cs index 197b7033..cdebb1dd 100644 --- a/ENI-2/ENI2/ENI2/Controls/ReportingPartyControl.xaml.cs +++ b/ENI-2/ENI2/ENI2/Controls/ReportingPartyControl.xaml.cs @@ -9,6 +9,7 @@ using bsmd.database; using ENI2.EditControls; using System.Collections.ObjectModel; using System.Windows.Controls; +using System.Windows.Media.Imaging; namespace ENI2.Controls { @@ -29,11 +30,37 @@ namespace ENI2.Controls { this.dataGridReportingParties.Initialize(); this.dataGridReportingParties.ItemsSource = this.ReportingParties; + this.dataGridReportingParties.CreateRequested += DataGridReportingParties_CreateRequested; this.dataGridReportingParties.AddingNewItem += DataGridReportingParties_AddingNewItem; this.dataGridReportingParties.EditRequested += DataGridReportingParties_EditRequested; this.dataGridReportingParties.DeleteRequested += DataGridReportingParties_DeleteRequested; + MenuItem resetItem = new MenuItem(); + resetItem.Header = Properties.Resources.textResetPassword; + resetItem.Icon = new Image { Source = new BitmapImage(new Uri("pack://application:,,,/Resources/recycle.png")) }; + resetItem.Click += ResetItem_Click; + this.dataGridReportingParties.ContextMenu.Items.Add(resetItem); + + } + + private void ResetItem_Click(object sender, RoutedEventArgs e) + { + if ((this.dataGridReportingParties.SelectedItems != null) && (this.dataGridReportingParties.SelectedItems.Count == 1) && !this.dataGridReportingParties.IsReadOnly) + { + ReportingParty selectedParty = this.dataGridReportingParties.SelectedItems[0] as ReportingParty; + if (selectedParty != null) + { + string confirmText = string.Format(Properties.Resources.textConfirmPasswordReset, selectedParty.Logon); + MessageBoxResult result = MessageBox.Show(confirmText, Properties.Resources.textCaptionDeleteConfirm, MessageBoxButton.YesNo, MessageBoxImage.Question); + if (result == MessageBoxResult.Yes) + { + selectedParty.PasswordHash = null; + selectedParty.Salt = null; + DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Save(selectedParty); + } + } + } } #region grid event handler diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/PSC72hDetailControl.xaml.cs b/ENI-2/ENI2/ENI2/DetailViewControls/PSC72hDetailControl.xaml.cs index 23cdf0c2..1a21bfc0 100644 --- a/ENI-2/ENI2/ENI2/DetailViewControls/PSC72hDetailControl.xaml.cs +++ b/ENI-2/ENI2/ENI2/DetailViewControls/PSC72hDetailControl.xaml.cs @@ -56,6 +56,7 @@ namespace ENI2.DetailViewControls { bool isTanker = this.checkBoxTanker.IsChecked ?? false; this.doubleUpDownVolumeOfCargo.IsEnabled = isTanker; + this.doubleUpDownVolumeOfCargo.IsReadOnly = !isTanker; this.comboBoxTankerHullConfig.IsEnabled = isTanker; this.comboBoxConditionCargoBallastTanks.IsEnabled = isTanker; this.textBoxNatureOfCargo.IsEnabled = isTanker; diff --git a/ENI-2/ENI2/ENI2/EditControls/EditBKRDialog.xaml.cs b/ENI-2/ENI2/ENI2/EditControls/EditBKRDialog.xaml.cs index 5d8d336f..1f2f68c2 100644 --- a/ENI-2/ENI2/ENI2/EditControls/EditBKRDialog.xaml.cs +++ b/ENI-2/ENI2/ENI2/EditControls/EditBKRDialog.xaml.cs @@ -42,6 +42,7 @@ namespace ENI2.EditControls this.doubleUpDownBunkerQuantity.Value = this.IsDeparture ? this.BRKD.BunkerFuelQuantity_TNE : this.BRKA.BunkerFuelQuantity_TNE; this.OKClicked += EditBKRDialog_OKClicked; this.AddVisible = true; + this.textBoxBunkerType.Focus(); } public void CopyValuesToEntity() diff --git a/ENI-2/ENI2/ENI2/EditControls/EditCallPurposeDialog.xaml.cs b/ENI-2/ENI2/ENI2/EditControls/EditCallPurposeDialog.xaml.cs index 2393d317..f90358ad 100644 --- a/ENI-2/ENI2/ENI2/EditControls/EditCallPurposeDialog.xaml.cs +++ b/ENI-2/ENI2/ENI2/EditControls/EditCallPurposeDialog.xaml.cs @@ -30,7 +30,8 @@ namespace ENI2.EditControls public void CopyValuesToEntity() { - this.CallPurpose.CallPurposeCode = (int) this.comboBoxCode.SelectedValue; + if(this.comboBoxCode.SelectedValue != null) + this.CallPurpose.CallPurposeCode = (int) this.comboBoxCode.SelectedValue; this.CallPurpose.CallPurposeDescription = this.textBoxDescription.Text; } diff --git a/ENI-2/ENI2/ENI2/MainWindow.xaml.cs b/ENI-2/ENI2/ENI2/MainWindow.xaml.cs index e3edcbb6..95a012b3 100644 --- a/ENI-2/ENI2/ENI2/MainWindow.xaml.cs +++ b/ENI-2/ENI2/ENI2/MainWindow.xaml.cs @@ -536,7 +536,10 @@ namespace ENI2 } if (failedLogonCount == 3) + { this.buttonLogin.IsEnabled = false; + MessageBox.Show(Properties.Resources.textWrongPasswordThreeTimes, Properties.Resources.textCaptionError); + } } private void buttonExit_Click(object sender, RoutedEventArgs e) diff --git a/ENI-2/ENI2/ENI2/Properties/Resources.Designer.cs b/ENI-2/ENI2/ENI2/Properties/Resources.Designer.cs index 9ffe1d5f..c6bbf6df 100644 --- a/ENI-2/ENI2/ENI2/Properties/Resources.Designer.cs +++ b/ENI-2/ENI2/ENI2/Properties/Resources.Designer.cs @@ -1274,6 +1274,15 @@ namespace ENI2.Properties { } } + /// + /// Looks up a localized string similar to Reset password for user {0}?. + /// + public static string textConfirmPasswordReset { + get { + return ResourceManager.GetString("textConfirmPasswordReset", resourceCulture); + } + } + /// /// Looks up a localized string similar to Reset messages?. /// @@ -3560,6 +3569,15 @@ namespace ENI2.Properties { } } + /// + /// Looks up a localized string similar to Reset password. + /// + public static string textResetPassword { + get { + return ResourceManager.GetString("textResetPassword", resourceCulture); + } + } + /// /// Looks up a localized string similar to ResidencePermit. /// @@ -4550,6 +4568,15 @@ namespace ENI2.Properties { } } + /// + /// Looks up a localized string similar to 3 logon attempts failed. Login denied. If you do not remember your password, please contact your administrator to reset it.. + /// + public static string textWrongPasswordThreeTimes { + get { + return ResourceManager.GetString("textWrongPasswordThreeTimes", resourceCulture); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// diff --git a/ENI-2/ENI2/ENI2/Properties/Resources.resx b/ENI-2/ENI2/ENI2/Properties/Resources.resx index 180e184b..b36794e9 100644 --- a/ENI-2/ENI2/ENI2/Properties/Resources.resx +++ b/ENI-2/ENI2/ENI2/Properties/Resources.resx @@ -1609,4 +1609,13 @@ Close + + Reset password + + + 3 logon attempts failed. Login denied. If you do not remember your password, please contact your administrator to reset it. + + + Reset password for user {0}? + \ No newline at end of file diff --git a/Stundensheet.xlsx b/Stundensheet.xlsx index a5d3295514c3e7320f15877b0b75742faf29685d..4311a60801c04a4250dce40bed58856b6c8cf351 100644 GIT binary patch delta 22593 zcmY(qWmKI_4=#+mYbjdXDel%narXkn-QBs7;>9U$#l7gp-QC^Y-Tmx7@AsXx&Og>l z?#v{a^}KxBdhoIhs8+g~n)YZLD%PJCNn;`);-v0=;> z(T^4;u8V~HT^U)1ipld~>+St%w=pTd>kNkQVa*ya36CL;V})u+w(q)|pe`yTyGc@GJ-YD!(M`Mvq5cV+ZUFr@YIGz&Sf8#<|RsSw5v z=≫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 delta 22452 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 s008!SlhTSk0v&t^fc4 diff --git a/nsw/Source/bsmd.ExcelReadService/ExcelReadService.cs b/nsw/Source/bsmd.ExcelReadService/ExcelReadService.cs index d0eaab25..b6ce4dc6 100644 --- a/nsw/Source/bsmd.ExcelReadService/ExcelReadService.cs +++ b/nsw/Source/bsmd.ExcelReadService/ExcelReadService.cs @@ -97,7 +97,6 @@ namespace bsmd.ExcelReadService string receiptText = ""; MessageCore messageCore = null; - if (attachmentLocalPath == null) { receiptText = "incoming E-Mail did not contain an Excel attachment!"; @@ -197,13 +196,7 @@ namespace bsmd.ExcelReadService } } } - } - - if (receiptText.Length > 0) - { - _log.Debug("sending system info email"); - BSMDMail.SendSystemInfo(receiptSubject, receiptText, mailSender); - } + } // remove attachment _log.InfoFormat("removing local file {0}", attachmentLocalPath); @@ -211,10 +204,15 @@ namespace bsmd.ExcelReadService if (!Properties.Settings.Default.TestMode) File.Delete(attachmentLocalPath); - attachmentLocalPath = null; - } + + if (receiptText.Length > 0) + { + _log.Debug("sending system info email"); + BSMDMail.SendSystemInfo(receiptSubject, receiptText, mailSender); + } + // remove e-Mail _log.InfoFormat("deleting mail with messageId {0}", messageId); _log.InfoFormat("mail delete {0}", bsmdPopClient.DeleteMessageByMessageId(messageId) ? "successful" : "failed"); diff --git a/nsw/Source/bsmd.dakosy/Request.cs b/nsw/Source/bsmd.dakosy/Request.cs index 6fb65013..5fe53229 100644 --- a/nsw/Source/bsmd.dakosy/Request.cs +++ b/nsw/Source/bsmd.dakosy/Request.cs @@ -414,7 +414,7 @@ namespace bsmd.dakosy for (int j = 0; j < vList.Visit[0].MDH.PortsOfCallLast30Days[i].CrewJoinedShipName.Length; j++) { vList.Visit[0].MDH.PortsOfCallLast30Days[i].CrewJoinedShipName[j] = new CrewJoinedShipName(); - vList.Visit[0].MDH.PortsOfCallLast30Days[i].CrewJoinedShipName[j].Name = poc30d.CrewJoinedShip[j].PortOfCallLast30DaysCrewJoinedShipName; + vList.Visit[0].MDH.PortsOfCallLast30Days[i].CrewJoinedShipName[j].Name = ((PortOfCallLast30DaysCrewJoinedShip) poc30d.CrewJoinedShip[j]).PortOfCallLast30DaysCrewJoinedShipName; } } } @@ -737,7 +737,7 @@ namespace bsmd.dakosy for (int i = 0; i < was.WasteDisposalServiceProvider.Count; i++) { vList.Visit[0].WAS.WasteDisposalServiceProviderName[i] = new WasteDisposalServiceProviderName(); - vList.Visit[0].WAS.WasteDisposalServiceProviderName[i].ServiceProviderName = was.WasteDisposalServiceProvider[i].WasteDisposalServiceProviderName; + vList.Visit[0].WAS.WasteDisposalServiceProviderName[i].ServiceProviderName = ((WasteDisposalServiceProvider) was.WasteDisposalServiceProvider[i]).WasteDisposalServiceProviderName; } } vList.Visit[0].WAS.WasteDisposalDeliverySpecified = was.WasteDisposalDelivery.HasValue; diff --git a/nsw/Source/bsmd.database/CallPurpose.cs b/nsw/Source/bsmd.database/CallPurpose.cs index 7ba6be5e..e5bf4918 100644 --- a/nsw/Source/bsmd.database/CallPurpose.cs +++ b/nsw/Source/bsmd.database/CallPurpose.cs @@ -31,8 +31,9 @@ namespace bsmd.database public int CallPurposeCode { get; set; } [ShowReport] - [MaxLength(100)] + [MaxLength(99)] [ENI2Validation] + [Validation(ValidationCode.STRING_MAXLEN, 99)] public string CallPurposeDescription { get; set; } public string Identifier { get; set; } diff --git a/nsw/Source/bsmd.database/INFO.cs b/nsw/Source/bsmd.database/INFO.cs index 5aa3377d..74c69b62 100644 --- a/nsw/Source/bsmd.database/INFO.cs +++ b/nsw/Source/bsmd.database/INFO.cs @@ -78,8 +78,8 @@ namespace bsmd.database [ShowReport] [LookupName("INFO.PortArea")] - [Validation(ValidationCode.NOT_NULL)] // ist bei NOK Transit leer - [MaxLength(50)] + [Validation(ValidationCode.PORTAREA)] // ist bei NOK Transit leer + [MaxLength(4)] [ENI2Validation] public string PortArea { get; set; } diff --git a/nsw/Source/bsmd.database/LastTenPortFacilitiesCalled.cs b/nsw/Source/bsmd.database/LastTenPortFacilitiesCalled.cs index 624c4c8b..88b11367 100644 --- a/nsw/Source/bsmd.database/LastTenPortFacilitiesCalled.cs +++ b/nsw/Source/bsmd.database/LastTenPortFacilitiesCalled.cs @@ -27,12 +27,12 @@ namespace bsmd.database public SEC SEC { get; set; } [ShowReport] - [MaxLength(100)] + [MaxLength(99)] [ENI2Validation] public string PortFacilityPortName { get; set; } [ShowReport] - [MaxLength(100)] + [MaxLength(99)] [ENI2Validation] public string PortFacilityPortCountry { get; set; } @@ -172,6 +172,13 @@ namespace bsmd.database this.PortFacilityPortCountry ?? ""); violations.Add(RuleEngine.CreateViolation(ValidationCode.V703, null, val, this.Title, this.Identifier, this.SEC.Tablename)); } + + if(!this.PortFacilityPortLoCode.IsNullOrEmpty() && (RuleEngine.LocodeChecker != null)) + { + if (!RuleEngine.LocodeChecker(this.PortFacilityPortLoCode, RuleEngine.LocodeMode.STANDARD)) + errors.Add(RuleEngine.CreateError(ValidationCode.LOCODE, null, this.PortFacilityPortLoCode, this.Title, this.Identifier, this.SEC.Tablename)); + } + } #endregion diff --git a/nsw/Source/bsmd.database/NOA_NOD.cs b/nsw/Source/bsmd.database/NOA_NOD.cs index 832d010b..90445592 100644 --- a/nsw/Source/bsmd.database/NOA_NOD.cs +++ b/nsw/Source/bsmd.database/NOA_NOD.cs @@ -222,11 +222,18 @@ namespace bsmd.database (this.ETDFromPortOfCall < this.ETAToPortOfCall)) errors.Add(RuleEngine.CreateError(ValidationCode.E121, "ETDFromPortOfCall", this.ETDFromPortOfCall.ToString(), this.Title, null, this.Tablename)); - if(this.CallPurposes.IsNullOrEmpty()) + if (this.CallPurposes.IsNullOrEmpty()) { errors.Add(RuleEngine.CreateError(ValidationCode.LIST_EMPTY, "CallPurposes", "CallPurpose", this.Title, null, this.Tablename)); } - + else + { + foreach (CallPurpose cp in this.CallPurposes) + { + if (cp.CallPurposeCode == 0) + errors.Add(RuleEngine.CreateError(ValidationCode.INT_GT_ZERO, "CallPurposeCode", "0", this.Title, cp.Identifier, this.Tablename)); + } + } } else { diff --git a/nsw/Source/bsmd.database/RuleEngine.cs b/nsw/Source/bsmd.database/RuleEngine.cs index 812f260d..703229d9 100644 --- a/nsw/Source/bsmd.database/RuleEngine.cs +++ b/nsw/Source/bsmd.database/RuleEngine.cs @@ -349,6 +349,12 @@ namespace bsmd.database if ((value.Length > maxlen) || (value.Length == 0)) errors.Add(RuleEngine.CreateError(validationCode, property.Name, value, entity.Title, identifier, entity.Tablename)); break; + case ValidationCode.PORTAREA: + { + if ((value.Length < 2) || (value.Length > 4)) + errors.Add(RuleEngine.CreateError(validationCode, property.Name, value, entity.Title, identifier, entity.Tablename)); + break; + } case ValidationCode.FRZ: { Regex rgx = new Regex(@"^[A-Z, a-z,0-9]{4,7}$"); @@ -447,6 +453,8 @@ namespace bsmd.database return (gerLocodeList.Contains(val.ToUpper())); } + public static LocodeValidHandler LocodeChecker { get { return _locodeChecker; } } + #endregion #region private helper diff --git a/nsw/Source/bsmd.dbh/Request.cs b/nsw/Source/bsmd.dbh/Request.cs index 56d74ead..778555a6 100644 --- a/nsw/Source/bsmd.dbh/Request.cs +++ b/nsw/Source/bsmd.dbh/Request.cs @@ -968,7 +968,7 @@ namespace bsmd.dbh l30d.PortOfCallLast30Days[i].PortOfCallLast30DaysCrewJoinedShip.PortOfCallLast30DaysCrewJoinedShipName = new string[portOfCallLast30Days.CrewJoinedShip.Count]; for (int j = 0; j < portOfCallLast30Days.CrewJoinedShip.Count; j++) { - l30d.PortOfCallLast30Days[i].PortOfCallLast30DaysCrewJoinedShip.PortOfCallLast30DaysCrewJoinedShipName[j] = portOfCallLast30Days.CrewJoinedShip[j].PortOfCallLast30DaysCrewJoinedShipName; + l30d.PortOfCallLast30Days[i].PortOfCallLast30DaysCrewJoinedShip.PortOfCallLast30DaysCrewJoinedShipName[j] = ((PortOfCallLast30DaysCrewJoinedShip) portOfCallLast30Days.CrewJoinedShip[j]).PortOfCallLast30DaysCrewJoinedShipName; } } l30d.PortOfCallLast30Days[i].PortOfCallLast30DaysCrewMembersJoined = portOfCallLast30Days.PortOfCallLast30DaysCrewMembersJoined ?? false ? RootSECValidISSCOnBoard.Y : RootSECValidISSCOnBoard.N; @@ -1018,10 +1018,10 @@ namespace bsmd.dbh for (int i = 0; i < was.WasteDisposalServiceProvider.Count; i++) { - if (was.WasteDisposalServiceProvider[i].WasteDisposalServiceProviderName.Trim().IsNullOrEmpty()) continue; + if (((WasteDisposalServiceProvider) was.WasteDisposalServiceProvider[i]).WasteDisposalServiceProviderName.Trim().IsNullOrEmpty()) continue; choiceType3s.Add(ItemsChoiceType3.WasteDisposalServiceProviderName); - wasteItems.Add(was.WasteDisposalServiceProvider[i].WasteDisposalServiceProviderName); + wasteItems.Add(((WasteDisposalServiceProvider) was.WasteDisposalServiceProvider[i]).WasteDisposalServiceProviderName); } diff --git a/nsw/Source/bsmd.hisnord/Request.cs b/nsw/Source/bsmd.hisnord/Request.cs index 9b344e60..6e876dfd 100644 --- a/nsw/Source/bsmd.hisnord/Request.cs +++ b/nsw/Source/bsmd.hisnord/Request.cs @@ -861,8 +861,11 @@ namespace bsmd.hisnord } secItemNames.Add(ItemsChoiceType4.ValidISSCOnBoard); secItems.Add((sec.ValidISSCOnBoard ?? false) ? yorntype.Y : yorntype.N); - secItemNames.Add(ItemsChoiceType4.ReasonsForNoValidISSC); - secItems.Add(sec.ReasonsForNoValidISSC); + if ((!sec.ValidISSCOnBoard ?? false) && (!sec.ReasonsForNoValidISSC.IsNullOrEmpty())) { + secItemNames.Add(ItemsChoiceType4.ReasonsForNoValidISSC); + secItems.Add(sec.ReasonsForNoValidISSC); + } + if (sec.ISSCType.HasValue) { secItemNames.Add(ItemsChoiceType4.ISSCType); @@ -1123,8 +1126,8 @@ namespace bsmd.hisnord List crewJoinedShipList = new List(); for (int k = 0; k < portOfCallLast30Days.CrewJoinedShip.Count; k++) { - if (!portOfCallLast30Days.CrewJoinedShip[k].PortOfCallLast30DaysCrewJoinedShipName.IsNullOrEmpty()) - crewJoinedShipList.Add(portOfCallLast30Days.CrewJoinedShip[k].PortOfCallLast30DaysCrewJoinedShipName); + if (!((PortOfCallLast30DaysCrewJoinedShip)portOfCallLast30Days.CrewJoinedShip[k]).PortOfCallLast30DaysCrewJoinedShipName.IsNullOrEmpty()) + crewJoinedShipList.Add(((PortOfCallLast30DaysCrewJoinedShip)portOfCallLast30Days.CrewJoinedShip[k]).PortOfCallLast30DaysCrewJoinedShipName); } pocs.PortOfCallLast30Days[j].PortOfCallLast30DaysCrewJoinedShip = crewJoinedShipList.ToArray(); } @@ -1181,9 +1184,9 @@ namespace bsmd.hisnord for (int i = 0; i < was.WasteDisposalServiceProvider.Count; i++) { - if (!was.WasteDisposalServiceProvider[i].WasteDisposalServiceProviderName.IsNullOrEmpty()) + if (!((WasteDisposalServiceProvider) was.WasteDisposalServiceProvider[i]).WasteDisposalServiceProviderName.IsNullOrEmpty()) { - was_items.Add(was.WasteDisposalServiceProvider[i].WasteDisposalServiceProviderName); + was_items.Add(((WasteDisposalServiceProvider) was.WasteDisposalServiceProvider[i]).WasteDisposalServiceProviderName); was_item_names.Add(ItemsChoiceType6.WasteDisposalServiceProviderName); } }