internal AcesHighPilotStats GetPilotStats(string pilotId, TourNode tour, ProxySettingsDTO proxySettings, string statsURL) { if (tour == null) throw new ArgumentException("tour of type TourNode must be set!"); if (pilotId == null) throw new ArgumentException("pilotId of type string must be set!"); if (proxySettings == null) throw new ArgumentException("proxySettings of type ProxySettingsDTO must be set!"); string postData = string.Format("playername={1}&selectTour={0}&action=1&Submit=Get+Stats", tour.TourSelectArg, pilotId); HttpToXMLLoader loader = new HttpToXMLLoader(proxySettings); XmlDocument statsPageDoc = loader.LoadHtmlPageAsXMLByPost(statsURL, postData); XmlTextReader xsltDocReader = new XmlTextReader("PilotStatsTransform.xslt"); XSLT2Transformer transformer = new XSLT2Transformer(statsPageDoc, xsltDocReader); XmlDocument result = transformer.DoTransform(); // Deserialise the XmlDocument to a in-memory object. AcesHighPilotStats stats = (AcesHighPilotStats)new CommonUtils().DeserialiseFromXmlDoc(typeof(AcesHighPilotStats), result); // And fill in the rest of the details ourselves. stats.GameId = CommonUtils.ToUpperFirstChar(pilotId); stats.TourId = tour.TourId.ToString(); stats.TourType = tour.TourType.ToString(); stats.TourDetails = CommonUtils.BuildTourDetailsTag(tour); return stats; }
private void BuildTourMap(ProxySettingsDTO proxySettings, string scoresURL) { HttpToXMLLoader loader = new HttpToXMLLoader(proxySettings); XmlDocument xDoc = loader.LoadHtmlPageAsXMLByGet(scoresURL); XSLT2Transformer xformer = new XSLT2Transformer(xDoc, new XmlTextReader(@"TourListTransform.xslt")); XmlDocument transformedTourListDoc = xformer.DoTransform(); foreach (XmlNode xNode in transformedTourListDoc.SelectNodes("/AHTourList/AHTourNode")) { TourNode node = new TourNode(xNode); definitions.AddTourToMap(new TourNode(xNode)); } if (!definitions.IsTourDefinitionsComplete()) throw new ApplicationException("Failed to build Tour Map!"); }