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