Exemplo n.º 1
0
        public async Task <IActionResult> Predict(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }



            var clubMember = _context.ClubMember.SingleOrDefault(m => m.AmNumber == id);

            if (clubMember == null)
            {
                return(NotFound());
            }
            IEnumerable <RRCCoreApp.Models.RaceMemberResult> results = _context.RaceMemberResult.Where(x => x.Athlete.AmNumber == clubMember.AmNumber).Include(p => p.Event).Where(e => e.Event.CompetitionCode == "JR");
            var MRViewModel = new ViewModel.MemberRaceListVM(results);
            var LastRace    = MRViewModel.list.OrderByDescending(r => r.Date).First();

            RRCCoreApp.Models.Race races = new Race();
            races.BuildTestList();

            RRCCoreApp.ViewModel.PredictTimesVM vm = new ViewModel.PredictTimesVM();
            vm.predictionList = new List <PredictTimeListItemVM>();
            vm.AthleteNumber  = clubMember.AmNumber;
            string initialDistanceStr = LastRace.Distance;
            double initialDistanceMtr = RRCCoreApp.Models.Race.GetMetersByName(initialDistanceStr.Trim());
            int    initialDistanceSec = LastRace.rawResult;

            foreach (var race in races.list)
            {
                RRCCoreApp.ViewModel.RaceListVM r = new ViewModel.RaceListVM();
                // PredictTimeListItemVM ptvm = new PredictTimeListItemVM();
                //t2 = t1 * (d2 / d1) ^ 1.06
                //where t1 equals the initial time,
                //d1 equals the initial distance,
                //d2 equals the new distance being calculated for, and
                //t2 equals the predicted time for the new distance.


                double newDistanceMtr = race.meters;
                var    predictedTime  = calcPredictedTime(initialDistanceMtr, newDistanceMtr, initialDistanceSec);
                var    camtime        = cameron(initialDistanceMtr, newDistanceMtr, initialDistanceSec);


                RRCCoreApp.ViewModel.PredictTimeListItemVM predictTimeListVM = new PredictTimeListItemVM();
                predictTimeListVM.rawResult     = (int)predictedTime;
                predictTimeListVM.raceType      = race.title;
                predictTimeListVM.predictedTime = PredictTimesVM.formatResult(predictTimeListVM.rawResult);
                predictTimeListVM.camTime       = PredictTimesVM.formatResult((int)camtime);
                vm.predictionList.Add(predictTimeListVM);
            }

            vm.lastRaceRawTime = LastRace.rawResult;
            vm.lastRaceTime    = LastRace.result;
            vm.lastRaceType    = LastRace.Distance;
            return(View("Edit", vm));
        }
Exemplo n.º 2
0
        // GET: ClubMembers/Details/5
        public async Task <IActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }


            var clubMember = await _context.ClubMember.SingleOrDefaultAsync(m => m.AmNumber == id);

            if (clubMember == null)
            {
                return(NotFound());
            }
            IEnumerable <RRCCoreApp.Models.RaceMemberResult> results = _context.RaceMemberResult.Where(x => x.Athlete.AmNumber == clubMember.AmNumber).Include(p => p.Event);
            var ViewModel = new ViewModel.MemberRaceListVM(results);

            ViewModel.AmNumber = clubMember.AmNumber;
            return(View(ViewModel));
        }