protected override void ParseChildFiles() { try { foreach (var award in XmlChildFiles) { using (XmlReader reader = XmlReader.Create(Path.Combine(XmlMainFolderName, XmlBaseFolder, $"{award}{DefaultFileExtension}"), GetXmlReaderSettings())) { reader.MoveToContent(); if (reader.Name != award) { continue; } // get the real award name // example MasteroftheCurse -> (real) Master of the Curse string realAwardName = reader["name"]; if (string.IsNullOrEmpty(realAwardName)) { realAwardName = award; // default to award name } while (reader.Read()) { if (reader.IsStartElement()) { string awardType = reader.Name; // example: MostDamageTaken while (reader.Read() && reader.Name != awardType) { if (reader.NodeType == XmlNodeType.Element) { string elementName = reader.Name; if (reader.Read()) { if (elementName == "Description") { MVPAwardDescriptionByAwardType.Add(awardType, reader.Value); } else { var awardTuple = new Tuple <string, string>(realAwardName, SetImageStreamString(IconFolderName, reader.Value)); if (elementName == "MVPScreen") { MVPScreenAwardByAwardType.Add(awardType, awardTuple); } else if (elementName == "ScoreScreen") { MVPScoreScreenAwardByAwardType.Add(awardType, awardTuple); } } } } } } } } } } catch (Exception ex) { throw new ParseXmlException($"Error on xml parsing of {XmlParentFile}", ex); } }
protected override void ParseChildFiles() { try { foreach (var award in XmlChildFiles) { using (XmlReader reader = XmlReader.Create($@"Xml\{XmlBaseFolder}\{award}.xml")) { reader.MoveToContent(); if (reader.Name != award) { continue; } // get the real award name // example MasteroftheCurse -> (real) Master of the Curse string realAwardName = reader["name"]; if (string.IsNullOrEmpty(realAwardName)) { realAwardName = award; // default to award name } while (reader.Read()) { if (reader.IsStartElement()) { string awardType = reader.Name; // example: MostDamageTaken while (reader.Read() && reader.Name != awardType) { if (reader.NodeType == XmlNodeType.Element) { string elementName = reader.Name; if (reader.Read()) { if (elementName == "Description") { MVPAwardDescriptionByAwardType.Add(awardType, reader.Value); } else { var awardTuple = new Tuple <string, Uri>(realAwardName, SetMVPAwardUri(reader.Value)); if (elementName == "MVPScreen") { MVPScreenAwardByAwardType.Add(awardType, awardTuple); } else if (elementName == "ScoreScreen") { MVPScoreScreenAwardByAwardType.Add(awardType, awardTuple); } } } } } } } } } } catch (Exception ex) { throw new ParseXmlException("Error on parsing of xml files", ex); } }