コード例 #1
0
        /// <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);
        }
コード例 #2
0
        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));
                }
            }
        }