private void HandleApiMessage(CoronaVirusApiTrackerMessage msg)
        {
            runCount++;

            ParseApiTrackerModel parser = new ParseApiTrackerModel();
            var cv = parser.Parse(msg.PayloadJson);

            var recs = cv.confirmed.locations.Where(r => r.country == "US")
                       .Select(r => new
            {
                r.country,
                r.province,
                r.latest
            });

            string dashes = new String('=', 55);

            Clear();
            WriteLine();
            ForegroundColor = ConsoleColor.Green;
            WriteLine("cvApiTracker - Usually 1 day behind...  runCunt={0}", runCount);
            WriteLine("As of {0}", DateTime.Now.ToString("MM.dd.yyyy hh:mm ss"));
            ForegroundColor = ConsoleColor.White;
            WriteLine(dashes);
            WriteLine($"{"City/State".PadRight(45)} latest");
            WriteLine(dashes);
            foreach (var rec in recs)
            {
                WriteLine($"{rec.province.PadRight(50)} {rec.latest}");
            }
            WriteLine(dashes);
            WriteLine($"{"Total".PadRight(50)} {recs.Sum(r => r.latest)}");
            WriteLine(dashes);
        }
        public async Task GetData()
        {
            var    api  = new GetDataFromApi();
            string json = await api.GetJsonData();

            ParseApiTrackerModel parser = new ParseApiTrackerModel();
            var cv = parser.Parse(json);

            var recs = cv.confirmed.locations.Where(r => r.country == "US")
                       .Select(r => new
            {
                r.country,
                r.province,
                r.latest
            });

            string dashes = new String('=', 55);

            Clear();
            WriteLine();
            ForegroundColor = ConsoleColor.Green;
            WriteLine("As of {0}", DateTime.Now.ToString("MM.dd.yyyy hh:mm"));
            ForegroundColor = ConsoleColor.White;
            WriteLine(dashes);
            WriteLine($"{"City/State".PadRight(45)} latest");
            WriteLine(dashes);
            foreach (var rec in recs)
            {
                WriteLine($"{rec.province.PadRight(50)} {rec.latest}");
            }
            WriteLine(dashes);
            WriteLine($"{"Total".PadRight(50)} {recs.Sum(r => r.latest)}");
            WriteLine(dashes);
        }
Exemplo n.º 3
0
        public override bool Process(string json)
        {
            if (string.IsNullOrWhiteSpace(json))
            {
                return(true);
            }

            var msg = JsonConvert.DeserializeObject <CoronaVirusApiTrackerMessage>(json);

            if (msg.PayloadJson == null)
            {
                return(true);
            }

            runCount++;
            ParseApiTrackerModel parser = new ParseApiTrackerModel();
            var cv = parser.Parse(msg.PayloadJson);

            json = JsonConvert.SerializeObject(cv);
            json = json.Replace(@"\", "");

            var recs = cv.confirmed.locations.Where(r => r.country == "US")
                       .Select(r => new
            {
                r.country,
                location = r.province.Split(',')[0],
                state    = "st", // r.province.Replace(r.province.Split(',')[0], "").Replace(",", "").Trim(),
                //r.province,
                r.latest
            }).OrderBy(r => r.country).ThenBy(r => r.state.Trim()).ThenBy(r => r.location);
            StringBuilder sb = new StringBuilder();

            string dashes = new String('=', 55);

            Clear();
            WriteLine();
            ForegroundColor = ConsoleColor.Green;

            sb.AppendFormat("cvApiTracker - Usually 1 day behind...  runCount={0}", runCount).AppendLine();
            sb.AppendFormat("As of {0}", DateTime.Now.ToString("MM.dd.yyyy hh:mm ss")).AppendLine();
            ForegroundColor = ConsoleColor.White;

            sb.AppendLine(dashes);
            sb.AppendFormat($"{"State Location".PadRight(45)} Latest").AppendLine();
            sb.AppendLine(dashes);

            int latest = 0;

            foreach (var rec in recs)
            {
                latest += rec.latest;
                sb.AppendFormat($"{ rec.state } {rec.location.PadRight(50)} {rec.latest}").AppendLine();
            }
            sb.AppendLine(dashes);
            sb.AppendFormat($"{"Total".PadRight(50)} {recs.Sum(r => r.latest)}").AppendLine();
            sb.AppendLine(dashes);

            WriteLine(sb.ToString());
            return(true);
        }
        public override bool Process(string json)
        {
            if (string.IsNullOrWhiteSpace(json))
            {
                return(true);
            }

            var msg = JsonConvert.DeserializeObject <CoronaVirusApiTrackerMessage>(json);

            runCount++;
            ParseApiTrackerModel parser = new ParseApiTrackerModel();
            var cv = parser.Parse(msg.PayloadJson);

            var recs = cv.confirmed.locations.Where(r => r.country == "US")
                       .Select(r => new
            {
                r.country,
                r.province,
                r.latest
            });

            string dashes = new String('=', 55);

            Clear();
            WriteLine();
            ForegroundColor = ConsoleColor.Green;
            WriteLine("cvApiTracker - Usually 1 day behind...  runCount={0}", runCount);
            WriteLine("As of {0}", DateTime.Now.ToString("MM.dd.yyyy hh:mm ss"));
            ForegroundColor = ConsoleColor.White;
            WriteLine(dashes);
            WriteLine($"{"City/State".PadRight(45)} latest");
            WriteLine(dashes);
            foreach (var rec in recs)
            {
                WriteLine($"{rec.province.PadRight(50)} {rec.latest}");
            }
            WriteLine(dashes);
            WriteLine($"{"Total".PadRight(50)} {recs.Sum(r => r.latest)}");
            WriteLine(dashes);


            return(true);
        }