diff --git a/ENI-2/ENI2/ENI2/App.config b/ENI-2/ENI2/ENI2/App.config index 9ff3f9c0..77790c5b 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/DetailBaseControl.cs b/ENI-2/ENI2/ENI2/DetailBaseControl.cs index 31ef84a3..669f0dd7 100644 --- a/ENI-2/ENI2/ENI2/DetailBaseControl.cs +++ b/ENI-2/ENI2/ENI2/DetailBaseControl.cs @@ -124,7 +124,11 @@ namespace ENI2 { _typeMessageDict[message.MessageNotificationClass] = message; } + } + public virtual void SetEnabled(bool enabled) + { + this.IsEnabled = enabled; } #endregion diff --git a/ENI-2/ENI2/ENI2/DetailRootControl.xaml.cs b/ENI-2/ENI2/ENI2/DetailRootControl.xaml.cs index ebdde657..dc11b925 100644 --- a/ENI-2/ENI2/ENI2/DetailRootControl.xaml.cs +++ b/ENI-2/ENI2/ENI2/DetailRootControl.xaml.cs @@ -84,10 +84,7 @@ namespace ENI2 this._listBoxList.Add(new MessageGroup() { MessageGroupName = Properties.Resources.textTowage, MessageGroupControlType = typeof(TowageDetailControl), ImagePath = "Resources/ship2.png" }); - this.listBoxMessages.ItemsSource = this._listBoxList; - - // Locking ergänzt. Ich habe den Eindruck, dass die DataReader Fehler beim BSMD daran liegen, dass das hier länger dauert als - // man eine neue Anmeldung anklickt -> paralleles Laden -> Autsch + this.listBoxMessages.ItemsSource = this._listBoxList; _messages = DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).GetMessagesForCore(_core, DBManager.MessageLoad.ALL); @@ -144,9 +141,10 @@ namespace ENI2 detailControl.RequestDisable += DetailControl_RequestDisable; detailControl.Initialize(); - detailControl.IsEnabled = !this.LockedByOtherUser; + bool isEnabled = !this.LockedByOtherUser; + detailControl.SetEnabled(isEnabled); - if (!detailControl.IsEnabled && (detailControl is OverViewDetailControl) && !(_core.Cancelled ?? false)) + if (!isEnabled && (detailControl is OverViewDetailControl) && !(_core.Cancelled ?? false)) ((OverViewDetailControl)detailControl).ShowLockedBy(this.LockedBy); controlCache.Add(mg.MessageGroupName, detailControl); @@ -272,6 +270,14 @@ namespace ENI2 { this.SaveMessage(message); } + + DetailBaseControl currentControl = this.detailView.Children[0] as DetailBaseControl; + if (currentControl is OverViewDetailControl) + { + // ggf. hat sich die Ticketnr geändert.. + DBManager.GetSingleCon(Properties.Settings.Default.ConnectionString).Save(currentControl.Core); + } + this.buttonSaveAll.Visibility = Visibility.Hidden; this.buttonSave.Visibility = Visibility.Hidden; } @@ -379,7 +385,10 @@ namespace ENI2 } // "neue" regelbasierte Validierung: Hier werden die einzelnen Regeln geprüft. + bsmd.database.ValidationRule.PrepareNameLookupDict(this.Core, this._messages); + List validationRules = DBManager.Instance.GetValidationRules(); + foreach (bsmd.database.ValidationRule validationRule in validationRules) { if (!validationRule.IsActive ?? false) continue; // Regel auspacken diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/BorderPoliceDetailControl.xaml.cs b/ENI-2/ENI2/ENI2/DetailViewControls/BorderPoliceDetailControl.xaml.cs index 6ce206c8..caa1b4ab 100644 --- a/ENI-2/ENI2/ENI2/DetailViewControls/BorderPoliceDetailControl.xaml.cs +++ b/ENI-2/ENI2/ENI2/DetailViewControls/BorderPoliceDetailControl.xaml.cs @@ -41,6 +41,8 @@ namespace ENI2.DetailViewControls this.RegisterCheckboxChange(this.checkBoxStowaways, Message.NotificationClass.BPOL); } + + public override void Initialize() { base.Initialize(); @@ -120,7 +122,18 @@ namespace ENI2.DetailViewControls #endregion - } + } + + #region SetEnabled + + public override void SetEnabled(bool enabled) + { + this.groupBoxBorderPolice.IsEnabled = enabled; + this.groupBoxCrewList.IsEnabled = enabled; + this.groupBoxPassengerList.IsEnabled = enabled; + } + + #endregion #region port of itinerary grid diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/DangerousGoodsDetailControl.xaml.cs b/ENI-2/ENI2/ENI2/DetailViewControls/DangerousGoodsDetailControl.xaml.cs index c4c480e5..649ebd43 100644 --- a/ENI-2/ENI2/ENI2/DetailViewControls/DangerousGoodsDetailControl.xaml.cs +++ b/ENI-2/ENI2/ENI2/DetailViewControls/DangerousGoodsDetailControl.xaml.cs @@ -184,6 +184,23 @@ namespace ENI2.DetailViewControls this._initialized = true; } + #region SetEnabled + + public override void SetEnabled(bool enabled) + { + this.dataGridIBCItems.IsEnabled = enabled; + this.checkBoxDangerousGoodsOnBoard.IsEnabled = enabled; + this.checkBoxDGManifestOnBoard.IsEnabled = enabled; + this.checkBoxMoUBaltic.IsEnabled = enabled; + this.dataGridIBCItems.IsEnabled = enabled; + this.dataGridIMDGItems.IsEnabled = enabled; + this.dataGridIGCItems.IsEnabled = enabled; + this.dataGridIMSBCItems.IsEnabled = enabled; + this.dataGridMARPOLItems.IsEnabled = enabled; + } + + #endregion + #region Copy event handler private void copyMARPOL(object sender, RoutedEventArgs e) diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml.cs b/ENI-2/ENI2/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml.cs index 27dfa717..89a43b7a 100644 --- a/ENI-2/ENI2/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml.cs +++ b/ENI-2/ENI2/ENI2/DetailViewControls/MaritimeHealthDeclarationDetailControl.xaml.cs @@ -123,7 +123,24 @@ namespace ENI2.DetailViewControls #endregion - } + } + + #region SetEnabled + + public override void SetEnabled(bool enabled) + { + this.mdhGroupBox.IsEnabled = enabled; + this.dataGridPortOfCallLast30Days.IsEnabled = enabled; + this.buttonImportFromSEC.IsEnabled = enabled; + this.checkBoxHasShipVisited.IsEnabled = enabled; + this.dataGridInfectedAreas.IsEnabled = enabled; + this.checkBoxSanitaryMeasuresApplied.IsEnabled = enabled; + this.dataGridSanitaryMeasures.IsEnabled = enabled; + } + + #endregion + + #region Enable Controls based on Checkbox (fixed) private void CheckBoxSanitaryControlExemption_Checked(object sender, RoutedEventArgs e) { @@ -192,6 +209,8 @@ namespace ENI2.DetailViewControls this.dataGridSanitaryMeasures.IsReadOnly = !(this.checkBoxSanitaryMeasuresApplied.IsChecked ?? false); } + #endregion + private void MaritimeHealthDeclarationDetailControl_Loaded(object sender, RoutedEventArgs e) { diff --git a/ENI-2/ENI2/ENI2/DetailViewControls/OverViewDetailControl.xaml b/ENI-2/ENI2/ENI2/DetailViewControls/OverViewDetailControl.xaml index 98819b8b..2644a35f 100644 --- a/ENI-2/ENI2/ENI2/DetailViewControls/OverViewDetailControl.xaml +++ b/ENI-2/ENI2/ENI2/DetailViewControls/OverViewDetailControl.xaml @@ -76,7 +76,7 @@