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 CreatePollAdd(VotingClass voting)
        {
            try
            {
                var mem = RDN.Library.Classes.Account.User.GetMemberId();
                var league = MemberCache.GetLeagueOfMember(mem);
                if (new Guid(voting.LeagueId) != league.LeagueId)
                    return Redirect(Url.Content("~/?u=" + SiteMessagesEnum.na));

                for (int i = 0; i < 100; i++)
                {
                    if (!String.IsNullOrEmpty(HttpContext.Request["question" + i]))
                    {
                        VotingQuestionClass question = new VotingQuestionClass();
                        question.Question = HttpContext.Request["question" + i].ToString();
                        question.QuestionType = (QuestionTypeEnum)Enum.Parse(typeof(QuestionTypeEnum), HttpContext.Request["questiontype" + i].ToString());
                        for (int j = 1; j < 100; j++)
                        {
                            if (!String.IsNullOrEmpty(HttpContext.Request["answer-" + j + "-" + i]))
                            {
                                VotingAnswersClass answer = new VotingAnswersClass();
                                answer.Answer = HttpContext.Request["answer-" + j + "-" + i].ToString();
                                question.Answers.Add(answer);
                            }
                            else
                                break;
                        }
                        voting.Questions.Add(question);
                    }
                    else
                        break;
                }
                foreach (string guid in voting.ToMemberIds.Split(','))
                {
                    Guid temp = new Guid();
                    bool didWork = Guid.TryParse(guid, out temp);
                    if (didWork)
                        voting.Voters.Add(new MemberDisplayBasic() { MemberId = temp });
                }
                
                var poll = VotingFactory.AddPoll(voting, mem);
                return Redirect(Url.Content("~/poll/" + voting.LeagueId + "?u=" + SiteMessagesEnum.sag));
            }
            catch (Exception exception)
            {
                ErrorDatabaseManager.AddException(exception, exception.GetType());
            }
            return Redirect(Url.Content("~/?u=" + SiteMessagesEnum.sww));
        }