예제 #1
0
        // no button any more
        private void CalculateRanks()
        {
            var checker = new RankCalculator();

            try
            {
                checker.Calculate(ViewModel.NumberInTeam, ViewModel.HighScoresAreBest, ViewModel.Entrants);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        public void CalculateRank(IEnumerable <IAirQualityShortTerm> data)
        {
            RankCalculator rankCalculator = new RankCalculator();

            rankCalculator.Calculate(data, o => o.SO2, (o, rank) => { o.SO2R = rank; });
            rankCalculator.Calculate(data, o => o.NO2, (o, rank) => { o.NO2R = rank; });
            rankCalculator.Calculate(data, o => o.PM10, (o, rank) => { o.PM10R = rank; });
            rankCalculator.Calculate(data, o => o.CO, (o, rank) => { o.COR = rank; });
            rankCalculator.Calculate(data, o => o.O3, (o, rank) => { o.O3R = rank; });
            rankCalculator.Calculate(data, o => o.PM25, (o, rank) => { o.PM25R = rank; });
            rankCalculator.Calculate(data, o => o.AQI, (o, rank) => { o.AQIR = rank; });
        }
        public void CalculateRank(IEnumerable <IAirQualityLongTerm> data)
        {
            RankCalculator rankCalculator = new RankCalculator();

            rankCalculator.Calculate(data, o => o.SO2, (o, rank) => { o.SO2R = rank; });
            rankCalculator.Calculate(data, o => o.NO2, (o, rank) => { o.NO2R = rank; });
            rankCalculator.Calculate(data, o => o.PM10, (o, rank) => { o.PM10R = rank; });
            rankCalculator.Calculate(data, o => o.CO, (o, rank) => { o.COR = rank; });
            rankCalculator.Calculate(data, o => o.O3, (o, rank) => { o.O3R = rank; });
            rankCalculator.Calculate(data, o => o.PM25, (o, rank) => { o.PM25R = rank; });
            rankCalculator.Calculate(data, o => o.AQCI, (o, rank) => { o.AQCIR = rank; });
            rankCalculator.CalculateDescending(data, o => o.StandardDays, (o, rank) => { o.StandardDaysR = rank; });
        }
        public List <AirQualityLongTermYearOnYear> Calculate(List <AirQualityLongTerm> list, List <AirQualityLongTerm> baseList)
        {
            List <AirQualityLongTermYearOnYear> newList = new List <AirQualityLongTermYearOnYear>();

            foreach (AirQualityLongTerm item in list)
            {
                AirQualityLongTermYearOnYear newItem  = item.ToAirQualityLongTermYearOnYear();
                AirQualityLongTerm           baseItem = baseList.FirstOrDefault(o => o.Code == item.Code);
                if (baseItem != null)
                {
                    if (item.AQCI.HasValue && baseItem.AQCI.HasValue)
                    {
                        newItem.AQCIYOY = Math.Round((item.AQCI.Value - baseItem.AQCI.Value) / baseItem.AQCI.Value * 100, 2);
                    }
                }
                newList.Add(newItem);
            }
            RankCalculator rankCalculator = new RankCalculator();

            rankCalculator.Calculate(newList, o => o.AQCIYOY, (o, rank) => { o.AQCIYOYR = rank; });
            return(newList);
        }