public ActionResult EditEntry(EditContestEntryViewModel viewModel) { var entry = this._contestRepository.GetContestEntry(viewModel.ContestEntryId); foreach (var category in viewModel.Categories) { var entrySelection = this._contestRepository.GetSelection(entry, category.CategoryId); if (entrySelection == null && category.SelectedNomineeId != null) { var selection = new AcademyAwardsContestEntrySelection() { AcademyAwardsCategoryId = category.CategoryId, SelectedAcademyAwardNomineeId = Convert.ToInt32(category.SelectedNomineeId) }; this._contestRepository.AddAcademyAwardsNomineeSelectionToContestEntry(entry, selection); } else if (entrySelection != null && category.SelectedNomineeId != null) { entrySelection.SelectedAcademyAwardNomineeId = Convert.ToInt32(category.SelectedNomineeId); } else { this._contestRepository.RemoveAcademyAwardsNomineeSelectionFromContestEntry(entry, entrySelection); } } this._contestRepository.Save(); Success("Successfully updated your contest entry", true); return(RedirectToAction("ViewEntry", "Contest", new { contestId = entry.ContestId, email = entry.Email, code = entry.VerificationCode })); }
public ActionResult EditEntry(int contestId, string email, string code) { EditContestEntryViewModel viewModel = new EditContestEntryViewModel(); viewModel.ContestEntry = this._contestRepository.GetContestEntry(contestId, email, code); if (viewModel.ContestEntry != null && viewModel.ContestEntry.Email == email && viewModel.ContestEntry.VerificationCode == code) { viewModel.ContestEntryId = viewModel.ContestEntry.Id; viewModel.Contest = this._contestRepository.GetContest(viewModel.ContestEntry.ContestId); viewModel.Categories = new List <ContestCategoryViewModel>(); foreach (var category in viewModel.Contest.AcademyAwardsCategories) { ContestCategoryViewModel cat = new ContestCategoryViewModel(); cat.CategoryId = category.Id; cat.CategoryTitle = category.CategoryTitle; cat.SortOrder = category.SortOrder; cat.Nominees = new List <ContestNomineeViewModel>(); var selection = viewModel.ContestEntry.AcademyAwardsContestEntrySelections.FirstOrDefault(c => c.AcademyAwardsCategoryId == category.Id); if (selection != null) { cat.SelectedNomineeId = selection.SelectedAcademyAwardNomineeId; } foreach (var nominee in category.AcademyAwardsNominees) { cat.Nominees.Add(new ContestNomineeViewModel() { NomineeId = nominee.Id, NomineeText = nominee.NomineeText, SortOrder = nominee.SortOrder }); } viewModel.Categories.Add(cat); } return(View(viewModel)); } else { Danger("Invalid verification code and email address. Click the link sent to your email or submit a new contest entry", true); } return(RedirectToAction("Index", "Contest")); }