From b154f73ce9ab2a44a5636f4bbbe3914cab23cced Mon Sep 17 00:00:00 2001 From: Daniel Schick Date: Wed, 28 Aug 2024 17:35:58 +0200 Subject: [PATCH] Convenience: If creating a new ship fails, the ship is shown again when the dialog is re-opened --- src/BreCalClient/MainWindow.xaml.cs | 2 +- src/BreCalClient/ShipListDialog.xaml.cs | 11 +++++++---- src/BreCalClient/ShipModel.cs | 2 ++ 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/BreCalClient/MainWindow.xaml.cs b/src/BreCalClient/MainWindow.xaml.cs index 2e848b1..cf689e6 100644 --- a/src/BreCalClient/MainWindow.xaml.cs +++ b/src/BreCalClient/MainWindow.xaml.cs @@ -1065,7 +1065,7 @@ namespace BreCalClient // (if the special-flag is enabled). Assigned Agency: ShipcallParticipantMap(id=628, shipcall_id=115, participant_id=10, // type=8, created=datetime.datetime(2024, 8, 28, 15, 13, 14), modified=None) with Flags: 42\"} Match m = Regex.Match(message, "\\{(.*)\\}"); - if ((m != null) && (m.Success)) + if ((m != null) && m.Success) { dynamic? msg = JsonConvert.DeserializeObject(m.Value); if(msg != null) diff --git a/src/BreCalClient/ShipListDialog.xaml.cs b/src/BreCalClient/ShipListDialog.xaml.cs index df7d112..a4149e2 100644 --- a/src/BreCalClient/ShipListDialog.xaml.cs +++ b/src/BreCalClient/ShipListDialog.xaml.cs @@ -90,7 +90,9 @@ namespace BreCalClient private async void DataGridShips_CreateRequested() { - ShipModel shipModel = new(new Ship()); + + ShipModel shipModel = new((ShipModel.LastEditShip != null) ? ShipModel.LastEditShip : new Ship()); + EditShipDialog esd = new() { Ship = shipModel.Ship @@ -111,14 +113,15 @@ namespace BreCalClient if(!BreCalLists.ShipLookupDict.TryAdd(id.VarId, shipModel)) BreCalLists.ShipLookupDict[id.VarId] = shipModel; this.dataGridShips.ItemsSource = BreCalLists.AllShips; + ShipModel.LastEditShip = null; } } catch (Exception ex) { - MessageBox.Show(ex.Message); + ShipModel.LastEditShip = shipModel.Ship; + MessageBox.Show(ex.Message); } - } - + } } #endregion diff --git a/src/BreCalClient/ShipModel.cs b/src/BreCalClient/ShipModel.cs index 4f06e21..9f11673 100644 --- a/src/BreCalClient/ShipModel.cs +++ b/src/BreCalClient/ShipModel.cs @@ -16,6 +16,8 @@ namespace BreCalClient public Ship Ship { get; private set; } + public static Ship? LastEditShip { get; set; } + public string TugCompany { get { if(this.Ship.ParticipantId.HasValue)