public static void Initialize(ApplicationDbContext c)
        {
            c.Database.EnsureCreated();
            if (c.CountryCurrencies.Any())
            {
                return;
            }
            var regions = SystemRegionInfo.GetRegionsList();

            foreach (var r in regions)
            {
                if (!SystemRegionInfo.IsCountry(r))
                {
                    continue;
                }

                var x = new NationalCurrencyData {
                    CountryID  = r.ThreeLetterISORegionName,
                    CurrencyID = r.ISOCurrencySymbol
                };

                c.CountryCurrencies.Add(x);
            }

            c.SaveChanges();
        }
        public static NationalCurrency Create(Country country, Currency currency,
                                              DateTime?validFrom = null, DateTime?validTo = null)
        {
            var o = new NationalCurrencyData {
                Country   = country?.Data ?? new CountryData(),
                Currency  = currency?.Data ?? new CurrencyData(),
                ValidFrom = validFrom ?? DateTime.MinValue,
                ValidTo   = validTo ?? DateTime.MaxValue
            };

            o.CountryID  = o.Country.ID;
            o.CurrencyID = o.Currency.ID;
            return(new NationalCurrency(o));
        }