示例#1
0
        public static LocationCookies GetCookies()
        {
            var httpContext = HttpContext.Current;

            if (httpContext == null)
            {
                throw new ApplicationException("HttpContext is not available.");
            }
            var request = httpContext.Request;

            // ReSharper disable once JoinDeclarationAndInitializer
            LocationCookies result;

            result = new LocationCookies
            {
                Address                = ValueOrNull(request.Cookies["Address"]),
                State                  = ValueOrNull(request.Cookies["State"]),
                Congress               = ValueOrNull(request.Cookies["Congress"]),
                StateSenate            = ValueOrNull(request.Cookies["StateSenate"]),
                StateHouse             = ValueOrNull(request.Cookies["StateHouse"]),
                County                 = ValueOrNull(request.Cookies["County"]),
                District               = ValueOrNull(request.Cookies["District"]),
                Place                  = ValueOrNull(request.Cookies["Place"]),
                Elementary             = ValueOrNull(request.Cookies["Elementary"]),
                Secondary              = ValueOrNull(request.Cookies["Secondary"]),
                Unified                = ValueOrNull(request.Cookies["Unified"]),
                CityCouncil            = ValueOrNull(request.Cookies["CityCouncil"]),
                CountySupervisors      = ValueOrNull(request.Cookies["CountySupervisors"]),
                SchoolDistrictDistrict = ValueOrNull(request.Cookies["SchoolDistrictDistrict"]),
                Geo = ValueOrNull(request.Cookies["Geo"])
            };

            return(result);
        }
示例#2
0
        private static List <LinkInfo> GetRecentSampleBallotLinks(LocationCookies cookies)
        {
            var linkList = new List <LinkInfo>();

            if (StateCache.IsValidStateCode(cookies.State))
            {
                var table =
                    Elections.GetViewableDisplayDataByStateCode(cookies.State);

                foreach (var row in table)
                {
                    var linkInfo = new LinkInfo(row)
                    {
                        HRef =
                            UrlManager.GetBallotPageUri(row.ElectionKey, cookies.Congress,
                                                        cookies.StateSenate, cookies.StateHouse, cookies.County, cookies.District,
                                                        cookies.Place, cookies.Elementary, cookies.Secondary, cookies.Unified,
                                                        cookies.CityCouncil, cookies.CountySupervisors,
                                                        cookies.SchoolDistrictDistrict, null)
                    };
                    linkList.Add(linkInfo);
                    // go back to most recent general or offyear election
                    if (row.ElectionType == "G" || row.ElectionType == "O")
                    {
                        break;
                    }
                }
            }

            return(linkList);
        }
示例#3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            var substitutions = new Substitutions();

            if (DomainData.IsValidStateCode) // Single state
            {
                Title =
                    $"{PublicMasterPage.SiteName} | {substitutions.Substitute(TitleTagDefaultPageSingleStateDomain)}";
                MetaDescription = substitutions.Substitute(MetaDescriptionTagDefaultPageSingleStateDomain);
            }
            else // use the All states domain
            {
                Title =
                    $"{PublicMasterPage.SiteName} | {substitutions.Substitute(TitleTagDefaultPageAllStatesDomain)}";
                MetaDescription = substitutions.Substitute(MetaDescriptionTagDefaultPageAllStatesDomain);
            }

            // My Sample Ballot Buttons

            var             cookies   = LocationCookies.GetCookies();
            List <LinkInfo> links     = null;
            var             stateCode = DomainData.FromQueryStringOrDomain;

            if (cookies.IsValid)
            {
                links = GetRecentSampleBallotLinks(cookies);
            }
            ExplorerLinkBox.Visible = false;

            SetupHeading(cookies, links);

            if (DomainData.IsValidStateCode)
            {
                CreateUpcomingLinks(stateCode);
            }
            else
            {
                UpcomingLinkBox.Visible = false;
            }

            GetLinkBox(PresidentLinks, "US President and Vice-President",
                       ForResearchPage.GetPresidentLinks());
            GetLinkBox(SenateLinks, "US Senate",
                       ForResearchPage.GetSenateLinks());
            GetLinkBox(HouseLinks, "US House of Representatives",
                       ForResearchPage.GetHouseLinks());
            GetLinkBox(GovernorLinks,
                       "State Governors and Lieutenant Governors",
                       ForResearchPage.GetGovernorLinks());

            if (DomainData.IsValidStateCode)
            {
                ForResearchPage.AddStateLinksToDiv(ElectionResults, stateCode, false, false);
            }
            else
            {
                ElectionResultsLinkBox.Visible = false;
            }
        }
示例#4
0
        protected override string GetCacheKey()
        {
            var cookies = LocationCookies.GetCookies();
            var key     = UrlManager.GetStateCodeFromHostName();

            if (cookies.IsValid)
            {
                key =
                    $"{UrlManager.GetStateCodeFromHostName()}.{cookies.Congress}.{cookies.StateSenate}." +
                    $"{cookies.StateHouse}.{cookies.County}.{cookies.District}.{cookies.Place}." +
                    $"{cookies.Elementary}.{cookies.Secondary}.{cookies.Unified}.{cookies.CityCouncil}." +
                    $"{cookies.CountySupervisors}.{cookies.SchoolDistrictDistrict}";
            }

            return(key);
        }
示例#5
0
        private void SetupHeading(LocationCookies cookies, IEnumerable <LinkInfo> links)
        {
            if (cookies.IsValid)
            {
                HeaderArea.AddCssClasses("has-address has-state");
                ElectedOfficialsButton.Visible = true;
                StatewideButton.Visible        = true;

                if (links != null)
                {
                    foreach (var button in links.Select(CreateSampleBallotButton))
                    {
                        button.AddTo(SampleBallotPlaceHolder);
                    }
                }
                ElectedOfficialsLink.HRef =
                    UrlManager.GetElectedPageUri(cookies.State, cookies.Congress, cookies.StateSenate,
                                                 cookies.StateHouse, cookies.County, cookies.District, cookies.Place, cookies.Elementary,
                                                 cookies.Secondary, cookies.Unified, cookies.CityCouncil, cookies.CountySupervisors,
                                                 cookies.SchoolDistrictDistrict)
                    .ToString();
                StatewideLink.HRef = UrlManager.GetOfficialsPageUri(cookies.State)
                                     .ToString();
            }
            else if (DomainData.IsValidStateCode)
            {
                HeaderArea.AddCssClasses("no-address has-state");
                ElectedOfficialsButton.Visible = false;
                StatewideButton.Visible        = true;
                StatewideLink.HRef             =
                    UrlManager.GetOfficialsPageUri(DomainData.FromQueryStringOrDomain)
                    .ToString();
            }
            else
            {
                HeaderArea.AddCssClasses("no-address no-state");
                ElectedOfficialsButton.Visible = false;
                StatewideButton.Visible        = false;
            }
            if (IsPostBack)
            {
                AddressEntry.Submit();
            }
        }
示例#6
0
        public static LocationCookies GetCookies()
        {
            var httpContext = HttpContext.Current;

            if (httpContext == null)
            {
                throw new ApplicationException("HttpContext is not available.");
            }
            var request = httpContext.Request;

            // ReSharper disable once JoinDeclarationAndInitializer
            LocationCookies result;

            //if (string.IsNullOrWhiteSpace(ValueOrNull(request.Cookies["Vote"])))
            result = new LocationCookies
            {
                Address     = ValueOrNull(request.Cookies["Address"]),
                State       = ValueOrNull(request.Cookies["State"]),
                Congress    = ValueOrNull(request.Cookies["Congress"]),
                StateSenate = ValueOrNull(request.Cookies["StateSenate"]),
                StateHouse  = ValueOrNull(request.Cookies["StateHouse"]),
                County      = ValueOrNull(request.Cookies["County"])
            };
            //else
            //{
            //  // ReSharper disable once PossibleNullReferenceException
            //  var cookies = request.Cookies["Vote"].Values;
            //  result = new LocationCookies
            //  {
            //    State = cookies["State"],
            //    Congress = cookies["Congress"],
            //    StateSenate = cookies["StateSenate"],
            //    StateHouse = cookies["StateHouse"],
            //    County = cookies["County"]
            //  };
            //}

            return(result);
        }