public async Task <ActionResult> VoteOnNomination(VoteViewModel voteViewModel) { if (voteViewModel.Vote.Id != 0) { VoteAPI.Update(voteViewModel.Vote); } else if (voteViewModel.Vote.Id == 0) { VoteAPI.Create(voteViewModel.Vote); } ; Nomination nomination = await NominationAPI.GetById(voteViewModel.Vote.NominationId); YearCategoryModel returnParameters = new YearCategoryModel(nomination.Year, nomination.AwardCategory); Nomination nominationVotedFor = await NominationAPI.GetById(voteViewModel.Vote.NominationId); RecommendationViewModel recommendationViewModel = new RecommendationViewModel() { Year = nominationVotedFor.Year, Category = nominationVotedFor.AwardCategory }; recommendationViewModel.Movie = await MovieAPI.GetById(nominationVotedFor.MovieId); recommendationViewModel.MovieId = recommendationViewModel.Movie.Id; return(RedirectToAction(nameof(MovieRecommendation), recommendationViewModel)); }
public async Task <ActionResult> DisplayNominations(string year, string category) { if (!User.Identity.IsAuthenticated) { return(RedirectToAction("DisplayNominations", "Home", new YearCategoryModel(year, category))); } string userId = this.User.FindFirstValue(ClaimTypes.NameIdentifier); Moviegoer moviegoer = await MoviegoerAPI.GetByUserId(userId); List <Vote> myVotes = await VoteAPI.GetByIdentityUserIdYearOfNominationAndCategory(userId, year, category); bool hasVotedThisYear = myVotes.Where(v => v.Date.Year == DateTime.Now.Year).FirstOrDefault() != null; if (!hasVotedThisYear) { return(RedirectToAction(nameof(VoteOnNomination), new YearCategoryModel(year, category))); } NominationViewModel nominationViewModel = await CreateNominationViewModel(year, category); nominationViewModel.JsonVotes = JsonDataBuilder.CreateJsonVoteCollection(nominationViewModel); nominationViewModel.JsonNomineeNames = JsonDataBuilder.CreateJsonStringFromStringList(nominationViewModel.Nominations.Select(n => n.Nominee).ToList()); nominationViewModel.MyVotes = await VoteAPI.GetByIdentityUserIdYearOfNominationAndCategory(userId, year, category); nominationViewModel.AllYearCategoryCombinations = await NominationAPI.GetAllYearCategoryCombinations(); return(View(nominationViewModel)); }
public async Task <ActionResult> NavigateToAwards() { List <Nomination> nominations = await NominationAPI.GetAll(); List <YearCategoryModel> nominationsBasicInfo = nominations.Select(n => new YearCategoryModel(n.Year, n.AwardCategory)).ToList(); List <KeyValuePair <string, List <YearCategoryModel> > > groupedNominations = nominationsBasicInfo.GroupBy(n => n.Year).Select(g => new KeyValuePair <string, List <YearCategoryModel> >(g.Key, g.GroupBy(c => c.Category).Select(g => g.First()).ToList())).OrderBy(g => g.Key).ToList(); return(View(groupedNominations)); }
public async Task <ActionResult> DisplayNominations(string year, string category) { NominationViewModel nominationViewModel = await CreateNominationViewModel(year, category); nominationViewModel.JsonVotes = JsonDataBuilder.CreateJsonVoteCollection(nominationViewModel); nominationViewModel.JsonNomineeNames = JsonDataBuilder.CreateJsonStringFromStringList(nominationViewModel.Nominations.Select(n => n.Nominee).ToList()); nominationViewModel.AllYearCategoryCombinations = await NominationAPI.GetAllYearCategoryCombinations(); return(View(nominationViewModel)); }
public async Task <ActionResult> VoteOnNomination(string year, string category) { VoteViewModel voteViewModel = new VoteViewModel(); string userId = this.User.FindFirstValue(ClaimTypes.NameIdentifier); List <Vote> myVotes = await VoteAPI.GetByIdentityUserIdYearOfNominationAndCategory(userId, year, category); voteViewModel.Vote = myVotes.Where(v => v.Date.Year == DateTime.Now.Year).FirstOrDefault(); if (voteViewModel.Vote == null) { voteViewModel.Vote = await CreateNewVote(userId); } voteViewModel.Nominations = await NominationAPI.GetNominationsByYearAndCategoryIncludeMovie(year, category); return(View(voteViewModel)); }
private async Task <NominationViewModel> CreateNominationViewModel(string year, string category) { NominationViewModel nominationViewModel; try { int yearInt = int.Parse(year); nominationViewModel = new NominationViewModel() { Nominations = await NominationAPI.GetNominationsByYearAndCategoryIncludeMovie(year, category), Votes = await VoteAPI.GetVotesByYearOfNominationAndCategory(year, category), Year = yearInt, Category = category }; } catch { nominationViewModel = null; } return(nominationViewModel); }