Example #1
0
    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()));
            }
        }
    }
Example #2
0
        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();
        }
    }
Example #4
0
    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);
    }