public ActionResult TeamPollConfigurationForm(int? pollId) { var model = new PollConfigurationFormModel(); //Modal Form for Configuring Polls if (pollId > 0) { //Get Existing PollConfigurationForm model = DAL.GetPollConfigurationForm((int)pollId); } else { model.TypeId = PollType.Team; model.PollId = 0; model.Options = new List<PollOptionModel>(); var defaultOption = new PollOptionModel { PollId = model.PollId, PollOptionId = 0, PollTitle = "", PollDetails = "", PollOptionDescription = "", PollOptionUrl = "", PollOptionVoteTotal = 0, PercentageOfVotes = 0 }; model.Options.Add(defaultOption); } return View("_PollConfigurationForm", model); }
public ActionResult PollOptionConfigurationForm(int pollId, int pollOptionId) { var model = new PollOptionModel(); model.PollId = pollId; if (pollOptionId > 0) { model = DAL.GetPollOption(pollId, pollOptionId); } return PartialView("_PollOptionConfigurationForm", model); }
public static List<PollOptionModel> GetPollOptions(int pollId) { spiffaiwebEntities db = LoadDB(); var options = (from o in db.PollOptions where o.PollId == pollId select o); var optionsList = new List<PollOptionModel>(); if (options != null) { foreach (var o in options) { var option = new PollOptionModel { PollOptionId = o.PollOptionId, PollOptionTitle = o.PollOptionTitle, PollOptionDescription = o.PollOptionDescription, PollOptionUrl = o.PollOptionUrl }; optionsList.Add(option); } } return optionsList; }
public static PollOptionModel GetPollOption(int pollId, int pollOptionId) { spiffaiwebEntities db = LoadDB(); var pollOption = (from o in db.PollOptions where o.PollId == pollId && o.PollOptionId == pollOptionId select o).FirstOrDefault(); var option = new PollOptionModel { PollId = pollId, PollOptionTitle = pollOption.PollOptionTitle, PollOptionId = pollOption.PollOptionId, PollOptionDescription = pollOption.PollOptionDescription, PollOptionUrl = pollOption.PollOptionUrl, }; return option; }
public static PollOptionModel SavePollOptionConfiguration(PollOptionModel model) { PollOptionModel response = model; model.AlertType = AlertType.Error; spiffaiwebEntities db = new spiffaiwebEntities(); try { var option = new PollOption { PollId = model.PollId, PollOptionTitle = model.PollOptionTitle, PollOptionDescription = model.PollOptionDescription, PollOptionUrl = model.PollOptionUrl, }; if (model.PollOptionId > 0) { //Edit option.PollOptionId = model.PollOptionId; db.Entry(option).State = EntityState.Modified; db.SaveChanges(); model.AlertType = AlertType.Success; } else { //Create Poll Option db.PollOptions.Add(option); db.SaveChanges(); model.AlertType = AlertType.Success; response.PollOptionId = option.PollOptionId; //Add to VoteCount var voteCount = new PollVoteCount { PollId = model.PollId, PollOptionId = option.PollOptionId, PollOptionVoteTotal = 0 }; db.PollVoteCounts.Add(voteCount); db.SaveChanges(); } } catch (Exception) { throw; } return response; }
//public static List<PollOptionModel> GetPollOptionResults(int pollId) //{ // spiffaiwebEntities db = LoadDB(); // var options = (from o in db.PollOptions where o.PollId == pollId select o); // var voteCounts = (from v in db.PollVoteCounts where v.PollId == pollId select v); // var optionsList = new List<PollOptionModel>(); // foreach (var o in options) // { // var optionVotes = voteCounts.Where(u => u.PollOptionId == o.PollOptionId).Select(u => u.PollOptionVoteTotal).FirstOrDefault(); // var pollVotes = voteCounts.Where(u => u.PollOptionId == o.PollOptionId).Select(u => u.PollVoteTotal).FirstOrDefault(); // var option = new PollOptionModel // { // PollOptionId = o.PollOptionId, // PollOptionTitle = o.PollOptionTitle, // PollOptionDescription = o.PollOptionDescription, // PollOptionUrl = o.PollOptionUrl, // TotalVotes = optionVotes // }; // optionsList.Add(option); // } // return optionsList; //} public static PollResultsModel GetPollResults(int pollId) { spiffaiwebEntities db = LoadDB(); //Get Options var options = (from op in db.PollOptions where op.PollId == pollId select op); var pollVoteCounts = (from p in db.PollVoteCounts where p.PollId == pollId select p).ToList(); var poll = (from p in db.Polls where p.PollId == pollId select p).FirstOrDefault(); //get percentages & pollVoteTotal int pollVoteTotal = 0; int pollOptionPercentage = 0; foreach (var count in pollVoteCounts) { pollVoteTotal = pollVoteTotal + count.PollOptionVoteTotal; } var optionsList = new List<PollOptionModel>(); foreach (var o in options) { int optionVoteTotal = pollVoteCounts.Where(u => u.PollOptionId == o.PollOptionId).Select(u => u.PollOptionVoteTotal).FirstOrDefault(); int optionVotePercent = 0; string progressPercent = optionVotePercent.ToString() + "%"; if (optionVoteTotal > 0) { optionVotePercent = (optionVoteTotal / pollVoteTotal) * 100; progressPercent = optionVotePercent.ToString() + "%"; } var option = new PollOptionModel { PollId = o.PollId, PollOptionId = o.PollOptionId, PollOptionTitle = o.PollOptionTitle, PollOptionDescription = o.PollOptionDescription, PollOptionUrl = o.PollOptionUrl, PollOptionVoteTotal = optionVoteTotal, PercentageOfVotes = optionVotePercent, ProgressPercent = progressPercent }; optionsList.Add(option); } var result = new PollResultsModel { PollId = pollId, PollTitle = poll.PollTitle, PollDetails = poll.PollDetails, Deadline = poll.Deadline, IsActive = poll.IsActive, Options = optionsList, TotalPollVotes = pollVoteTotal }; return result; }
public ActionResult SavePollOptionConfiguration(PollOptionModel model) { //Action to Add/Update Poll Configuration if (ModelState.IsValid) { var response = DAL.SavePollOptionConfiguration(model); return Json(new { Success = true, PollOptionId = response.PollOptionId }); } return Json(new { Success = false }); }