Beispiel #1
0
        public static ChanListStats operator +(ChanListStats a, ChanListStats b)
        {
            var stats = new ChanListStats();

            stats.Tv    = a.Tv + b.Tv;
            stats.Radio = a.Radio + b.Radio;
            stats.RadioMaskServiceTypeMismatch = a.RadioMaskServiceTypeMismatch + b.RadioMaskServiceTypeMismatch;
            stats.Radio0           = a.Radio0 + b.Radio0;
            stats.Radio4k          = a.Radio4k + b.Radio4k;
            stats.inMajorOrder     = a.inMajorOrder && b.inMajorOrder;
            stats.hasGap           = a.hasGap || b.hasGap;
            stats.deletedMajor0    = a.deletedMajor0 || b.deletedMajor0;
            stats.deletedMajorNon0 = a.deletedMajorNon0 || b.deletedMajorNon0;

            stats.UserEditChNumber = a.UserEditChNumber + b.UserEditChNumber;
            stats.UserSelChNo      = a.UserSelChNo + b.UserSelChNo;
            stats.FactoryDefault   = a.FactoryDefault + b.FactoryDefault;
            stats.Disabled         = a.Disabled + b.Disabled;
            stats.Skipped          = a.Skipped + b.Skipped;
            stats.Invisible        = a.Invisible + b.Invisible;
            stats.Deleted          = a.Deleted + b.Deleted;
            stats.Discarded        = a.Discarded + b.Discarded;
            stats.UserCustomize    = a.UserCustomize + b.UserCustomize;
            stats.NumUnSel         = a.NumUnSel + b.NumUnSel;
            stats.Lcn = a.Lcn + b.Lcn;
            return(stats);
        }
Beispiel #2
0
        private static string ProcessWebOs5JsonData(string json)
        {
            dynamic doc      = JsonConvert.DeserializeObject(json);
            var     sb       = new StringBuilder();
            var     channels = (IList)doc.channelList;

            sb.Append("\t").Append(channels?.Count);
            var tvAndRadioPerSignalSource = new Dictionary <string, ChanListStats>();

            foreach (dynamic ch in channels)
            {
                var src = (string)ch.sourceIndex;
                if (!tvAndRadioPerSignalSource.TryGetValue(src, out var stats))
                {
                    stats = new ChanListStats();
                    tvAndRadioPerSignalSource[src] = stats;
                }
                stats.Add(ch);
            }

            var a   = new ChanListStats();
            var t   = new ChanListStats();
            var c   = new ChanListStats();
            var s   = new ChanListStats();
            var o   = new ChanListStats();
            var all = new ChanListStats();

            foreach (var entry in tvAndRadioPerSignalSource)
            {
                switch (entry.Key)
                {
                case "ANTENNA ANALOG":
                case "CABLE ANALOG":
                case "SATELLITE ANALOG":
                    a += entry.Value;
                    break;

                case "ANTENNA DIGITAL":
                    t += entry.Value;
                    break;

                case "CABLE DIGITAL":
                    c += entry.Value;
                    break;

                case "SATELLITE DIGITAL":
                    s += entry.Value;
                    break;

                default:
                    o += entry.Value;
                    break;
                }

                all += entry.Value;
            }

            sb.Append(all.ToString(true) + a + t + c + s + o);
            return(sb.ToString());
        }