public static Character LoadCharacter(this Armory armory, string realmName, string characterName, CharacterDetail loadDetail) { XmlNode characterDetails = LoadDetailNode(armory, CharacterDetail.Basic, realmName, characterName); if (characterDetails != null) { XmlNode characterNode = characterDetails.SelectSingleNode("character"); // <character battleGroup="Vindication" charUrl="r=Sporeggar&n=Zoing" class="Rogue" classId="4" faction="Horde" factionId="1" gender="Female" genderId="1" guildName="The Dominion" guildUrl="r=Sporeggar&n=The+Dominion&p=1" lastModified="31 August 2008" level="70" name="Zoing" prefix="" race="Blood Elf" raceId="10" realm="Sporeggar" suffix=""> G guild = new G( GuildDetail.Basic, armory.Region, (Faction)Enum.Parse(typeof(Faction), characterNode.Attributes["factionId"].Value), characterNode.Attributes["guildName"].Value, characterNode.Attributes["realm"].Value, characterNode.Attributes["battleGroup"].Value, characterNode.Attributes["guildUrl"].Value); Character character = new Character( armory, CharacterDetail.Basic, armory.Region, (Faction)Enum.Parse(typeof(Faction), characterNode.Attributes["factionId"].Value), characterNode.Attributes["name"].Value, characterNode.Attributes["realm"].Value, characterNode.Attributes["battleGroup"].Value, (Gender)Enum.Parse(typeof(Gender), characterNode.Attributes["genderId"].Value), (Race)Enum.Parse(typeof(Race), characterNode.Attributes["raceId"].Value), (Class)Enum.Parse(typeof(Class), characterNode.Attributes["classId"].Value), Convert.ToInt32(characterNode.Attributes["level"].Value), characterNode.Attributes["charUrl"].Value, guild); if (loadDetail.ContainsDetail(CharacterDetail.CharacterSheet)) { character.LoadDetail(CharacterDetail.CharacterSheet); } if (loadDetail.ContainsDetail(CharacterDetail.Reputation)) { character.LoadDetail(CharacterDetail.Reputation); } if (loadDetail.ContainsDetail(CharacterDetail.Skills)) { character.LoadDetail(CharacterDetail.Skills); } if (loadDetail.ContainsDetail(CharacterDetail.Talents)) { character.LoadDetail(CharacterDetail.Talents); } return character; } else { return null; } }