Beispiel #1
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());
        }