public ActionResult Create(CreateDivisionViewModel viewModel) { if (!ModelState.IsValid) { return View(viewModel); } DateTime startingDate; if (!DateTime.TryParse(viewModel.StartingDate, out startingDate)) { ModelState.AddModelErrorFor<CreateDivisionViewModel>(m => m.StartingDate, "Enter a valid date"); return View(viewModel); } Season season = repository.Get<Season>(viewModel.SeasonId); if (null == season) { TempData[GlobalViewDataProperty.PageErrorMessage] = "Invalid/missing season, cannot create division"; return View(viewModel); } if (season.DivisionNameIsInUse(viewModel.Name)) { ModelState.AddModelErrorFor<CreateDivisionViewModel>(m => m.Name, "This name is already in use"); return View(viewModel); } Division division = new Division(viewModel.Name, startingDate, season); repository.SaveOrUpdate(division); season.AddDivision(division); repository.SaveChanges(); // I hate doing this here because theoretically /divisions/create could be called // from anywhere, but I don't know what else to do now. Same comment applies for all // redirects in this controller return RedirectToAction("Details", "Seasons", new { id = season.Id }); }
public ActionResult Create(int seasonId) { var season = repository.Get<Season>(seasonId); if (null == season) { return HttpNotFound(); } var viewModel = new CreateDivisionViewModel() { SeasonId = season.Id, SeasonName = season.Name, }; return View(viewModel); }