/// <summary> /// Countries added here will be part of report. /// </summary> /// <param name="name"></param> /// <param name="electric"></param> /// <param name="ff"></param> /// <param name="gdp"></param> /// <param name="pop"></param> public void Add(string name, Electric electric, FossilFuelDetail ff, Gdp gdp, long pop) { if (name.Equals("World")) { World = new Country(name, electric, ff, gdp, pop); } var country = new Country(name, electric, ff, gdp, pop); var gdpGiga = country.PurchasePower.value / IntelCore.Giga; if (!double.IsNaN(GdpMaximum) && gdpGiga < GdpMinimum || gdpGiga >= GdpMaximum) { return; } else if (gdpGiga < GdpMinimum) { return; } Countries.Add(country); Stats.Add(country); }
public CountryData(string fileName, double gdpLower, double gdpUpper = double.NaN) { _fact = JObject.Parse(File.ReadAllText(fileName)); GdpMinimum = gdpLower; GdpMaximum = gdpUpper; foreach (var item in _fact["countries"]) { foreach (var country in item) { var data = country["data"]; var name = data["name"].Value <string>(); var energy = data["energy"]; var electric = energy?["electricity"] != null ? new Electric(energy) : null; if (electric == null) { continue; } var ff = new FossilFuelDetail(energy); Add(name, electric, ff, Gdp(data), Population(data)); } } }