public void Save(ECG_Data data)
{
if (data is QT_Disp_Data)
{
QT_Disp_Data basicData = data as QT_Disp_Data;
ECG_Worker ew = new ECG_Worker();
XmlDocument file = new XmlDocument();
string fileName = analysisName + "_Data.xml";
file.Load(System.IO.Path.Combine(directory, fileName));
XmlNode root = file.SelectSingleNode("EKG");
XmlElement module = file.CreateElement(string.Empty, "module", string.Empty);
string moduleName = this.GetType().Name;
moduleName = moduleName.Replace("_Data_Worker", "");
XmlNodeList existingModules = file.SelectNodes("EKG/module");
foreach (XmlNode existingModule in existingModules)
{
if (existingModule.Attributes["name"].Value == moduleName)
{
root.RemoveChild(existingModule);
}
}
module.SetAttribute("name", moduleName);
root.AppendChild(module);
object[] Properties = {basicData.QT_disp_local, basicData.QT_mean, basicData.QT_std};
string[] Names = { "QT_disp_local", "QT_mean", "QT_std" };
int licznik = 0;
foreach (var property in Properties)
{
List<Tuple<String, double>> list = (List<Tuple<String, double>>)property;
foreach (var tuple in list)
{
XmlElement moduleNode = file.CreateElement(string.Empty, Names[licznik], string.Empty);
module.AppendChild(moduleNode);
XmlElement lead = file.CreateElement(string.Empty, "lead", string.Empty);
XmlText leadValue = file.CreateTextNode(tuple.Item1);
lead.AppendChild(leadValue);
moduleNode.AppendChild(lead);
XmlElement samples = file.CreateElement(string.Empty, "samples", string.Empty);
XmlText samplesValue = file.CreateTextNode(tuple.Item2.ToString());
samples.AppendChild(samplesValue);
moduleNode.AppendChild(samples);
}
licznik++;
}
XmlElement QT_disp_global = file.CreateElement(string.Empty, "QT_disp_global", string.Empty);
XmlText value = file.CreateTextNode(basicData.QT_disp_global.ToString());
QT_disp_global.AppendChild(value);
module.AppendChild(QT_disp_global);
ew.InternalXMLFile = file;
file.Save(System.IO.Path.Combine(directory, fileName));
}
}