public ActionResult Edit(EditSeasonViewModel viewModel) { if (!ModelState.IsValid) { return View(viewModel); } var season = repository.Get<Season>(viewModel.Id); if (null == season) { TempData[GlobalViewDataProperty.PageErrorMessage] = "The season you were editing was deleted by another user"; return RedirectToAction("Index"); } if (viewModel.Version != season.EncodedVersion) { return EditRedirectForConcurrency(viewModel.Id); } if (!season.Name.Equals(viewModel.Name)) { // verify that the new name is not in use if (repository.All<Season>().Any(s => s.Name.Equals(viewModel.Name))) { ModelState.AddModelErrorFor<EditSeasonViewModel>(m => m.Name, "The name is already in use"); return View(viewModel); } season.Name = viewModel.Name; } try { repository.SaveChanges(); } catch (UpdateConcurrencyException) { return EditRedirectForConcurrency(viewModel.Id); } TempData[GlobalViewDataProperty.PageNotificationMessage] = "The season was updated successfully"; return RedirectToAction("Index"); }
public ActionResult Edit(int id) { var season = repository.Get<Season>(id); if (null == season) { return HttpNotFound(); } var viewModel = new EditSeasonViewModel() { Id = season.Id, Name = season.Name, Version = season.EncodedVersion }; return View(viewModel); }