protected void Page_Load(object sender, EventArgs e) { // Populate geo dropdown if (!Page.IsPostBack) { this.DropGeographies.Items.Add(new ListItem("-- V\xE4lj --", "0")); //TODO: Hardcoded Sweden, should maybe be dependent on user Geographies geos = Geographies.FromLevel(Country.FromCode("SE"), GeographyLevel.Municipality); foreach (Geography geo in geos) { this.DropGeographies.Items.Add(new ListItem(geo.Name, geo.Identity.ToString())); } } }
public static int GetCityLeadCount(int organizationId, int countryId) { Geographies cities = Geographies.FromLevel(countryId, GeographyLevel.Municipality); int leadCount = 0; foreach (Geography city in cities) { RoleLookup roles = RoleLookup.FromGeographyAndOrganization(city.Identity, organizationId); if (roles[RoleType.LocalLead].Count > 0) { leadCount++; } } return(leadCount); }
protected void ButtonSubmitPostalCode_Click(object sender, EventArgs e) { // Lookup postal code string postalCode = this.TextPostalCode.Text.Trim().Replace(" ", ""); Cities cities = Cities.FromPostalCode(postalCode, Country.FromCode("SE")); if (cities.Count == 1) { // Ok, we're done and resolved! this.LabelGeographySecondPrompt.Text = "Postnumret ligger i "; this.LabelGeographyDeterminedLocation.Text = cities[0].Name + ", " + cities[0].Geography.Name + "."; this.DropCities.Visible = false; this.ButtonSubmitCity.Visible = false; this.PanelMainQuestions.Visible = true; this.TextName.Focus(); } else if (cities.Count == 0) { // Unable to find postal code this.LabelGeographySecondPrompt.Text = "Hittar inte postnumret. Vilken kommun bor du i? "; this.DropCities.Items.Clear(); this.DropCities.Items.Add(new ListItem("--Välj--", "0")); Geographies geos = Geographies.FromLevel(Country.FromCode("SE"), GeographyLevel.Municipality); foreach (Geography geo in geos) { this.DropCities.Items.Add(new ListItem(geo.Name, geo.Identity.ToString())); } this.LabelGeographyDeterminedLocation.Text = string.Empty; this.DropCities.Visible = true; this.ButtonSubmitCity.Visible = true; this.PanelMainQuestions.Visible = false; this.DropCities.Focus(); } else { // More than one candidate this.LabelGeographySecondPrompt.Text = "Du har ett krångligt postnummer. Vilken kommun bor du i? "; this.DropCities.Items.Clear(); this.DropCities.Items.Add(new ListItem("--Välj--", "0")); foreach (City city in cities) { this.DropCities.Items.Add(new ListItem(city.Geography.Name, city.GeographyId.ToString())); } this.LabelGeographyDeterminedLocation.Text = string.Empty; this.DropCities.Visible = true; this.ButtonSubmitCity.Visible = true; this.PanelMainQuestions.Visible = false; this.DropCities.Focus(); } }
SeriesCollection GetVotingDayRankingData() { GeographyBallotCoverageLookup lookup = GetLookupFromCache(); Geographies geos = null; string circuitString = Request.QueryString["CircuitId"]; int circuitId = 0; if (String.IsNullOrEmpty(circuitString) || Int32.Parse(circuitString) == Geography.SwedenId) { geos = Geographies.FromLevel(Country.FromCode("SE"), GeographyLevel.ElectoralCircuit); } else { circuitId = Int32.Parse(circuitString); Geographies candidateGeos = Geography.FromIdentity(circuitId).GetTree(); geos = new Geographies(); foreach (Geography geo in candidateGeos) { if (lookup.ContainsKey(geo.Identity) && geo.Identity != circuitId) { geos.Add(geo); } } } Dictionary <int, Geography> geoLookup = new Dictionary <int, Geography>(); foreach (Geography geo in geos) { geoLookup[geo.Identity] = geo; } GeographyBallotCoverageData data = new GeographyBallotCoverageData(); foreach (Geography geo in geos) { if (lookup.ContainsKey(geo.Identity)) { data.Add(lookup[geo.Identity]); } } bool sortByValue = cbSort.Checked; data.Sort( delegate(GeographyBallotCoverageDataPoint p1, GeographyBallotCoverageDataPoint p2) { if (sortByValue) { if (advanceVotingMode) { double i1 = (absoluteMode ? p1.AdvanceVotingCoverage : p1.WWAdvanceVotingCoverage); double i2 = (absoluteMode ? p2.AdvanceVotingCoverage : p2.WWAdvanceVotingCoverage); return(i1.CompareTo(i2)); } else { double i1 = (absoluteMode ? p1.VotingCoverage : p1.WVotingCoverage); double i2 = (absoluteMode ? p2.VotingCoverage : p2.WVotingCoverage); return(i1.CompareTo(i2)); } } else { return(geoLookup[p2.GeographyId].Name.CompareTo(geoLookup[p1.GeographyId].Name)); } }); SeriesCollection collection = new SeriesCollection(); Series seriesPositiveSingle = new Series(); seriesPositiveSingle.Name = "Positive, single distro"; Series seriesPositiveDouble = new Series(); seriesPositiveDouble.Name = "Positive, double distro"; Series seriesPositiveFull = new Series(); seriesPositiveFull.Name = "Positive, full coverage"; Series seriesNegative = new Series(); seriesNegative.Name = "Negative"; // Add empties, then Sweden AddSingleVotingDayDataPoint(lookup[Geography.SwedenId], seriesPositiveSingle, seriesPositiveDouble, seriesPositiveFull, seriesNegative); if (circuitId != 0) { AddSingleVotingDayDataPoint(lookup[circuitId], seriesPositiveSingle, seriesPositiveDouble, seriesPositiveFull, seriesNegative); } seriesPositiveSingle.Elements.Add(new Element()); seriesNegative.Elements.Add(new Element()); foreach (GeographyBallotCoverageDataPoint dataPoint in data) { AddSingleVotingDayDataPoint(dataPoint, seriesPositiveSingle, seriesPositiveDouble, seriesPositiveFull, seriesNegative); } seriesPositiveSingle.DefaultElement.Color = System.Drawing.Color.Yellow; seriesPositiveDouble.DefaultElement.Color = System.Drawing.Color.YellowGreen; seriesPositiveFull.DefaultElement.Color = System.Drawing.Color.Green; seriesPositiveSingle.DefaultElement.ShowValue = true; seriesNegative.DefaultElement.Color = System.Drawing.Color.DarkRed; SeriesCollection result = new SeriesCollection(); result.Add(seriesPositiveSingle); result.Add(seriesPositiveDouble); result.Add(seriesPositiveFull); result.Add(seriesNegative); return(result); }
SeriesCollection GetVotingDayRankingData() { GeographyBallotCoverageLookup lookup; lookup = GetLookupFromCache(); Geographies geos = null; string circuitString = Request.QueryString["CircuitId"]; int circuitId = 0; if (String.IsNullOrEmpty(Request.QueryString["CircuitId"])) { geos = Geographies.FromLevel(Country.FromCode("SE"), GeographyLevel.ElectoralCircuit); } else { circuitId = Int32.Parse(circuitString); Geographies candidateGeos = Geography.FromIdentity(circuitId).GetTree(); geos = new Geographies(); foreach (Geography geo in candidateGeos) { if (lookup.ContainsKey(geo.Identity) && geo.Identity != circuitId) { geos.Add(geo); } } } GeographyBallotCoverageData data = new GeographyBallotCoverageData(); foreach (Geography geo in geos) { if (lookup.ContainsKey(geo.Identity)) { data.Add(lookup[geo.Identity]); } } data.Sort( delegate(GeographyBallotCoverageDataPoint p1, GeographyBallotCoverageDataPoint p2) { int i1 = (absoluteMode?p1.VotingStationsTotal: p1.WVotingStationsTotal) - (absoluteMode?p1.VotingStationsDistroSingle: p1.WVotingStationsDistroSingle); int i2 = (absoluteMode?p2.VotingStationsTotal: p2.WVotingStationsTotal) - (absoluteMode?p2.VotingStationsDistroSingle: p2.WVotingStationsDistroSingle); return(i1.CompareTo(i2)); }); SeriesCollection collection = new SeriesCollection(); Series seriesPositiveSingle = new Series(); seriesPositiveSingle.Name = "Positive, single distro"; Label2.Text = "(I hela Sverige saknar " + (lookup[Geography.SwedenId].VotingStationsTotal - lookup[Geography.SwedenId].VotingStationsDistroSingle).ToString("#,##0") + " väljare Piratpartiets valsedlar.)"; if (circuitId != 0) { AddSingleVotingDayDataPoint(lookup[circuitId], seriesPositiveSingle); } seriesPositiveSingle.Elements.Add(new Element()); foreach (GeographyBallotCoverageDataPoint dataPoint in data) { AddSingleVotingDayDataPoint(dataPoint, seriesPositiveSingle); } seriesPositiveSingle.DefaultElement.Color = System.Drawing.Color.Red; seriesPositiveSingle.DefaultElement.ShowValue = true; SeriesCollection result = new SeriesCollection(); result.Add(seriesPositiveSingle); return(result); }