private static void DumpClub(AmateurRadioCallSign.AmateurRadioCallSign club) { Console.WriteLine($"--------Club--------"); Console.WriteLine($" Name:{club.ClubName}"); Console.WriteLine($" Address:{club.ClubAddress}"); Console.WriteLine($" City:{club.ClubCity}"); Console.WriteLine($"Postal Code:{club.ClubPostalCode}"); Console.WriteLine($" Province:{club.ClubProvince}"); }
public void Initialize() { var asm = typeof(DataManager).Assembly; var zipResource = (from m in asm.GetManifestResourceNames() where m.Contains("callsigns") select m)?.FirstOrDefault(); Dictionary <string, byte[]> files = null; using (var stm = asm.GetManifestResourceStream(zipResource)) { //byte[] buffer = new byte[stm.Length]; //stm.Read(buffer, 0, buffer.Length); //CallSigns = JsonConvert.DeserializeObject<AmateurRadioCallSignExport>(System.Text.Encoding.UTF8.GetString(buffer)); //var files = ExtractZip(stm); } if (files != null) { var us = (from f in files where f.Key == "callsigns.usa.json" select f)?.FirstOrDefault(); var can = (from f in files where f.Key == "callsigns.canada.json" select f)?.FirstOrDefault(); USCallSigns = JsonConvert.DeserializeObject <AmateurRadioCallSignExport>(System.Text.Encoding.UTF8.GetString(us.Value.Value)); CANCallSigns = JsonConvert.DeserializeObject <AmateurRadioCallSignExport>(System.Text.Encoding.UTF8.GetString(can.Value.Value)); Combined = (new List <Dictionary <string, AmateurRadioCallSign> >() { USCallSigns.CallSigns, CANCallSigns.CallSigns }).SelectMany(dict => dict) .ToLookup(pair => pair.Key, pair => pair.Value) .ToDictionary(group => group.Key, group => group.First()); foreach (var entry in CANCallSigns.CallSigns) { var clubName = entry.Value.ClubName.ToUpperInvariant(); if (!string.IsNullOrEmpty(clubName) && !CanadianClubs.ContainsKey(clubName)) { var club = new AmateurRadioCallSign() { ClubName = clubName, ClubPostalCode = entry.Value.ClubPostalCode, ClubAddress = entry.Value.ClubAddress, ClubCity = entry.Value.ClubCity, ClubProvince = entry.Value.ClubProvince }; CanadianClubs.Add(clubName, club); } } } }
private static void OutputSingle(AmateurRadioCallSign.AmateurRadioCallSign sign) { if (sign == null) { return; } var type = sign.GetType(); var properties = from p in type.GetProperties() where p.CanRead select p; foreach (var p in properties) { var value = p.GetValue(sign)?.ToString(); if (!string.IsNullOrEmpty(value)) { Console.WriteLine($"{p.Name} = {value}"); } } }