From 3e0a9aae1e09f9dc0ce05ae3f9390df7d1f0a170 Mon Sep 17 00:00:00 2001 From: Jason Dove <1695733+jasongdove@users.noreply.github.com> Date: Wed, 3 Dec 2025 18:33:47 -0600 Subject: [PATCH] fix channel sort number when reordering channels (#2700) * fix channel sort number when reordering channels * tryparse --- CHANGELOG.md | 2 ++ .../Channels/Commands/UpdateChannelNumbersHandler.cs | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 34f6840fa..2234a2be6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -40,6 +40,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Fix loading requested number of epg entries for motion graphics elements - Fix bug with mirror channels where seemingly random content would be played every ~40 seconds - Fix chronological sorting for Other Videos that have release date metadata +- Fix playout sorting after using channel number editor + - If your playouts are sorted incorrectly, use the channel number editor to fix (swap two channels, then swap them back) ### Changed - No longer round framerate to nearest integer when normalizing framerate diff --git a/ErsatzTV.Application/Channels/Commands/UpdateChannelNumbersHandler.cs b/ErsatzTV.Application/Channels/Commands/UpdateChannelNumbersHandler.cs index 57a8b5a55..c28cc3a59 100644 --- a/ErsatzTV.Application/Channels/Commands/UpdateChannelNumbersHandler.cs +++ b/ErsatzTV.Application/Channels/Commands/UpdateChannelNumbersHandler.cs @@ -1,3 +1,4 @@ +using System.Globalization; using System.Threading.Channels; using ErsatzTV.Core; using ErsatzTV.Infrastructure.Data; @@ -38,6 +39,14 @@ public class UpdateChannelNumbersHandler( foreach (var channel in channelsToUpdate) { channel.Number = numberUpdates[channel.Id]; + if (double.TryParse(channel.Number, CultureInfo.InvariantCulture, out double sortNumber)) + { + channel.SortNumber = sortNumber; + } + else + { + return BaseError.New($"Failed to parse channel number {channel.Number}"); + } } // save those changes