Exemple #1
0
        private string ChanSortCriteria(ChannelInfo channel, UnsortedChannelMode mode)
        {
            // explicitly sorted
            var pos = channel.NewProgramNr;

            if (pos != -1)
            {
                return(pos.ToString("d5"));
            }

            // eventually hide unsorted channels
            if (mode == UnsortedChannelMode.Delete)
            {
                return("Z" + channel.RecordIndex.ToString("d5"));
            }

            // eventually append in old order
            if (mode == UnsortedChannelMode.AppendInOrder)
            {
                return("B" + channel.OldProgramNr.ToString("d5"));
            }

            // sort alphabetically, with "." and "" on the bottom
            if (channel.Name == ".")
            {
                return("B");
            }
            if (channel.Name == "")
            {
                return("C");
            }
            return("A" + channel.Name);
        }
Exemple #2
0
        public void AutoNumberingForUnassignedChannels(UnsortedChannelMode mode)
        {
            this.unsortedChannelMode = mode;
            foreach (var list in DataRoot.ChannelLists)
            {
                var sortedChannels = list.Channels.OrderBy(ChanSortCriteria).ToList();
                int maxProgNr      = 0;

                foreach (var appChannel in sortedChannels)
                {
                    if (appChannel.RecordIndex < 0)
                    {
                        continue;
                    }

                    if (appChannel.NewProgramNr == -1)
                    {
                        if (mode == UnsortedChannelMode.MarkDeleted)
                        {
                            continue;
                        }
                        appChannel.Hidden = true;
                        appChannel.Skip   = true;
                    }

                    int progNr = GetNewPogramNr(appChannel, ref maxProgNr);
                    appChannel.NewProgramNr = progNr;
                }
            }
        }
Exemple #3
0
        public void AssignNumbersToUnsortedAndDeletedChannels(UnsortedChannelMode mode)
        {
            foreach (var list in ChannelLists)
            {
                if (list.IsMixedSourceFavoritesList)
                {
                    continue;
                }

                // sort the channels by assigned numbers, then unassigned by original order or alphabetically, then deleted channels
                var sortedChannels = list.Channels.OrderBy(ch => ChanSortCriteria(ch, mode));
                int maxProgNr      = 0;

                foreach (var appChannel in sortedChannels)
                {
                    if (appChannel.IsProxy)
                    {
                        continue;
                    }

                    if (appChannel.NewProgramNr == -1)
                    {
                        if (mode == UnsortedChannelMode.Delete)
                        {
                            appChannel.IsDeleted = true;
                        }
                        else // append (hidden if possible)
                        {
                            appChannel.Hidden = true;
                            appChannel.Skip   = true;
                        }

                        // assign a valid number or 0 .... because -1 will never be a valid value for the TV
                        appChannel.NewProgramNr = mode != UnsortedChannelMode.Delete || DeletedChannelsNeedNumbers ? ++maxProgNr : 0;
                    }
                    else
                    {
                        appChannel.IsDeleted = false;

                        if (appChannel.NewProgramNr > maxProgNr)
                        {
                            maxProgNr = appChannel.NewProgramNr;
                        }
                    }
                }
            }
        }
Exemple #4
0
        public void AutoNumberingForUnassignedChannels(UnsortedChannelMode mode)
        {
            this.unsortedChannelMode = mode;
              foreach (var list in DataRoot.ChannelLists)
              {
            var sortedChannels = list.Channels.OrderBy(ChanSortCriteria).ToList();
            int maxProgNr = 0;

            foreach (var appChannel in sortedChannels)
            {
              if (appChannel.RecordIndex < 0)
            continue;

              if (appChannel.NewProgramNr == -1)
              {
            if (mode == UnsortedChannelMode.MarkDeleted)
              continue;
            appChannel.Hidden = true;
            appChannel.Skip = true;
              }

              int progNr = GetNewPogramNr(appChannel, ref maxProgNr);
              appChannel.NewProgramNr = progNr;
            }
              }
        }