private void PopulatePollGrid() { MeetingElections polls = MeetingElections.GetAll(); this.GridPolls.DataSource = polls; this.GridPolls.DataBind(); }
protected void Page_Load(object sender, EventArgs e) { this.TextName.Style[HtmlTextWriterStyle.Width] = "300px"; this.DropPolls.Style[HtmlTextWriterStyle.Width] = "300px"; this.TextCandidates.Style[HtmlTextWriterStyle.Width] = "100%"; if (_currentUser.Identity != 1) { throw new UnauthorizedAccessException("No access to page"); } if (!Page.IsPostBack) { this.DropGeographies.Root = Country.FromCode("SE").Geography; this.DropPolls.Items.Clear(); MeetingElections polls = MeetingElections.ForOrganization(Organization.PPSE); foreach (MeetingElection poll in polls) { this.DropPolls.Items.Add(new ListItem(poll.Name, poll.Identity.ToString())); } } }
static public void Run() { MeetingElections polls = MeetingElections.GetAll(); foreach (MeetingElection poll in polls) { Console.Write("Looking at poll #" + poll.Identity.ToString() + "..."); if (DateTime.Now > poll.VotingCloses) { Console.Write(" after closedatetime " + poll.VotingCloses.ToString("yyyy-MM-dd HH:mm") + "..."); // Poll should be CLOSED, definitely CLOSED. if (poll.VotingOpen) { Console.WriteLine(" CLOSING."); poll.VotingOpen = false; // Closes poll poll.Creator.SendNotice("Poll Closed: " + poll.Name, string.Empty, poll.OrganizationId); Person.FromIdentity(1).SendNotice("Poll Closed: " + poll.Name, string.Empty, poll.OrganizationId); ReportPollResults(poll, false); } else { Console.WriteLine(" no action."); } } else if (DateTime.Now > poll.VotingOpens) { try { // Poll should be OPEN. Console.Write("after opendatetime " + poll.VotingOpens.ToString("yyyy-MM-dd HH:mm") + "..."); if (!poll.VotingOpen) { Console.WriteLine("OPENING for " + poll.Organization.Name + ":"); // Populate voters, then open for voting Organizations orgTree = poll.Organization.GetTree(); Memberships memberships = Memberships.ForOrganizations(orgTree); Dictionary <int, bool> dupeCheck = new Dictionary <int, bool>(); int count = 0; foreach (Membership membership in memberships) { Console.Write("\r - voters: {0:D6}/{1:D6} (person #{2:D6})...", ++count, memberships.Count, membership.PersonId); if (!membership.Active) { continue; // paranoid programming } if (!membership.Organization.IsOrInherits(poll.Organization)) { continue; // more paranoid programming } if (!dupeCheck.ContainsKey(membership.PersonId)) { if (membership.Person.GeographyId == 0) { // It's a trap! Console.Write(" GEOGRAPHY ZERO, ignoring\r\n"); } else { Geography geo = membership.Person.Geography; if (geo.Inherits(poll.GeographyId) || geo.Identity == poll.GeographyId) { poll.AddVoter(membership.Person); dupeCheck[membership.PersonId] = true; } } } } Console.WriteLine(" done."); Console.Write(" - opening poll..."); poll.VotingOpen = true; Console.WriteLine(" done."); Console.Write("Sending notices... "); string body = "Electoral roll for poll \"" + poll.Name + "\" primed. " + dupeCheck.Count.ToString() + " people can vote. The vote is now OPEN."; string subject = "Poll Open: " + poll.Name; poll.Creator.SendNotice(subject, body, poll.OrganizationId); Person.FromIdentity(1).SendNotice(subject, body, poll.OrganizationId); Console.WriteLine(" done."); } else { Console.WriteLine(" already open, no action."); // Report intermediate results to owner ReportPollResults(poll, true); } } catch (Exception exception) { Console.WriteLine(exception.ToString()); throw exception; } } } }