Skip to content

Commit

Permalink
Fix station sorting (#127)
Browse files Browse the repository at this point in the history
Sort by connections status, identifier then ATIS type
  • Loading branch information
justinshannon authored Feb 7, 2025
1 parent 4fb353e commit e833d76
Showing 1 changed file with 21 additions and 6 deletions.
27 changes: 21 additions & 6 deletions vATIS.Desktop/Ui/ViewModels/MainWindowViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
using Vatsim.Vatis.Events.EventBus;
using Vatsim.Vatis.Networking;
using Vatsim.Vatis.Networking.AtisHub;
using Vatsim.Vatis.Profiles.Models;
using Vatsim.Vatis.Sessions;
using Vatsim.Vatis.Ui.Dialogs.MessageBox;
using Vatsim.Vatis.Ui.Services;
Expand Down Expand Up @@ -92,10 +93,17 @@ public MainWindowViewModel(ISessionManager sessionManager, IWindowFactory window
.Ascending(i => i.NetworkConnectionStatus switch
{
NetworkConnectionStatus.Connected => 0,
NetworkConnectionStatus.Observer => 0,
_ => 1
NetworkConnectionStatus.Observer => 1,
_ => 2
})
.ThenBy(i => i.Identifier ?? string.Empty))
.ThenBy(i => i.Identifier ?? string.Empty)
.ThenBy(i => i.AtisType switch
{
AtisType.Combined => 0,
AtisType.Arrival => 1,
AtisType.Departure => 2,
_ => 3
}))
.Bind(out var sortedStations)
.Subscribe(_ =>
{
Expand All @@ -119,9 +127,16 @@ public MainWindowViewModel(ISessionManager sessionManager, IWindowFactory window

_atisStationSource.Connect()
.AutoRefresh(x => x.NetworkConnectionStatus)
.Filter(x =>
x.NetworkConnectionStatus is NetworkConnectionStatus.Connected or NetworkConnectionStatus.Observer)
.Sort(SortExpressionComparer<AtisStationViewModel>.Ascending(i => i.Identifier ?? string.Empty))
.Filter(x => x.NetworkConnectionStatus is NetworkConnectionStatus.Connected or NetworkConnectionStatus.Observer)
.Sort(SortExpressionComparer<AtisStationViewModel>
.Ascending(i => i.Identifier ?? string.Empty)
.ThenBy(i => i.AtisType switch
{
AtisType.Combined => 0,
AtisType.Arrival => 1,
AtisType.Departure => 2,
_ => 3
}))
.Bind(out var connectedStations)
.Subscribe(_ => { CompactWindowStations = connectedStations; });

Expand Down

0 comments on commit e833d76

Please sign in to comment.