Example #1
0
        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 }));
        }
Example #2
0
        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"));
        }