public override async Task <AsyncResult <IList <IChannel> > > GetChannelsAsync(IChannelGroup group) { await _initComplete.Task; List <IChannel> channels; if (group.ChannelGroupId < 0) { var radioGroup = RadioChannelGroup.Retrieve(-group.ChannelGroupId); var radioChannels = radioGroup.ReferringRadioGroupMap().OrderBy(rgm => rgm.SortOrder).Select(rgm => rgm.ReferencedChannel()); channels = radioChannels .Where(c => c.VisibleInGuide) .Select(c => c.ToChannel()) .Where(c => c != null) .ToList(); } else { channels = _tvBusiness.GetChannelsInGroup(TvDatabase.ChannelGroup.Retrieve(group.ChannelGroupId)) .Where(c => c != null) // Bug? SortOrder contains logical channel number, not the group sort order? // .OrderBy(c => c.SortOrder) .Where(c => c.VisibleInGuide) .Select(c => c.ToChannel()) .ToList(); } return(new AsyncResult <IList <IChannel> >(true, channels)); }
public bool GetChannels(IChannelGroup group, out IList <IChannel> channels) { #if TVE3 channels = _tvBusiness.GetChannelsInGroup(TvDatabase.ChannelGroup.Retrieve(group.ChannelGroupId)) // Bug? SortOrder contains logical channel number, not the group sort order? // .OrderBy(c => c.SortOrder) .Where(c => c.VisibleInGuide) .Select(c => c.ToChannel()) .ToList(); #else IChannelGroupService channelGroupService = GlobalServiceProvider.Instance.Get <IChannelGroupService>(); channels = channelGroupService.GetChannelGroup(group.ChannelGroupId).GroupMaps .Where(groupMap => groupMap.Channel.VisibleInGuide) .OrderBy(groupMap => groupMap.SortOrder) .Select(groupMap => groupMap.Channel.ToChannel()) .ToList(); #endif return(true); }
public override bool GetChannels(IChannelGroup group, out IList <IChannel> channels) { if (group.ChannelGroupId < 0) { var radioGroup = RadioChannelGroup.Retrieve(-group.ChannelGroupId); var radioChannels = radioGroup.ReferringRadioGroupMap().OrderBy(rgm => rgm.SortOrder).Select(rgm => rgm.ReferencedChannel()); channels = radioChannels .Where(c => c.VisibleInGuide) .Select(c => c.ToChannel()) .ToList(); } else { channels = _tvBusiness.GetChannelsInGroup(TvDatabase.ChannelGroup.Retrieve(group.ChannelGroupId)) // Bug? SortOrder contains logical channel number, not the group sort order? // .OrderBy(c => c.SortOrder) .Where(c => c.VisibleInGuide) .Select(c => c.ToChannel()) .ToList(); } return(true); }