Esempio n. 1
0
 /// <summary>
 /// Update data from API when available
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 public static void APIDataChanged(object sender, PropertyChangedEventArgs e)
 {
     //Update current list of senators
     if (e.PropertyName.Equals(nameof(CongressAPI.Senators)))
     {
         Senators.Clear();
         foreach (var s in API.Senators)
         {
             Senators.Add(new MemberViewModel(s));
         }
         Ready.Set();
     }
     //Update current list of house members
     if (e.PropertyName.Equals(nameof(CongressAPI.HouseMembers)))
     {
         HouseMembers.Clear();
         foreach (var s in API.HouseMembers)
         {
             HouseMembers.Add(new MemberViewModel(s));
         }
         Ready.Set();
     }
     //Update current list of bills
     if (e.PropertyName.Equals(nameof(CongressAPI.AllBills)))
     {
         RecentBills.Clear();
         foreach (var b in API.AllBills)
         {
             RecentBills.Add(new BillViewModel(b));
         }
     }
 }
Esempio n. 2
0
        public void LoadData()
        {
            StreamResourceInfo srSenate    = Application.GetResourceStream(new Uri("Congress411;component/Data/Senate.xml", UriKind.Relative));
            XDocument          senatorsXml = XDocument.Load(srSenate.Stream);
            var senateList = (from politician in senatorsXml.Descendants("Politician")
                              select new PoliticianViewModel
            {
                BioGuideId = politician.Element("BioGuideId").Value,
                FirstName = politician.Element("FirstName").Value,
                LastName = politician.Element("LastName").Value,
                GovTrackId = politician.Element("GovTrackId").Value,
                Party = politician.Element("Party").Value,
                Phone = politician.Element("Phone").Value,
                TwitterId = politician.Element("TwitterId").Value,
                State = politician.Element("State").Value,
                WebSite = politician.Element("WebSite").Value,
                OfficeAddress = politician.Element("OfficeAddress").Value,
                SmallImage = String.Format("./Images/{0}.jpg", politician.Element("BioGuideId").Value)
            }).OrderBy(p => p.LastName).ToList();

            foreach (var senator in senateList)
            {
                Senators.Add(senator);
            }

            senateList = null;

            StreamResourceInfo srHouse = Application.GetResourceStream(new Uri("Congress411;component/Data/House.xml", UriKind.Relative));
            XDocument          repsXml = XDocument.Load(srHouse.Stream);
            var repList = (from politician in repsXml.Descendants("Politician")
                           select new PoliticianViewModel
            {
                BioGuideId = politician.Element("BioGuideId").Value,
                FirstName = politician.Element("FirstName").Value,
                LastName = politician.Element("LastName").Value,
                GovTrackId = politician.Element("GovTrackId").Value,
                Party = politician.Element("Party").Value,
                Phone = politician.Element("Phone").Value,
                TwitterId = politician.Element("TwitterId").Value,
                State = politician.Element("State").Value,
                WebSite = politician.Element("WebSite").Value,
                OfficeAddress = politician.Element("OfficeAddress").Value,
                SmallImage = String.Format("./Images/{0}.jpg", politician.Element("BioGuideId").Value)
            }).OrderBy(p => p.LastName).ToList();

            foreach (var rep in repList)
            {
                Representatives.Add(rep);
            }

            repList = null;

            this.IsDataLoaded = true;
        }
Esempio n. 3
0
        public static async Task <IEnumerable <MemberViewModel> > SenatorsByAddress(string address)
        {
            var state = await API.StateCodeByAddress(address);

            if (!string.IsNullOrEmpty(state))
            {
                return(Senators.Where(s => s.State.Equals(state, StringComparison.OrdinalIgnoreCase)));
            }
            else
            {
                return(new List <MemberViewModel>());
            }
        }
Esempio n. 4
0
 private void FetchSenators()
 {
     Task.Run(async() =>
     {
         //query current senators
         var data = await Query <RestResult <Chamber> >(ProPublica, "116/senate/members.json");
         if (data != null)
         {
             var results = data.Results.First().Members;
             foreach (var s in results)
             {
                 Senators.Add(s);
             }
             OnPropertyChanged(nameof(Senators));
         }
     });
 }