void PullPolls()
        {
            progressIndicator.IsVisible = true;

            try
            {
                Task.Run(new Action(() =>
                {
                    polls = PollsMobile.GetPolls(SettingsMobile.Instance.User.MemberId, SettingsMobile.Instance.User.LoginId);

                    Dispatcher.BeginInvoke(delegate
                    {
                        PollsList.ItemsSource = polls.Polls;
                        if (polls.IsPollManager)
                        {
                            ApplicationBar.IsVisible = true;
                        }
                        progressIndicator.IsVisible = false;
                    });

                }));


            }
            catch (Exception exception)
            {
                ErrorHandler.Save(exception, MobileTypeEnum.WP8);
            }
        }
        public static PollBase GetPollsV2(Guid leagueId, Guid currentMemberId)
        {
            PollBase fact = new PollBase();
            var dc = new ManagementContext();
            try
            {
                var membersCount = MemberCache.GetLeagueMembers(currentMemberId, leagueId).Count;
                var voting = dc.VotingV2.Where(x => x.LeagueOwner.LeagueId == leagueId && x.IsDeleted == false).ToList();
                fact.IsPollManager = MemberCache.IsPollMgrOrBetterOfLeague(currentMemberId);
                fact.LeagueId = leagueId;
                for (int i = 0; i < voting.Count; i++)
                {
                    VotingClass v = new VotingClass();
                    v.CanEditPoll = fact.IsPollManager;
                    v.IsOpenToLeague = voting[i].IsOpenToLeague;
                    v.IsClosed = voting[i].IsClosed;
                    if (voting[i].Voters.Select(x => x.Member.MemberId).Contains(currentMemberId))
                    {
                        v.IsCurrentMemberAllowedToVote = true;
                    }
                    if (fact.IsPollManager || v.IsOpenToLeague)
                        v.CanViewPoll = true;
                    if (fact.IsPollManager || (v.IsCurrentMemberAllowedToVote && !v.IsClosed))
                        v.CanVotePoll = true;
                    //v.CanVotePoll = false;
                    //v.CanViewPoll = false;
                    //v.CanEditPoll = false;
                    v.Version = 2;
                    v.IsPublic = voting[i].IsPublic;
                    v.IsDeleted = voting[i].IsDeleted;
                    v.Question = voting[i].Title;
                    v.VotingId = voting[i].VotingId;
                    v.Created = voting[i].Created;
                    v.NonVotes = voting[i].Voters.Count;
                    if (voting[i].Questions.Count > 0)
                        v.Voted = voting[i].Questions.FirstOrDefault().Votes.Count;

                    fact.Polls.Add(v);
                }
                fact.Polls = fact.Polls.OrderByDescending(x => x.Created).ToList();
            }
            catch (Exception exception)
            {
                ErrorDatabaseManager.AddException(exception, exception.GetType());
            }
            return fact;
        }
        public static PollBase GetPollsNotVotedOn(Guid leagueId, Guid memId)
        {
            PollBase fact = new PollBase();
            var dc = new ManagementContext();
            try
            {
                var membersCount = MemberCache.GetLeagueMembers(memId, leagueId).Count;

                fact.LeagueId = leagueId;

                var votingV2 = dc.VotingV2.Where(x => x.LeagueOwner.LeagueId == leagueId && x.Voters.Select(y => y.Member.MemberId).Contains(memId) && x.IsClosed == false && x.IsDeleted == false && x.Questions.FirstOrDefault().Votes.Where(y => y.Member.MemberId == memId).Count() == 0).ToList();

                fact.LeagueId = leagueId;
                for (int i = 0; i < votingV2.Count; i++)
                {
                    VotingClass v = new VotingClass();
                    v.IsPublic = votingV2[i].IsPublic;
                    v.IsDeleted = votingV2[i].IsDeleted;
                    v.IsOpenToLeague = votingV2[i].IsOpenToLeague;
                    v.Title = votingV2[i].Title;
                    v.VotingId = votingV2[i].VotingId;
                    v.Version = 2;
                    fact.Polls.Add(v);
                }
            }
            catch (Exception exception)
            {
                ErrorDatabaseManager.AddException(exception, exception.GetType());
            }
            return fact;
        }