internal void Serialize(Stream stream, bool serializaResults)
{
//String xmlfile = filePath.Substring(0, filePath.Length - 3) + "tmp";
//tmpxml = new XmlTextWriter(stream, null);
tmpxml = new XmlStreamWriter(stream);
Canguro.Model.UnitSystem.UnitSystem uSystem = model.UnitSystem;
model.UnitSystem = Canguro.Model.UnitSystem.InternationalSystem.Instance;
LoadCase loadCase = model.ActiveLoadCase;
try
{
//tmpxml.Formatting = Formatting.Indented;
//tmpxml.Indentation = 4;
//tmpxml.Namespaces = false;
tmpxml.WriteStartDocument();
tmpxml.WriteComment("XML file generated by CanguroTeam");
tmpxml.WriteComment(DateTime.Now.ToString());
// node added for validation
tmpxml.WriteStartElement("XmlExportedFile");
// writing fix values for nodes
writeFixedNode(tmpxml);
//writing nodes for Joints
writeNode(tmpxml, model.JointList);
//writing xml nodes for Materials
writeNode(tmpxml);
//writing nodes for Lines
writeNode(tmpxml, model.LineList);
//writing xml nodes for Abstract cases
writeNode(tmpxml, model);
//writing xml nodes for Load cases
writeNode(tmpxml, model.LoadCases);
//writing xml nodes for concrete material
writeConcreteNode(tmpxml, model.ConcreteDesignOptions);
//writing xml nodes for steel material
writeSteelNode(tmpxml, model.SteelDesignOptions);
//writing xml nodes for frame design
writeFrameDesignNode(tmpxml, model);
//writing nodes for spectrum analysis
writeNode(tmpxml, model.ResponseSpectra, model.AbstractCases);
//writing nodes for constraints
writeConstraints(tmpxml, model);
if (model.HasResults && serializaResults)
new ResultsSerializer(model).Serialize(tmpxml);
/******************* Treu Structure specific ***********************/
writeLayers(tmpxml, model.Layers);
writeLayerAssignments(tmpxml, model);
model.UnitSystem = uSystem;
writeCanguroVariables(tmpxml);
tmpxml.WriteEndElement();
tmpxml.Flush();
}
catch (Exception e)
{
string message = Culture.Get("XmlError");
#if DEBUG
message += "## " + e.Message + " ##";
#endif
System.Windows.Forms.MessageBox.Show(message, Culture.Get("error"),
System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
throw e;
}
finally
{
//tmpxml.Close();
model.UnitSystem = uSystem;
model.ActiveLoadCase = loadCase;
}
}