public ActionResult UpdatePollTopic(long pollId, [FromForm] long topicId) { MyPollDelegate del = (Polls poll) => { poll.PollTopicId = topicId; _db.SaveChanges(); TempData["FlashMessage"] = "Poll topic updated!"; }; return(MyPoll(pollId, del)); }
public ActionResult UpdatePollStatus(long pollId, PollStatus pollStatus) { MyPollDelegate del = (Polls poll) => { poll.Status = (long)pollStatus; _db.SaveChanges(); TempData["FlashMessage"] = "Poll status updated!"; }; return(MyPoll(pollId, del)); }
public ActionResult EditPoll(long pollId) { MyPollDelegate del = (Polls poll) => { if (poll.ImageId != null) { ViewData["PollImage"] = _db.PollImages.Single(img => img.Id == poll.ImageId && img.MemberId == _userId); } ViewData["Poll"] = poll; ViewData["Choices"] = _db.GetPollChoices(pollId); ViewData["PollTopics"] = _db.PollTopics.ToList(); }; return(MyPoll(pollId, del, View())); }
public ActionResult UpdatePollConfig( long pollId, [FromForm] bool hideVotingResults, [FromForm] bool hideLink2pollOwner, [FromForm] bool showResultsWhenClosed ) { MyPollDelegate del = (Polls poll) => { poll.HideVotingResults = hideVotingResults ? 1 : 0; poll.HideLink2pollOwner = hideLink2pollOwner ? 1 : 0; poll.ShowResultsWhenClosed = showResultsWhenClosed ? 1 : 0; _db.SaveChanges(); TempData["FlashMessage"] = "Poll config updated!"; }; return(MyPoll(pollId, del)); }
public ActionResult DeletePoll(long pollId) { MyPollDelegate del = (Polls poll) => { using (var tran = _db.Database.BeginTransaction()) { try { PollChoices [] choicesToDelete = _db.PollChoices.Where(cho => cho.PollId == pollId).ToArray(); var pollVotes2 = _db.PollVotes2.Where(v2 => v2.PollId == pollId); List <long> imgIDs = new List <long>(); foreach (PollChoices choice in choicesToDelete) { if (choice.ImageId != null) { imgIDs.Add((long)choice.ImageId); } var pollVotes1 = _db.PollVotes1.Where(v1 => v1.PollChoiceId == choice.Id); _db.PollVotes1.RemoveRange(pollVotes1); } if (poll.ImageId != null) { imgIDs.Add((long)poll.ImageId); } _db.PollChoices.RemoveRange(choicesToDelete); _db.PollVotes2.RemoveRange(pollVotes2); _db.Polls.Remove(poll); _db.SaveChanges(); tran.Commit(); } catch (Exception) { tran.Rollback(); throw; } } }; return(MyPoll(pollId, del, RedirectToAction("My", "Accounts"))); }
public ActionResult UpdatePollLabels(long pollId, PollLabels model) { MyPollDelegate del = (Polls poll) => { if (ModelState.IsValid) { poll.VoteButtonLabel = model.VoteButtonLabel; poll.SeeResultsLabel = model.SeeResultsLabel; poll.TotalVotesLabel = model.TotalVotesLabel; poll.VotersLabel = model.VotersLabel; poll.IsClosedLabel = model.IsClosedLabel; _db.SaveChanges(); TempData["FlashMessage"] = "Poll labels updated!"; } else { TempData["ErrorMessage"] = _buildErrorMessage(); } }; return(MyPoll(pollId, del)); }
private ActionResult MyPoll(long pollId, MyPollDelegate del, ActionResult retval = null) { if (_isUserLoggedIn() == false) { return(_redirectToLogin()); } Polls poll = null; try { poll = _db.Polls.Single(p => p.Id == pollId && p.MemberId == _userId); } catch (InvalidOperationException) { return(NotFound()); } del(poll); if (retval == null) { retval = RedirectToAction("EditPoll"); } return(retval); }