From da6f796c042a9e0a14261ce7694dc72a059ed0a4 Mon Sep 17 00:00:00 2001 From: Jason Dove Date: Mon, 8 Mar 2021 21:36:03 -0600 Subject: [PATCH] fix channel sorting --- ErsatzTV.Core/Iptv/ChannelGuide.cs | 4 ++-- ErsatzTV.Core/Iptv/ChannelPlaylist.cs | 3 ++- ErsatzTV/Pages/Channels.razor | 4 +++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/ErsatzTV.Core/Iptv/ChannelGuide.cs b/ErsatzTV.Core/Iptv/ChannelGuide.cs index ef72c60ce..fcc8d4484 100644 --- a/ErsatzTV.Core/Iptv/ChannelGuide.cs +++ b/ErsatzTV.Core/Iptv/ChannelGuide.cs @@ -30,7 +30,7 @@ namespace ErsatzTV.Core.Iptv xml.WriteStartElement("tv"); xml.WriteAttributeString("generator-info-name", "ersatztv"); - foreach (Channel channel in _channels) + foreach (Channel channel in _channels.OrderBy(c => c.Number)) { xml.WriteStartElement("channel"); xml.WriteAttributeString("id", channel.Number); @@ -53,7 +53,7 @@ namespace ErsatzTV.Core.Iptv xml.WriteEndElement(); // channel } - foreach (Channel channel in _channels) + foreach (Channel channel in _channels.OrderBy(c => c.Number)) { foreach (PlayoutItem playoutItem in channel.Playouts.Collect(p => p.Items).OrderBy(i => i.Start)) { diff --git a/ErsatzTV.Core/Iptv/ChannelPlaylist.cs b/ErsatzTV.Core/Iptv/ChannelPlaylist.cs index 7225184b6..752de754f 100644 --- a/ErsatzTV.Core/Iptv/ChannelPlaylist.cs +++ b/ErsatzTV.Core/Iptv/ChannelPlaylist.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Text; using ErsatzTV.Core.Domain; using static LanguageExt.Prelude; @@ -25,7 +26,7 @@ namespace ErsatzTV.Core.Iptv var xmltv = $"{_scheme}://{_host}/iptv/xmltv.xml"; sb.AppendLine($"#EXTM3U url-tvg=\"{xmltv}\" x-tvg-url=\"{xmltv}\""); - foreach (Channel channel in _channels) + foreach (Channel channel in _channels.OrderBy(c => c.Number)) { string logo = Optional(channel.Artwork).Flatten() .Filter(a => a.ArtworkKind == ArtworkKind.Logo) diff --git a/ErsatzTV/Pages/Channels.razor b/ErsatzTV/Pages/Channels.razor index d6121e6c0..a5508ed45 100644 --- a/ErsatzTV/Pages/Channels.razor +++ b/ErsatzTV/Pages/Channels.razor @@ -89,5 +89,7 @@ } } - private async Task LoadChannelsAsync() => _channels = await Mediator.Send(new GetAllChannels()); + private async Task LoadChannelsAsync() => _channels = await Mediator.Send(new GetAllChannels()) + .Map(list => list.OrderBy(c => c.Number).ToList()); + } \ No newline at end of file