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}");
 }
Example #2
0
        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}");
                }
            }
        }