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)); }
// 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)); }