示例#1
0
        static void Main(string[] args)
        {
            var dataProvider = new DataProvider();
            var comparer     = new HandComparer();
            var calculator   = new RankCalculator();

            if (args.Length > 0)
            {
                if (File.Exists(args[0]))
                {
                    dataProvider.InputFile = args[0];
                }
                else
                {
                    Console.WriteLine("ERROR: File does not exist. This application takes a single parameter of an input text file.");
                    return;
                }
            }
            else
            {
                var tempPath = dataProvider.GetApplicationRoot();
                dataProvider.InputFile = tempPath + @"\\AppData\\testData.txt";
            }

            var showdownApp = new ShowDownApp(dataProvider, calculator, comparer);

            showdownApp.Run();
        }
        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; });
        }
        // 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 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);
        }