private void AddMissingDataToLegislator(Legislator legislator, ILegislator legistlatorWithNewData)
        {
            if (legislator.Gender == Gender.NA && legistlatorWithNewData.Gender != Gender.NA)
            {
                legislator.Gender = legistlatorWithNewData.Gender;
            }

            if (legislator.TermStartDate == DateTime.MinValue && legistlatorWithNewData.TermStartDate != DateTime.MinValue)
            {
                legislator.TermStartDate = legistlatorWithNewData.TermStartDate;
            }

            if (legislator.TermEndDate == DateTime.MinValue && legistlatorWithNewData.TermEndDate != DateTime.MinValue)
            {
                legislator.TermEndDate = legistlatorWithNewData.TermEndDate;
            }

            if (string.IsNullOrWhiteSpace(legislator.IdVoteSmart) && !string.IsNullOrWhiteSpace(legistlatorWithNewData.IdVoteSmart))
            {
                legislator.IdVoteSmart = legistlatorWithNewData.IdVoteSmart;
            }

            if (string.IsNullOrWhiteSpace(legislator.IdOpenSecrets) && !string.IsNullOrWhiteSpace(legistlatorWithNewData.IdOpenSecrets))
            {
                legislator.IdOpenSecrets = legistlatorWithNewData.IdOpenSecrets;
            }
        }
示例#2
0
        public static void RemoveLegislatorFromFavoriteList(Legislator legislator)
        {
            var favLegislators = GetFavoriteLegislators();

            favLegislators.RemoveAll(l => l.IdBioguide.Equals(legislator.IdBioguide));

            GetBaseApp().FavoriteLegislators = favLegislators;
        }
示例#3
0
        public static List <Legislator> LegislatorsFromSunlightLegislatorResult(SunlightLegislatorResult.Rootobject legislatorResults)
        {
            var legislators = new List <Legislator>();

            foreach (var l in legislatorResults.results)
            {
                var legislator = new Legislator()
                {
                    FirstName     = l.first_name ?? string.Empty,
                    MiddleName    = l.middle_name ?? string.Empty,
                    LastName      = l.last_name ?? string.Empty,
                    Birthday      = DataTransformationUtil.DateFromSunlightTime(l.birthday),
                    Party         = DataTransformationUtil.PartyFromString(l.party),
                    Chamber       = DataTransformationUtil.LegislativeBodyFromSunlight(l.chamber),
                    State         = DataTransformationUtil.GetStateOrTerritoryFromSunlight(l.state),
                    Gender        = DataTransformationUtil.GenderFromString(l.gender),
                    TermStartDate = DataTransformationUtil.DateFromSunlightTime(l.term_start),
                    TermEndDate   = DataTransformationUtil.DateFromSunlightTime(l.term_end),
                    IdBioguide    = l.bioguide_id ?? string.Empty,

                    OfficeAddress = string.IsNullOrWhiteSpace(l.office)
                        ? new ContactMethod(ContactType.NotSet, string.Empty)
                        : new ContactMethod(ContactType.Mail, l.office),
                    OfficeNumber = string.IsNullOrWhiteSpace(l.phone)
                        ? new ContactMethod(ContactType.NotSet, string.Empty)
                        : new ContactMethod(ContactType.Phone, l.phone),
                    Email = string.IsNullOrWhiteSpace(l.oc_email)
                        ? new ContactMethod(ContactType.NotSet, string.Empty)
                        : new ContactMethod(ContactType.Email, l.oc_email),

                    FacebookId = string.IsNullOrWhiteSpace(l.facebook_id)
                        ? new ContactMethod(ContactType.NotSet, string.Empty)
                        : new ContactMethod(ContactType.Facebook, l.facebook_id),
                    TwitterId = string.IsNullOrWhiteSpace(l.twitter_id)
                        ? new ContactMethod(ContactType.NotSet, string.Empty)
                        : new ContactMethod(ContactType.Twitter, l.twitter_id),
                    YouTubeId = string.IsNullOrWhiteSpace(l.youtube_id)
                        ? new ContactMethod(ContactType.NotSet, string.Empty)
                        : new ContactMethod(ContactType.YouTube, l.youtube_id),
                    Website = string.IsNullOrWhiteSpace(l.website)
                        ? new ContactMethod(ContactType.NotSet, string.Empty)
                        : new ContactMethod(ContactType.WebSite, l.website),
                    ContactSite = string.IsNullOrWhiteSpace(l.contact_form)
                        ? new ContactMethod(ContactType.NotSet, string.Empty)
                        : new ContactMethod(ContactType.WebSiteContact, l.contact_form),


                    TotalVotes            = 0,
                    MissedVotesPercent    = 0,
                    VotesWithPartyPercent = 0,
                    Senority = string.Empty
                };

                legislators.Add(legislator);
            }

            return(legislators);
        }
示例#4
0
        public static string GetLegislatorBirthdateAndAge(Legislator legislator)
        {
            if (legislator.Birthday.Equals(DateTime.MinValue))
            {
                return(string.Empty);
            }

            return($"{legislator.Birthday.ToShortDateString()} ({GetLegislatorAge(legislator)})");
        }
示例#5
0
        public static Legislator DeserializeLegislatorJson(Legislator objectToSerialize, string jsonSerializedContent)
        {
            if (string.IsNullOrWhiteSpace(jsonSerializedContent))
            {
                throw new JsonSerializationException($"Cannot deserialize {objectToSerialize.GetType().ToString()} from an empty string");
            }

            return(JsonConvert.DeserializeObject <Legislator>(jsonSerializedContent));
        }
示例#6
0
        public override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            var serialziedLegislator = Arguments.GetString(BundleType.Legislator);

            _legislator = new Legislator().DeserializeFromJson(serialziedLegislator);

            _legislatorManager = new LegislatorManager(MyLogger);
            currentPage        = RetrieveCurrentPageIfAvailable(savedInstanceState);
        }
示例#7
0
        public static CommitteeViewerFragmentCtrl CreateInstance(Legislator legislator)
        {
            var newFragment = new CommitteeViewerFragmentCtrl();

            var args = new Bundle();

            args.PutString(BundleType.Legislator, legislator.SerializeToJson());
            newFragment.Arguments = args;

            return(newFragment);
        }
示例#8
0
        public static void StartViewLegislatorIntent(BaseActivity activity, Legislator legislator)
        {
            using (var intent = new Intent(activity, typeof(ViewLegislatorActivity)))
            {
                if (legislator != null)
                {
                    intent.PutExtra(BundleType.Legislator, legislator.SerializeToJson());
                }

                activity.StartActivity(intent);
            }
        }
示例#9
0
        public static void AddLegislatorToFavoriteList(Legislator legislator)
        {
            var favLegislators = GetFavoriteLegislators();

            if (favLegislators.Any(l => l.IdBioguide.Equals(legislator.IdBioguide, StringComparison.OrdinalIgnoreCase)))
            {
                favLegislators.RemoveAll(l => l.IdBioguide.Equals(legislator.IdBioguide));
            }

            favLegislators.Add(legislator);

            GetBaseApp().FavoriteLegislators = favLegislators;
        }
示例#10
0
        public static BillViewerFragmentCtrl CreateInstance(Legislator legislator, BillViewerKind viewerMode)
        {
            var newFragment = new BillViewerFragmentCtrl();

            var args = new Bundle();

            if (legislator != null)
            {
                args.PutString(BundleType.Legislator, legislator.SerializeToJson());
            }

            args.PutInt(BundleType.BillViewerFragmentType, (int)viewerMode);

            newFragment.Arguments = args;
            return(newFragment);
        }
示例#11
0
        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            currentPage = RetrieveCurrentPageIfAvailable(savedInstanceState);

            if (savedInstanceState != null && savedInstanceState.ContainsKey(BundleType.BillViewerFragmentType))
            {
                _viewerMode = (BillViewerKind)savedInstanceState.GetInt(BundleType.BillViewerFragmentType);
            }

            if (_legislator == null && (_viewerMode != BillViewerKind.BillSearch && _viewerMode != BillViewerKind.LastestBillsForEveryone))
            {
                _legislator = RetrieveLegislatorIfAvailable(savedInstanceState);
            }

            var fragment = base.OnCreateView(inflater, container, savedInstanceState);

            var adapter = new BillAdapter(this);

            adapter.OnEndOfListReached         += Adapter_OnEndOfListReached;
            adapter.OnEndOfListElementRecycled += Adapter_OnEndOfListElementRecycled;
            recycler.SetAdapter(adapter);

            ShowEmptyview(GetString(_viewerMode == BillViewerKind.BillSearch
                                    ? Resource.String.enterSearchCriteria
                                    : Resource.String.loading));

            if (_billsToDisplay != null && _billsToDisplay.Count >= 0)
            {
                SetBills(_billsToDisplay, _isThereMoreVotes);
            }
            else if (savedInstanceState != null && !string.IsNullOrWhiteSpace(savedInstanceState.GetString(BundleType.Bills, string.Empty)))
            {
                var serializedBills = savedInstanceState.GetString(BundleType.Bills);
                _billsToDisplay = new List <Bill>().DeserializeFromJson(serializedBills);
                SetBills(_billsToDisplay, _isThereMoreVotes);
            }

            // Removing '|| !string.IsNullOrWhiteSpace(_lastSearchTerm))' for now
            // since it will fetch legislator content when searchview is not empty and the
            // use does something like switch orientation
            else if (_viewerMode != BillViewerKind.BillSearch)// || !string.IsNullOrWhiteSpace(_lastSearchTerm))
            {
                FetchMoreLegislatorContent(false);
            }

            return(fragment);
        }
示例#12
0
        private void SetPortrait(Legislator legislator)
        {
            var getLegislatorPortraitTask = new Task <byte[]>((prms) =>
            {
                var passedParams = prms as Tuple <string, LegislatorManager>;

                var legislatorId = passedParams.Item1;
                var lm           = passedParams.Item2;

                var portraitAsByteArray = lm.GetLegislatorPortraitAsByteArray(legislatorId);

                return(portraitAsByteArray);
            }, new Tuple <string, LegislatorManager>(legislator.IdBioguide, _legistorManager));

            getLegislatorPortraitTask.ContinueWith((antecedent) =>
            {
                if (Activity == null || Activity.IsDestroyed || Activity.IsFinishing)
                {
                    return;
                }

                Activity.RunOnUiThread(() =>
                {
                    if (!antecedent.IsFaulted || !antecedent.IsCanceled)
                    {
                        try
                        {
                            var portraitByteArray = antecedent.Result;
                            if (portraitByteArray != null && portraitByteArray.Length > 0 && Activity != null && !Activity.IsFinishing)
                            {
                                portraitAsBitmap = Android.Graphics.BitmapFactory.DecodeByteArray(portraitByteArray, 0, portraitByteArray.Length);

                                Activity.RunOnUiThread(
                                    () => _portrait.SetImageBitmap(portraitAsBitmap));
                            }
                        }
                        catch (Exception e)
                        {
                            MyLogger.Error("Error retrieving and setting legislator portrait", e);
                        }
                    }
                });
            });

            getLegislatorPortraitTask.Start();
        }
示例#13
0
        private void PopulateBasicInfo(View fragment, Legislator legislator)
        {
            _portrait = fragment.FindViewById <ImageView>(Resource.Id.viewLegislatorFrag_portrait);
            AppHelper.SetLegislatorPortrait(legislator, _portrait);

            using (var chamber = fragment.FindViewById <TextView>(Resource.Id.viewLegislatorFrag_chamber))
                chamber.Text = $"{AndroidHelper.GetString(Resource.String.chamber)}: {legislator.Chamber} ({legislator.State.ToString()})";

            using (var party = fragment.FindViewById <TextView>(Resource.Id.viewLegislatorFrag_party))
                party.Text = $"{AndroidHelper.GetString(Resource.String.party)}: {legislator.Party.ToString()}";

            var termStartDateText = AndroidHelper.GetString(Resource.String.termStarted);

            using (var termStartDate = fragment.FindViewById <TextView>(Resource.Id.viewLegislatorFrag_termStartDate))
                termStartDate.Text = AppHelper.GetLegislatorTermStartDate(legislator, termStartDateText);

            var termEndDateText = AndroidHelper.GetString(Resource.String.termEnds);

            using (var termEndDate = fragment.FindViewById <TextView>(Resource.Id.viewLegislatorFrag_termEndDate))
                termEndDate.Text = AppHelper.GetLegislatorTermEndDate(legislator, termEndDateText);

            using (var birthday = fragment.FindViewById <TextView>(Resource.Id.viewLegislatorFrag_birthdate))
            {
                var bdayText = AndroidHelper.GetString(Resource.String.birthday);
                birthday.Text = legislator.Birthday == DateTime.MinValue
                    ? string.Empty
                    : $"{bdayText}: {AppHelper.GetLegislatorBirthdateAndAge(legislator)}";
            }

            UpdateTextview(fragment,
                           Resource.Id.viewLegislatorFrag_votesTotal,
                           Resource.String.votesTotal,
                           legislator.TotalVotes.ToString());

            UpdateTextview(fragment,
                           Resource.Id.viewLegislatorFrag_voteWithPartyPrct,
                           Resource.String.votesWithPartyPercent,
                           legislator.VotesWithPartyPercent.ToString());

            UpdateTextview(fragment,
                           Resource.Id.viewLegislatorFrag_voteMissedPrct,
                           Resource.String.votesMissedPercent,
                           legislator.MissedVotesPercent.ToString());
        }
        public List <Legislator> GetAllLegislators()
        {
            var legislators  = new List <Legislator>();
            var iLegislators = _legislatorSvc.GetAllAlegislators();

            foreach (var legislator in iLegislators)
            {
                legislators.Add(Legislator.TranformToLegislator(legislator));
            }

            var legislatorFromUsIoApi = _legislatorSvc.GetLegislatorsFromUsIoApi();

            if (legislatorFromUsIoApi != null && legislatorFromUsIoApi.Count > 0)
            {
                AddMissingDataToLegislatorGroup(legislators, legislatorFromUsIoApi);
            }

            return(legislators);
        }
示例#15
0
        public override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            RetainInstance = true;

            var serialziedLegislator = Arguments.GetString(BundleType.Legislator);

            if (!string.IsNullOrWhiteSpace(serialziedLegislator))
            {
                _legislator = new Legislator().DeserializeFromJson(serialziedLegislator);
            }

            if (Arguments.ContainsKey(BundleType.BillsIsThereMoreContent))
            {
                _isThereMoreVotes = Arguments.GetBoolean(BundleType.BillsIsThereMoreContent);
            }

            _billManager = new BillManager(MyLogger);
            _viewerMode  = (BillViewerKind)Arguments.GetInt(BundleType.BillViewerFragmentType);
        }
示例#16
0
        private void PopulateContactMethodsButtons(View fragment, Legislator legislator)
        {
            var Email   = fragment.FindViewById <ImageButton>(Resource.Id.viewLegislatorFrag_email);
            var Phone   = fragment.FindViewById <ImageButton>(Resource.Id.viewLegislatorFrag_phone);
            var Address = fragment.FindViewById <ImageButton>(Resource.Id.viewLegislatorFrag_address);

            var Facebook = fragment.FindViewById <ImageButton>(Resource.Id.viewLegislatorFrag_facebook);
            var Twitter  = fragment.FindViewById <ImageButton>(Resource.Id.viewLegislatorFrag_twitter);
            var Webpage  = fragment.FindViewById <ImageButton>(Resource.Id.viewLegislatorFrag_webpage);
            var YouTube  = fragment.FindViewById <ImageButton>(Resource.Id.viewLegislatorFrag_youtube);

            //Contact, social media, ect buttons
            SetupLegislatorContactMthdButton(Email, legislator.Email);
            SetupLegislatorContactMthdButton(Phone, legislator.OfficeNumber);
            SetupLegislatorContactMthdButton(Address, legislator.OfficeAddress);

            SetupLegislatorContactMthdButton(Facebook, legislator.FacebookId);
            SetupLegislatorContactMthdButton(Twitter, legislator.TwitterId);
            SetupLegislatorContactMthdButton(Webpage, legislator.Website);
            SetupLegislatorContactMthdButton(YouTube, legislator.YouTubeId);
        }
示例#17
0
        private async Task <Legislator> AddLegislatorData(Legislator legislator)
        {
            if (legislator == null)
            {
                return(legislator);
            }

            legislator.Ratings = await GovLookupRepository.GetLegislatorRatings(legislator.Id);

            legislator.KeyVotes = await GovLookupRepository.GetLegislatorKeyVotes(legislator.Id);

            legislator.Bills = await GovLookupRepository.GetLegislatorBills(legislator.Id);

            legislator.Committees = await GovLookupRepository.GetLegislatorCommittees(legislator.Id);

            legislator.IndustryFinance = await GovLookupRepository.GetLegislatorIndustryFinance(legislator.Id);

            var industryFinanceData = await GovLookupRepository.GetLegislatorIndustryFinance(legislator.Id);

            legislator.IndustryFinanceChart        = MapToPieChart(industryFinanceData);
            legislator.IndustryFinanceChartOptions = GetIndustryFinanceChartOptions();
            return(legislator);
        }
示例#18
0
        //http://stackoverflow.com/questions/19320008/default-constructors-in-xamarin-android


        public override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            //RetainInstance = true;

            ServicePointManager.ServerCertificateValidationCallback = MyRemoteCertificateValidationCallback;

            //https://developer.xamarin.com/guides/android/platform_features/fragments/part_1_-_creating_a_fragment/
            //SetRetainInstance(true)

            var serializedLegislator = Arguments.GetString(BundleType.Legislator);

            if (string.IsNullOrWhiteSpace(serializedLegislator))
            {
                MyLogger.Error("No legislator passed with creating ViewLegislatorFragment. Returning");
                Activity.Finish();
                return;
            }

            _legislator       = JsonConvert.DeserializeObject <Legislator>(serializedLegislator);
            _legistorManager  = new LegislatorManager(MyLogger);
            _viewPagerAdapter = new LegislatorViewPagerAdapter(ChildFragmentManager, _legislator);
        }
        //public List<Vote> Votes
        //{
        //    get { return _votes; }
        //    set { _votes = value; }
        //}

        //public List<Bill> BillsSponsored
        //{
        //    get { return _billsSponsored; }
        //    set { _billsSponsored = value; }
        //}

        //public List<Bill> BillsCosponsored
        //{
        //    get { return _billsCosponsored; }
        //    set { _billsCosponsored = value; }
        //}

        //public List<Committee> Committees
        //{
        //    get { return _committees; }
        //    set { _committees = value; }
        //}

        public LegislatorViewPagerAdapter(Android.Support.V4.App.FragmentManager fm, Legislator legislator)
            : base(fm)
        {
            _legislator = legislator;

            /*
             * Find how to retain instance on rotation. Also ensure there are no memory leak if using
             * //FragmentPagerAdapter (since it keeps the fragment instance) and all references to activites
             * //context and ect are cleared
             * //viewers.Insert((int)ViewPagerList.LegislatorVotes, VoteViewerFragmentCtrl.CreateInstance(legislator, LoadMoreVotesClicked));
             *
             * ////// Look into
             * ////viewers.Insert(0, VoteViewerFragmentCtrl.CreateInstance(legislator, LoadMoreVotesClicked));
             *
             *
             * /////// Move back to last place
             * //viewers[(int)ViewPagerList.LegislatorCommittees] = CommitteeViewerFragmentCtrl.CreateInstance(legislator);
             * //viewers[(int)ViewPagerList.LegislatorCommittees] = CommitteeViewerFragmentCtrl.CreateInstance(legislator);
             * //viewers.Add(CommitteeViewerFragmentCtrl.CreateInstance(legislator));
             *
             * /////// For some reason this cause issues, it could be the use of an async further
             * //down in the BillViewerFragmentCtrl code that calls the web svc
             * ////viewers.Insert((int)ViewPagerList.LegislatorBillsSponsored, BillViewerFragmentCtrl.CreateInstance(legislator, BillViewerKind.SponsoredBills));
             * //viewers.Insert(1, BillViewerFragmentCtrl.CreateInstance(legislator, BillViewerKind.SponsoredBills));
             *
             *
             * //viewers.Add(BillViewerFragmentCtrl.CreateInstance(legislator, BillViewerKind.SponsoredBills));
             * //viewers.Add(BillViewerFragmentCtrl.CreateInstance(legislator, BillViewerKind.CosponsoredBills));
             * ///viewers.Insert((int)ViewPagerList.LegislatorBillsCosponsored, BillViewerFragmentCtrl.CreateInstance(legislator, BillViewerKind.CosponsoredBills));
             *
             *
             * ////viewers.Insert((int)ViewPagerList.LegislatorCommittees, CommitteeViewerFragmentCtrl.CreateInstance(legislator));
             * /////// RM Look into
             * ////viewers.Insert(1, CommitteeViewerFragmentCtrl.CreateInstance(legislator));
             */
        }
 public static LegislatorViewModel fromLegislator(Legislator legislator)
 {
     return new LegislatorViewModel() {
         legislator = legislator,
         OfficialName = getOfficialName(legislator),
         TitledName = titledName(legislator),
         Position = getPosition(legislator),
         Party = partyName(legislator),
         State = getStateName(legislator.state),
         District = getDistrict(legislator),
         Phone = legislator.phone,
         Office = getOffice(legislator),
         PhotoUrlMedium = photoUrl(PHOTO_MEDIUM, legislator.bioguideId),
         PhotoUrlLarge = photoUrl(PHOTO_LARGE, legislator.bioguideId),
         CallMessage = callMessage(legislator),
         WebsiteMessage = websiteMessage(legislator),
         ShortWebsite = shortWebsite(legislator),
         NewsKeyword = newsKeyword(legislator),
         OpenCongressUrl = openCongressUrl(legislator),
         GovTrackUrl = govTrackUrl(legislator),
         BioguideUrl = bioguideUrl(legislator)
     };
 }
示例#21
0
 public static bool IsLegislatorInFavorites(Legislator legislator)
 {
     return(GetFavoriteLegislators().Any(l => l.IdBioguide.Equals(legislator.IdBioguide, StringComparison.OrdinalIgnoreCase)));
 }
示例#22
0
 public static int GetLegislatorAge(Legislator legislator)
 {
     return(DateTime.Today.AddYears(legislator.Birthday.Year * -1).Year);
 }
 public static string fullTitle(Legislator legislator)
 {
     if (legislator.title.Equals("Del"))
         return "Delegate";
     else if (legislator.title.Equals("Com"))
         return "Resident Commissioner";
     else if (legislator.title.Equals("Sen"))
         return "Senator";
     else // "Rep"
         return "Representative";
 }
 public static string bioguideUrl(Legislator legislator)
 {
     return "http://bioguide.congress.gov/scripts/biodisplay.pl?index=" + legislator.bioguideId;
 }
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

            string titledName, bioguideId;
            NavigationContext.QueryString.TryGetValue("titledName", out titledName);
            NavigationContext.QueryString.TryGetValue("bioguideId", out bioguideId);

            MainPivot.Title = titledName;

            object legislatorObject;
            if (State.TryGetValue("legislator", out legislatorObject))
                legislator = legislatorObject as Legislator;

            object itemsObject;
            if (State.TryGetValue("items", out itemsObject))
                items = itemsObject as Collection<NewsItem>;

            object tweetsObject;
            if (State.TryGetValue("tweets", out tweetsObject))
                tweets = tweetsObject as Collection<Tweet>;

            object videosObject;
            if (State.TryGetValue("videos", out videosObject))
                videos = videosObject as Collection<Video>;

            object committeesObject;
            if (State.TryGetValue("committees", out committeesObject))
                committees = committeesObject as Collection<Committee>;

            if (legislator == null) {
                ProfileMessage.Visibility = Visibility.Collapsed;
                MainPivot.Visibility = Visibility.Collapsed;
                ApplicationBar.IsVisible = false;
                (ProfileSpinner.FindName("LoadingText") as TextBlock).Text = "Loading legislator...";
                ProfileSpinner.Visibility = Visibility.Visible;
                Legislator.find(bioguideId, new Legislator.LegislatorFoundEventHandler(displayLegislator));
            } else
                displayLegislator(legislator);
        }
 public static string partyName(Legislator legislator)
 {
     if (legislator.party.Equals("D"))
         return "Democrat";
     if (legislator.party.Equals("R"))
         return "Republican";
     if (legislator.party.Equals("I"))
         return "Independent";
     else
         return "";
 }
 public static string callMessage(Legislator legislator)
 {
     if (legislator.gender.Equals("M"))
         return "Call his office";
     else if (legislator.gender.Equals("F"))
         return "Call her office";
     else // safeguard against future transgendered or non-gendered officeholders
         return "Call their office";
 }
 public static string newsKeyword(Legislator legislator)
 {
     return legislator.title + ". " + getName(legislator);
 }
 public static string openCongressUrl(Legislator legislator)
 {
     return "http://www.opencongress.org/person/show/" + legislator.govTrackId;
 }
 public static string govTrackUrl(Legislator legislator)
 {
     return "http://www.govtrack.us/congress/person.xpd?id=" + legislator.govTrackId;
 }
        public static string getPosition(Legislator legislator)
        {
            string district = legislator.district;
            string state = legislator.state;
            string position = "";

            if (district.Equals("Senior Seat"))
                position = "Senior Senator from " + state;
            else if (district.Equals("Junior Seat"))
                position = "Junior Senator from " + state;
            else if (district.Equals("0"))
            {
                if (legislator.title.Equals("Rep"))
                    position = "Representative for " + state + " At-Large";
                else
                    position = fullTitle(legislator) + " for " + state;
            }
            else
                position = "Representative for " + state + "-" + district;

            return position;
        }
 public static string getDomain(Legislator legislator)
 {
     if (legislator.district.Equals("Senior Seat") || legislator.district.Equals("Junior Seat"))
         return legislator.district;
     else if (legislator.district.Equals("0"))
         return "At-Large";
     else
         return "District " + legislator.district;
 }
 public static string commonName(Legislator legislator)
 {
     if (legislator.nickName != null && legislator.nickName.Length > 0)
         return legislator.nickName;
     else
         return legislator.firstName;
 }
 public static string shortWebsite(Legislator legislator)
 {
     string website = legislator.website;
     website = Regex.Replace(website, "^http://(?:www\\.)?", "");
     website = Regex.Replace(website, "/$", "");
     return website;
 }
示例#35
0
 public static string GetLegislatorTermEndDate(Legislator legislator, string termEndDateText)
 {
     return(legislator.TermEndDate.Equals(DateTime.MinValue)
         ? $"{termEndDateText}: {AndroidHelper.GetString(Resource.String.unknown)}"
         : $"{termEndDateText}: {legislator.TermEndDate.ToShortDateString()}");
 }
 public static string titledName(Legislator legislator)
 {
     string name = legislator.title + ". " + getName(legislator);
     if (legislator.nameSuffix != null && !legislator.nameSuffix.Equals(""))
         name += ", " + legislator.nameSuffix;
     return name;
 }
 private string getFullName(Legislator legislator)
 {
     return((legislator.first_name + " " +
             legislator.middle_name + " " +
             legislator.last_name).Replace("  ", " "));
 }
 public static string websiteMessage(Legislator legislator)
 {
     if (legislator.gender.Equals("M"))
         return "Visit his website";
     else if (legislator.gender.Equals("F"))
         return "Visit her website";
     else // safeguard against future transgendered or non-gendered officeholders
         return "Visit their website";
 }
 public static string getOffice(Legislator legislator)
 {
     string office = legislator.congressOffice;
     string shortOffice = Regex.Replace(office, "(?:House|Senate) (?:Office)? Building", String.Empty, RegexOptions.IgnoreCase);
     return shortOffice.Trim();
 }
 public static string getName(Legislator legislator)
 {
     return commonName(legislator) + " " + legislator.lastName;
 }
        protected void displayLegislator(Legislator legislator)
        {
            ProfileSpinner.Visibility = Visibility.Collapsed;
            ProfileMessage.Visibility = Visibility.Collapsed;
            this.legislator = legislator;

            if (legislator != null) {

                this.view = LegislatorViewModel.fromLegislator(legislator);
                DataContext = view;

                if (items == null) {
                    NewsMessage.Visibility = Visibility.Collapsed;
                    NewsList.Visibility = Visibility.Collapsed;
                    (NewsSpinner.FindName("LoadingText") as TextBlock).Text = "Plucking news from the air...";
                    NewsSpinner.Visibility = Visibility.Visible;
                    NewsItem.search(view.NewsKeyword, displayNews);
                } else
                    displayNews(items);

                if (tweets == null) {
                    if (view.legislator.twitterId != null && view.legislator.twitterId.Length > 0) {
                        TweetsMessage.Visibility = Visibility.Collapsed;
                        TweetsList.Visibility = Visibility.Collapsed;
                        (TweetsSpinner.FindName("LoadingText") as TextBlock).Text = "Plucking tweets from the air...";
                        TweetsSpinner.Visibility = Visibility.Visible;
                        Tweet.search(legislator.twitterId, displayTweets);
                    } else {
                        TweetsSpinner.Visibility = Visibility.Collapsed;
                        (TweetsMessage.FindName("Message") as TextBlock).Text = this.view.TitledName + " doesn't use Twitter.";
                        TweetsMessage.Visibility = Visibility.Visible;
                    }
                } else
                    displayTweets(tweets);

                if (videos == null) {
                    if (view.legislator.youtubeUrl != null && view.legislator.youtubeUrl.Length > 0) {
                        VideosMessage.Visibility = Visibility.Collapsed;
                        VideosList.Visibility = Visibility.Collapsed;
                        (VideosSpinner.FindName("LoadingText") as TextBlock).Text = "Plucking videos from the air...";
                        VideosSpinner.Visibility = Visibility.Visible;
                        Video.getVideos(youtubeUsername(legislator.youtubeUrl), displayVideos);
                    } else {
                        VideosSpinner.Visibility = Visibility.Collapsed;
                        (VideosMessage.FindName("Message") as TextBlock).Text = this.view.TitledName + " doesn't use YouTube.";
                        VideosMessage.Visibility = Visibility.Visible;
                    }
                } else
                    displayVideos(videos);

                if (committees == null) {
                    CommitteesMessage.Visibility = Visibility.Collapsed;
                    CommitteesList.Visibility = Visibility.Collapsed;
                    (CommitteesSpinner.FindName("LoadingText") as TextBlock).Text = "Plucking committees from the air...";
                    CommitteesSpinner.Visibility = Visibility.Visible;
                    Committee.allForLegislator(view.legislator.bioguideId, displayCommittees);
                } else
                    displayCommittees(committees);

                MainPivot.Visibility = Visibility.Visible;
                ApplicationBar.IsVisible = true;

            } else {
                (ProfileMessage.FindName("Message") as TextBlock).Text = "There was a problem loading information for " + this.view.TitledName + ".";
                ProfileMessage.Visibility = Visibility.Visible;
            }
        }
 public static string getOfficialName(Legislator legislator)
 {
     return legislator.lastName + ", " + commonName(legislator);
 }