/// <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)); } } }
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; }
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>()); } }
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)); } }); }