public ActionResult Edit(ScheduleViewModel schedule) { #region validation if (schedule == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Invalid schedule"); } if (schedule.HomeTeam == null || schedule.AwayTeam == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Invalid schedule teams"); } if (schedule.HomeTeam.Id == schedule.AwayTeam.Id) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Home and away teams cannot be the same"); } // load the teams from the Db schedule.AwayTeam = TeamViewModel.Get(schedule.AwayTeam.Id); schedule.HomeTeam = TeamViewModel.Get(schedule.HomeTeam.Id); // re-validate teams if (schedule.HomeTeam == null || schedule.AwayTeam == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest, "Invalid schedule teams"); } #endregion schedule.Save(); return RedirectToAction("Index"); }