diff --git a/src/BreCalClient/BreCalLists.cs b/src/BreCalClient/BreCalLists.cs index 4fe6b2f..b0316a2 100644 --- a/src/BreCalClient/BreCalLists.cs +++ b/src/BreCalClient/BreCalLists.cs @@ -144,9 +144,12 @@ namespace BreCalClient internal static void InitializeShips(List ships) { + _ships.Clear(); + _allShips.Clear(); + foreach (var ship in ships) { - ShipModel sm = new ShipModel(ship); + ShipModel sm = new(ship); _shipLookupDict[ship.Id] = sm; if (!ship.Deleted) _ships.Add(sm); diff --git a/src/BreCalClient/MainWindow.xaml.cs b/src/BreCalClient/MainWindow.xaml.cs index ee8826e..6a8b171 100644 --- a/src/BreCalClient/MainWindow.xaml.cs +++ b/src/BreCalClient/MainWindow.xaml.cs @@ -34,6 +34,7 @@ namespace BreCalClient { private readonly ILog _log = LogManager.GetLogger(typeof(MainWindow)); private const int SHIPCALL_UPDATE_INTERVAL_SECONDS = 30; + private const int SHIPS_UPDATE_INTERVAL_SECONDS = 120; private const int PROGRESS_STEPS = 50; #region Fields @@ -429,6 +430,18 @@ namespace BreCalClient } _ = Task.Run(() => RefreshShipcalls()); + + _ = Task.Run(() => RefreshShips()); + } + + + public async Task RefreshShips() + { + while (true) + { + Thread.Sleep(SHIPS_UPDATE_INTERVAL_SECONDS * 1000); + BreCalLists.InitializeShips(await _shipApi.ShipsGetAsync()); + } } public async Task RefreshShipcalls()