# HG changeset patch # User IBBoard # Date 1299704374 0 # Node ID 8a64b36d36b8f64255d8c423416b65f9ee87d1c3 # Parent 3e9b0603afad9452d36ce09f69a19580eb4de34b Re #324: Add saving of Race and System data to files * As per GameSystem changes for using existing code: * Make XML creation method public * Make sure we're encoding in UTF-8 * Implement saving method for Army diff -r 3e9b0603afad -r 8a64b36d36b8 api/Savers/Xml/WarFoundryXmlArmySaver.cs --- a/api/Savers/Xml/WarFoundryXmlArmySaver.cs Wed Mar 09 20:32:08 2011 +0000 +++ b/api/Savers/Xml/WarFoundryXmlArmySaver.cs Wed Mar 09 20:59:34 2011 +0000 @@ -50,7 +50,7 @@ return success; } - private string CreateXmlString(WarFoundryObject toSave) + public string CreateXmlString(WarFoundryObject toSave) { string xmlString = ""; @@ -65,7 +65,7 @@ private string CreateArmyXmlString(Army toSave) { XmlDocument doc = new XmlDocument(); - XmlDeclaration declaration = doc.CreateXmlDeclaration("1.0", null, null); + XmlDeclaration declaration = doc.CreateXmlDeclaration("1.0", "UTF-8", null); doc.AppendChild(declaration); XmlSchema schema = new XmlSchema(); schema.Namespaces.Add("", "http://ibboard.co.uk/warfoundry/army"); diff -r 3e9b0603afad -r 8a64b36d36b8 api/Savers/Xml/WarFoundryXmlFileSaver.cs --- a/api/Savers/Xml/WarFoundryXmlFileSaver.cs Wed Mar 09 20:32:08 2011 +0000 +++ b/api/Savers/Xml/WarFoundryXmlFileSaver.cs Wed Mar 09 20:59:34 2011 +0000 @@ -38,7 +38,7 @@ zipStream.Write(bytes, 0, bytes.Length); } - public byte[] GetObjectBytes (WarFoundryLoadedObject obj) + public byte[] GetObjectBytes(WarFoundryLoadedObject obj) { string xmlString = ""; @@ -46,21 +46,30 @@ { xmlString = GetGameSystemString((GameSystem)obj); } + else if (obj is Army) + { + xmlString = GetArmyString((Army)obj); + } return StringManipulation.StringToBytes(xmlString); } - - public string GetGameSystemString (GameSystem obj) + + public string GetGameSystemString(GameSystem obj) { return new WarFoundryXmlGameSystemSaver().CreateXmlString(obj); - } + } + public string GetArmyString(Army obj) + { + return new WarFoundryXmlArmySaver().CreateXmlString(obj); + } + private string GetZipEntryName(WarFoundryLoadedObject obj) { return obj.ID + GetFileExtension(obj); } - public string GetFileExtension (WarFoundryLoadedObject obj) + public string GetFileExtension(WarFoundryLoadedObject obj) { string ext = "";