// GET: RaceRecords/Create public IActionResult CreatePersonal() { var viewModel = new RaceRecordViewModel(); // ViewData["UserID"] = new SelectList(_context.Users, "UserID", "FirstName"); return(View(viewModel)); }
// GET: RaceRecords/Edit/5 public async Task <IActionResult> EditPersonal(int?id) { if (id == null) { return(NotFound()); } var race = await _context.RaceRecords.FindAsync(id); if (race == null) { return(NotFound()); } var hours = race.RaceTime / 3600; var minutes = (race.RaceTime % 3600) / 60; var seconds = ((race.RaceTime % 3600) % 60); var viewModel = new RaceRecordViewModel() { Record = race, RaceTimeHours = hours, RaceTimeMinutes = minutes, RaceTimeSeconds = seconds, RaceType = race.RaceType }; return(View(viewModel)); }
public async Task <IActionResult> EditPersonal(int?id, [Bind("RaceType,RaceTimeHours,RaceTimeMinutes,RaceTimeSeconds")] RaceRecordViewModel viewModel) { if (id == null) { return(NotFound()); } var race = await _context.RaceRecords.FindAsync(id); if (race == null) { return(NotFound()); } int totalTime = viewModel.RaceTimeHours * 3600 + viewModel.RaceTimeMinutes * 60 + viewModel.RaceTimeSeconds; int mileTime = Functions.GetMileTime(totalTime, viewModel.RaceType); if (mileTime > 223) { race.RaceTime = totalTime; race.MileTime = mileTime; race.RaceType = viewModel.RaceType; if (ModelState.IsValid) { try { _context.Update(race); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!RaceRecordExists(viewModel.Record.RaceRecordID)) { return(NotFound()); } else { throw; } } //return RedirectToAction(nameof(Index)); return(RedirectToAction("EditPersonalSuccess", "RaceRecords", race)); } } else { viewModel.Record = race; ModelState.AddModelError("", "Wow, you must be fast! Unfortnately your mile time must be greater than 3:43!"); } return(View(viewModel)); }
public async Task <IActionResult> CreatePersonal([Bind("RaceType,RaceTimeHours,RaceTimeMinutes,RaceTimeSeconds")] RaceRecordViewModel raceRecordView) { if (ModelState.IsValid) { var currid = GetUserID(); //Load total time and race time, combining hours minutes and seconds from user entered data. int totalTime = raceRecordView.RaceTimeHours * 3600 + raceRecordView.RaceTimeMinutes * 60 + raceRecordView.RaceTimeSeconds; int mileTime = Functions.GetMileTime(totalTime, raceRecordView.RaceType); //Ensure mile time is not too fast. if (mileTime > 223) { var race = new RaceRecord { ProfileID = currid, RaceTime = totalTime, RaceType = raceRecordView.RaceType, MileTime = mileTime }; try { //Add record to database. _context.Add(race); await _context.SaveChangesAsync(); //return RedirectToAction("Index", "Profiles", new {@show = "myracerecords"}); return(RedirectToAction("CreatePersonalSuccess", "RaceRecords", race)); } catch (Exception ex) { return(View()); } } else { ModelState.AddModelError("", "Wow, you must be fast! Unfortnately your mile time must be greater than 3:43!"); } } // ViewData["UserID"] = new SelectList(_context.Users, "UserID", "FirstName", raceRecord.ProfileID); return(View(raceRecordView)); }