public static VotingClass GetPollV2(Guid leagueId, long pollId, Guid mem) { VotingClass v = new VotingClass(); var dc = new ManagementContext(); try { var voting = dc.VotingV2.Where(x => x.LeagueOwner.LeagueId == leagueId && x.IsDeleted == false && x.VotingId == pollId).FirstOrDefault(); if (voting == null) return null; v.IsPublic = voting.IsPublic; v.IsClosed = voting.IsClosed; v.IsDeleted = voting.IsDeleted; v.IsOpenToLeague = voting.IsOpenToLeague; v.Title = voting.Title; v.Version = 2; foreach (var voter in voting.Voters) { MemberDisplay m = new MemberDisplay(); m.MemberId = voter.Member.MemberId; m.DerbyName = voter.Member.DerbyName; m.PlayerNumber = voter.Member.PlayerNumber; m.UserId = voter.Member.AspNetUserId; v.Voters.Add(m); } //= MemberCache.GetLeagueMembers(mem, leagueId); foreach (var question in voting.Questions.OrderBy(x => x.QuestionSortId)) { VotingQuestionClass q = new VotingQuestionClass(); q.Question = question.Question; q.SortableOrderId = question.QuestionSortId; q.QuestionId = question.QuestionId; q.QuestionType = (QuestionTypeEnum)question.QuestionType; var answers = question.Answers.Where(x => x.WasRemoved == false).ToList(); for (int vo = 0; vo < answers.Count; vo++) { try { VotingAnswersClass vc = new VotingAnswersClass(); vc.Answer = answers[vo].Answer; vc.AnswerId = answers[vo].AnswerId; vc.WasRemoved = answers[vo].WasRemoved; q.Answers.Add(vc); } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } } for (int vo = 0; vo < question.Votes.Count; vo++) { try { VotesClass vc = new VotesClass(); vc.IPAddress = question.Votes[vo].IPAddress; vc.OtherText = question.Votes[vo].OtherText; vc.Created = question.Votes[vo].Created; if (question.Votes[vo].AnswerSelected != null) { vc.AnswerId = question.Votes[vo].AnswerSelected.AnswerId; vc.AnswerIds.Add(vc.AnswerId); } foreach (var ans in question.Votes[vo].AnswersSelected) { vc.AnswerIds.Add(ans.AnswerSelected.AnswerId); } if (question.Votes[vo].Member != null) { vc.MemberId = question.Votes[vo].Member.MemberId; vc.DerbyName = question.Votes[vo].Member.DerbyName; vc.UserId = question.Votes[vo].Member.AspNetUserId; } vc.VoteId = question.Votes[vo].VoteId; q.Votes.Add(vc); v.Voters.Remove(v.Voters.Where(x => x.MemberId == vc.MemberId).FirstOrDefault()); } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } } v.Questions.Add(q); } v.Description = voting.Description; v.IsClosed = voting.IsClosed; v.VotingId = voting.VotingId; v.IsPollAnonymous = voting.IsPollAnonymous; v.LeagueId = leagueId.ToString().Replace("-", ""); //making due for old polls. return v; } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } return null; }
public ActionResult VoteOnPollV2(VotingClass vote) { try { var mem = RDN.Library.Classes.Account.User.GetMemberId(); var league = MemberCache.GetLeagueOfMember(mem); if (new Guid(vote.LeagueId) != league.LeagueId) return Redirect(Url.Content("~/?u=" + SiteMessagesEnum.na)); var poll = VotingFactory.GetPollV2(league.LeagueId, vote.VotingId, mem); List<VotingQuestionClass> questions = new List<VotingQuestionClass>(); foreach (var question in poll.Questions) { VotingQuestionClass qu = new VotingQuestionClass(); qu.QuestionId = question.QuestionId; var v = new VotesClass(); if (question.QuestionType == QuestionTypeEnum.Single) { if (!String.IsNullOrEmpty(HttpContext.Request.Form["answer-" + question.QuestionId])) { v.AnswerIds.Add(Convert.ToInt64(HttpContext.Request.Form["answer-" + question.QuestionId].ToString())); } } else { foreach (var answer in question.Answers) { if (!String.IsNullOrEmpty(HttpContext.Request.Form["answer-" + question.QuestionId + "-" + answer.AnswerId])) { v.AnswerIds.Add(answer.AnswerId); } } } if (!String.IsNullOrEmpty(HttpContext.Request.Form["comment-" + question.QuestionId])) v.OtherText = HttpContext.Request.Form["comment-" + question.QuestionId].ToString(); qu.Votes.Add(v); questions.Add(qu); } var polls = VotingFactory.AddVoteV2(new Guid(vote.LeagueId), vote.VotingId, questions, mem); return Redirect(Url.Content("~/poll/" + vote.LeagueId + "?u=" + SiteMessagesEnum.sv)); } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } return Redirect(Url.Content("~/?u=" + SiteMessagesEnum.sww)); }