//grabs remote api data and saves it locally; updates all CorpXML Files private void UpdateLocalCorpXML() { foreach (UserData users in UserInfoList) { if (File.Exists(users.corp_corpdata_xml)) { File.Delete(users.corp_corpdata_xml); } string remote_corp_API = EVE_API_RemoteXML + "/corp/CorporationSheet.xml.aspx?keyID=" + users.corp_KeyID + "&vCode=" + users.corp_vCode; string remote_corp_members = EVE_API_RemoteXML + "/corp/MemberTracking.xml.aspx?keyID=" + users.corp_KeyID + "&vCode=" + users.corp_vCode + "&extended=1"; XElement xRemoteCorpAPI; XElement xRemoteCorpMembers; CorpData temp_corp_vals = new CorpData(); xRemoteCorpAPI = XElement.Load(remote_corp_API); xRemoteCorpMembers = XElement.Load(remote_corp_members); XDocument WriteCorpData = new XDocument(); XElement corproot = new XElement("corpdata"); corproot.Add(new XElement("corpinfo")); corproot.Add(new XElement("members")); WriteCorpData.Add(corproot); WriteCorpData.Save(users.corp_corpdata_xml); List<CorpData.Member> temp_members = new List<CorpData.Member>(); foreach (XElement result in xRemoteCorpAPI.Elements("result")) { temp_corp_vals.corporationID = Int64.Parse(result.Element("corporationID").Value); temp_corp_vals.corporationName = result.Element("corporationName").Value; temp_corp_vals.corporationTicker = result.Element("ticker").Value; temp_corp_vals.ceoName = result.Element("ceoName").Value; temp_corp_vals.allianceName = result.Element("allianceName").Value; temp_corp_vals.memberCount = int.Parse(result.Element("memberCount").Value); temp_corp_vals.memberLimit = int.Parse(result.Element("memberLimit").Value); } temp_corp_vals.cachedUntil = Convert.ToDateTime(xRemoteCorpAPI.Element("cachedUntil").Value); foreach (XElement result in xRemoteCorpMembers.Elements("result")) { foreach (XElement rowset in result.Elements("rowset")) { foreach (XElement row in rowset.Elements("row")) { temp_members.Add(new CorpData.Member( Int64.Parse(row.Attribute("characterID").Value), row.Attribute("name").Value, Convert.ToDateTime(row.Attribute("startDateTime").Value), Convert.ToDateTime(row.Attribute("logoffDateTime").Value), row.Attribute("location").Value, row.Attribute("shipType").Value)); } } } temp_corp_vals.memberList = temp_members; WriteCorpData.Root.Element("corpinfo").Add( new XElement("corporationID", temp_corp_vals.corporationID), new XElement("corporationName", temp_corp_vals.corporationName), new XElement("corporationTicker", temp_corp_vals.corporationTicker), new XElement("memberCount", temp_corp_vals.memberCount), new XElement("memberLimit", temp_corp_vals.memberLimit), new XElement("ceoName", temp_corp_vals.ceoName), new XElement("cachedUntil", temp_corp_vals.cachedUntil) ); foreach (CorpData.Member members in temp_corp_vals.memberList) { WriteCorpData.Root.Element("members").Add( new XElement("member", new XAttribute("characterID", members.characterID), new XAttribute("name", members.name), new XAttribute("startDateTime", members.startDateTime), new XAttribute("logoffDateTime", members.logoffDateTime), new XAttribute("location", members.location), new XAttribute("shipType", members.shipType) )); } listMainView.Items.Add("Corporation Updated: " + temp_corp_vals.corporationName); WriteCorpData.Save(users.corp_corpdata_xml); } }
private void LoadCorpData(string file) { XElement xCorpData; CorpData corp_object = new CorpData(); xCorpData = XElement.Load(file); List<CorpData.Member> temp_list = new List<CorpData.Member>(); foreach (XElement csettings in xCorpData.Elements("corpinfo")) { corp_object.corporationID = Int64.Parse(csettings.Element("corporationID").Value); corp_object.corporationName = csettings.Element("corporationName").Value; corp_object.corporationTicker = csettings.Element("corporationTicker").Value; corp_object.memberCount = int.Parse(csettings.Element("memberCount").Value); corp_object.memberLimit = int.Parse(csettings.Element("memberLimit").Value); corp_object.ceoName = csettings.Element("ceoName").Value; corp_object.cachedUntil = Convert.ToDateTime(csettings.Element("cachedUntil").Value); } foreach (XElement members in xCorpData.Elements("members")) { foreach (XElement member in members.Elements("member")) { temp_list.Add(new CorpData.Member(int.Parse(member.Attribute("characterID").Value), member.Attribute("name").Value, Convert.ToDateTime(member.Attribute("startDateTime").Value), Convert.ToDateTime(member.Attribute("logoffDateTime").Value), member.Attribute("location").Value, member.Attribute("shipType").Value)); } } corp_object.memberList = temp_list; CorporationDataList.Add(corp_object); }