diff --git a/src/BreCalClient/EditShipcallControl.xaml.cs b/src/BreCalClient/EditShipcallControl.xaml.cs index 5627531..acc8fc0 100644 --- a/src/BreCalClient/EditShipcallControl.xaml.cs +++ b/src/BreCalClient/EditShipcallControl.xaml.cs @@ -42,7 +42,7 @@ namespace BreCalClient this.comboBoxAgency.ItemsSource = BreCalLists.Participants_Agent; this.comboBoxShip.ItemsSource = BreCalLists.Ships; - this.comboBoxCategories.ItemsSource = Enum.GetValues(typeof(Extensions.TypeEnum)); + this.comboBoxCategories.ItemsSource = Enum.GetValues(typeof(TypeEnum)); this.comboBoxArrivalBerth.ItemsSource = BreCalLists.Berths; this.comboBoxDepartureBerth.ItemsSource = BreCalLists.Berths; @@ -195,7 +195,7 @@ namespace BreCalClient ParticipantAssignment pab = new() { ParticipantId = selectedBerth.AuthorityId.Value, - Type = (int)Extensions.ParticipantType.PORT_ADMINISTRATION + Type = (int)ParticipantType.PORT_ADMINISTRATION }; this.ShipcallModel.AssignedParticipants[ParticipantType.PORT_ADMINISTRATION] = pab; } @@ -204,9 +204,9 @@ namespace BreCalClient ParticipantAssignment pa = new() { ParticipantId = App.Participant.Id, - Type = (int)Extensions.ParticipantType.BSMD + Type = (int)ParticipantType.BSMD }; - this.ShipcallModel.AssignedParticipants[Extensions.ParticipantType.BSMD] = pa; + this.ShipcallModel.AssignedParticipants[ParticipantType.BSMD] = pa; } } } @@ -216,7 +216,7 @@ namespace BreCalClient if (this.ShipcallModel == null) return; if (this.ShipcallModel.Shipcall != null) { - this.comboBoxCategories.SelectedItem = (Extensions.TypeEnum)this.ShipcallModel.Shipcall.Type; + this.comboBoxCategories.SelectedItem = (TypeEnum)this.ShipcallModel.Shipcall.Type; if (this.ShipcallModel.Shipcall.Eta != DateTime.MinValue) this.datePickerETA.Value = this.ShipcallModel.Shipcall.Eta; // this.textBoxVoyage.Text = this.ShipcallModel.Shipcall.Voyage; @@ -226,18 +226,21 @@ namespace BreCalClient this.comboBoxDepartureBerth.SelectedValue = this.ShipcallModel.Shipcall.DepartureBerthId; if (this.ShipcallModel.Shipcall.Participants == null) this.ShipcallModel.Shipcall.Participants = new(); - - foreach (ParticipantAssignment participantAssignment in this.ShipcallModel.Shipcall.Participants) + + if(this.ShipcallModel.AssignedParticipants.ContainsKey(ParticipantType.AGENCY)) { - if (((List)this.comboBoxAgency.ItemsSource).Any(x => x.Id == participantAssignment.ParticipantId)) this.comboBoxAgency.SelectedValue = participantAssignment.ParticipantId; - } + if (BreCalLists.ParticipantLookupDict.ContainsKey(this.ShipcallModel.AssignedParticipants[ParticipantType.AGENCY].ParticipantId)) + { + this.comboBoxAgency.SelectedValue = this.ShipcallModel.AssignedParticipants[ParticipantType.AGENCY].ParticipantId; + } + } } } private void EnableControls() { - bool isBsmd = App.Participant.IsTypeFlagSet(Extensions.ParticipantType.BSMD); - bool isAgency = App.Participant.IsTypeFlagSet(Extensions.ParticipantType.AGENCY); + bool isBsmd = App.Participant.IsTypeFlagSet(ParticipantType.BSMD); + bool isAgency = App.Participant.IsTypeFlagSet(ParticipantType.AGENCY); bool editRightGrantedForBSMD = false; diff --git a/src/BreCalClient/EditTimesAgencyIncomingControl.xaml.cs b/src/BreCalClient/EditTimesAgencyIncomingControl.xaml.cs index 2cea953..f7fee41 100644 --- a/src/BreCalClient/EditTimesAgencyIncomingControl.xaml.cs +++ b/src/BreCalClient/EditTimesAgencyIncomingControl.xaml.cs @@ -7,6 +7,7 @@ using System; using System.Collections.Generic; using System.Linq; using System.Windows; +using static BreCalClient.Extensions; namespace BreCalClient { @@ -182,15 +183,40 @@ namespace BreCalClient this.checkBoxReplenishingTerminal.IsChecked = this.ShipcallModel.Shipcall.ReplenishingTerminal ?? false; if(!string.IsNullOrEmpty(this.Times.Remarks)) - this.textBoxRemarks.Text = this.Times.Remarks; + this.textBoxRemarks.Text = this.Times.Remarks; - foreach (ParticipantAssignment participantAssignment in this.ShipcallModel.Shipcall.Participants) - { - if (((List)this.comboBoxMooring.ItemsSource).Any(x => x.Id == participantAssignment.ParticipantId)) this.comboBoxMooring.SelectedValue = participantAssignment.ParticipantId; - if (((List)this.comboBoxPilot.ItemsSource).Any(x => x.Id == participantAssignment.ParticipantId)) this.comboBoxPilot.SelectedValue = participantAssignment.ParticipantId; - if (((List)this.comboBoxTerminal.ItemsSource).Any(x => x.Id == participantAssignment.ParticipantId)) this.comboBoxTerminal.SelectedValue = participantAssignment.ParticipantId; - if (((List)this.comboBoxTug.ItemsSource).Any(x => x.Id == participantAssignment.ParticipantId)) this.comboBoxTug.SelectedValue = participantAssignment.ParticipantId; + if (this.ShipcallModel.AssignedParticipants.ContainsKey(ParticipantType.MOORING)) + { + if (BreCalLists.ParticipantLookupDict.ContainsKey(this.ShipcallModel.AssignedParticipants[ParticipantType.MOORING].ParticipantId)) + { + this.comboBoxMooring.SelectedValue = this.ShipcallModel.AssignedParticipants[ParticipantType.MOORING].ParticipantId; + } } + + if (this.ShipcallModel.AssignedParticipants.ContainsKey(ParticipantType.PILOT)) + { + if (BreCalLists.ParticipantLookupDict.ContainsKey(this.ShipcallModel.AssignedParticipants[ParticipantType.PILOT].ParticipantId)) + { + this.comboBoxPilot.SelectedValue = this.ShipcallModel.AssignedParticipants[ParticipantType.PILOT].ParticipantId; + } + } + + if (this.ShipcallModel.AssignedParticipants.ContainsKey(ParticipantType.TERMINAL)) + { + if (BreCalLists.ParticipantLookupDict.ContainsKey(this.ShipcallModel.AssignedParticipants[ParticipantType.TERMINAL].ParticipantId)) + { + this.comboBoxTerminal.SelectedValue = this.ShipcallModel.AssignedParticipants[ParticipantType.TERMINAL].ParticipantId; + } + } + + if (this.ShipcallModel.AssignedParticipants.ContainsKey(ParticipantType.TUG)) + { + if (BreCalLists.ParticipantLookupDict.ContainsKey(this.ShipcallModel.AssignedParticipants[ParticipantType.TUG].ParticipantId)) + { + this.comboBoxTug.SelectedValue = this.ShipcallModel.AssignedParticipants[ParticipantType.TUG].ParticipantId; + } + } + } } diff --git a/src/BreCalClient/EditTimesAgencyOutgoingControl.xaml.cs b/src/BreCalClient/EditTimesAgencyOutgoingControl.xaml.cs index e918307..3ad2bf5 100644 --- a/src/BreCalClient/EditTimesAgencyOutgoingControl.xaml.cs +++ b/src/BreCalClient/EditTimesAgencyOutgoingControl.xaml.cs @@ -7,6 +7,7 @@ using System; using System.Collections.Generic; using System.Linq; using System.Windows; +using static BreCalClient.Extensions; namespace BreCalClient { @@ -174,13 +175,38 @@ namespace BreCalClient if(!string.IsNullOrEmpty(this.Times.Remarks)) this.textBoxRemarks.Text = this.Times.Remarks; - foreach (ParticipantAssignment participantAssignment in this.ShipcallModel.Shipcall.Participants) + if (this.ShipcallModel.AssignedParticipants.ContainsKey(ParticipantType.MOORING)) { - if (((List)this.comboBoxMooring.ItemsSource).Any(x => x.Id == participantAssignment.ParticipantId)) this.comboBoxMooring.SelectedValue = participantAssignment.ParticipantId; - if (((List)this.comboBoxPilot.ItemsSource).Any(x => x.Id == participantAssignment.ParticipantId)) this.comboBoxPilot.SelectedValue = participantAssignment.ParticipantId; - if (((List)this.comboBoxTerminal.ItemsSource).Any(x => x.Id == participantAssignment.ParticipantId)) this.comboBoxTerminal.SelectedValue = participantAssignment.ParticipantId; - if (((List)this.comboBoxTug.ItemsSource).Any(x => x.Id == participantAssignment.ParticipantId)) this.comboBoxTug.SelectedValue = participantAssignment.ParticipantId; + if (BreCalLists.ParticipantLookupDict.ContainsKey(this.ShipcallModel.AssignedParticipants[ParticipantType.MOORING].ParticipantId)) + { + this.comboBoxMooring.SelectedValue = this.ShipcallModel.AssignedParticipants[ParticipantType.MOORING].ParticipantId; + } } + + if (this.ShipcallModel.AssignedParticipants.ContainsKey(ParticipantType.PILOT)) + { + if (BreCalLists.ParticipantLookupDict.ContainsKey(this.ShipcallModel.AssignedParticipants[ParticipantType.PILOT].ParticipantId)) + { + this.comboBoxPilot.SelectedValue = this.ShipcallModel.AssignedParticipants[ParticipantType.PILOT].ParticipantId; + } + } + + if (this.ShipcallModel.AssignedParticipants.ContainsKey(ParticipantType.TERMINAL)) + { + if (BreCalLists.ParticipantLookupDict.ContainsKey(this.ShipcallModel.AssignedParticipants[ParticipantType.TERMINAL].ParticipantId)) + { + this.comboBoxTerminal.SelectedValue = this.ShipcallModel.AssignedParticipants[ParticipantType.TERMINAL].ParticipantId; + } + } + + if (this.ShipcallModel.AssignedParticipants.ContainsKey(ParticipantType.TUG)) + { + if (BreCalLists.ParticipantLookupDict.ContainsKey(this.ShipcallModel.AssignedParticipants[ParticipantType.TUG].ParticipantId)) + { + this.comboBoxTug.SelectedValue = this.ShipcallModel.AssignedParticipants[ParticipantType.TUG].ParticipantId; + } + } + } } diff --git a/src/BreCalClient/EditTimesAgencyShiftingControl.xaml.cs b/src/BreCalClient/EditTimesAgencyShiftingControl.xaml.cs index 493368c..022e338 100644 --- a/src/BreCalClient/EditTimesAgencyShiftingControl.xaml.cs +++ b/src/BreCalClient/EditTimesAgencyShiftingControl.xaml.cs @@ -7,6 +7,7 @@ using System; using System.Collections.Generic; using System.Linq; using System.Windows; +using static BreCalClient.Extensions; namespace BreCalClient { @@ -191,12 +192,36 @@ namespace BreCalClient if(!string.IsNullOrEmpty(this.Times.Remarks)) this.textBoxRemarks.Text = this.Times.Remarks; - foreach (ParticipantAssignment participantAssignment in this.ShipcallModel.Shipcall.Participants) + if (this.ShipcallModel.AssignedParticipants.ContainsKey(ParticipantType.MOORING)) { - if (((List)this.comboBoxMooring.ItemsSource).Any(x => x.Id == participantAssignment.ParticipantId)) this.comboBoxMooring.SelectedValue = participantAssignment.ParticipantId; - if (((List)this.comboBoxPilot.ItemsSource).Any(x => x.Id == participantAssignment.ParticipantId)) this.comboBoxPilot.SelectedValue = participantAssignment.ParticipantId; - if (((List)this.comboBoxTerminal.ItemsSource).Any(x => x.Id == participantAssignment.ParticipantId)) this.comboBoxTerminal.SelectedValue = participantAssignment.ParticipantId; - if (((List)this.comboBoxTug.ItemsSource).Any(x => x.Id == participantAssignment.ParticipantId)) this.comboBoxTug.SelectedValue = participantAssignment.ParticipantId; + if (BreCalLists.ParticipantLookupDict.ContainsKey(this.ShipcallModel.AssignedParticipants[ParticipantType.MOORING].ParticipantId)) + { + this.comboBoxMooring.SelectedValue = this.ShipcallModel.AssignedParticipants[ParticipantType.MOORING].ParticipantId; + } + } + + if (this.ShipcallModel.AssignedParticipants.ContainsKey(ParticipantType.PILOT)) + { + if (BreCalLists.ParticipantLookupDict.ContainsKey(this.ShipcallModel.AssignedParticipants[ParticipantType.PILOT].ParticipantId)) + { + this.comboBoxPilot.SelectedValue = this.ShipcallModel.AssignedParticipants[ParticipantType.PILOT].ParticipantId; + } + } + + if (this.ShipcallModel.AssignedParticipants.ContainsKey(ParticipantType.TERMINAL)) + { + if (BreCalLists.ParticipantLookupDict.ContainsKey(this.ShipcallModel.AssignedParticipants[ParticipantType.TERMINAL].ParticipantId)) + { + this.comboBoxTerminal.SelectedValue = this.ShipcallModel.AssignedParticipants[ParticipantType.TERMINAL].ParticipantId; + } + } + + if (this.ShipcallModel.AssignedParticipants.ContainsKey(ParticipantType.TUG)) + { + if (BreCalLists.ParticipantLookupDict.ContainsKey(this.ShipcallModel.AssignedParticipants[ParticipantType.TUG].ParticipantId)) + { + this.comboBoxTug.SelectedValue = this.ShipcallModel.AssignedParticipants[ParticipantType.TUG].ParticipantId; + } } } }