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