public void Save(ECG_Data data)
{
if (data is Basic_Data)
{
Basic_Data basicData = data as Basic_Data;
ECG_Worker ew = new ECG_Worker();
ew.CreateFile();
XmlDocument file = ew.InternalXMLFile;
XmlNode root = file.SelectSingleNode("EKG");
XmlElement module = file.CreateElement(string.Empty, "module", string.Empty);
string moduleName = this.GetType().Name;
moduleName = moduleName.Replace("_Data_Worker", "");
module.SetAttribute("name", moduleName);
root.AppendChild(module);
XmlElement frequency = file.CreateElement(string.Empty, "frequency", string.Empty);
XmlText frequencyValue = file.CreateTextNode(basicData.Frequency.ToString());
frequency.AppendChild(frequencyValue);
module.AppendChild(frequency);
XmlElement sampleAmount = file.CreateElement(string.Empty, "sampleAmount", string.Empty);
XmlText sampleAmountValue = file.CreateTextNode(basicData.SampleAmount.ToString());
sampleAmount.AppendChild(sampleAmountValue);
module.AppendChild(sampleAmount);
List<Tuple<string, Vector<double>>> signals = basicData.Signals;
foreach (var tuple in signals)
{
XmlElement signal = file.CreateElement(string.Empty, "signal", string.Empty);
module.AppendChild(signal);
XmlElement lead = file.CreateElement(string.Empty, "lead", string.Empty);
XmlText leadValue = file.CreateTextNode(tuple.Item1.ToString());
lead.AppendChild(leadValue);
signal.AppendChild(lead);
XmlElement samples = file.CreateElement(string.Empty, "samples", string.Empty);
string samplesText = null;
foreach (var value in tuple.Item2)
{
samplesText += value.ToString() + " ";
}
XmlText samplesValue = file.CreateTextNode(samplesText);
samples.AppendChild(samplesValue);
signal.AppendChild(samples);
}
ew.InternalXMLFile = file;
string fileName = analysisName + "_Data.xml";
//Console.WriteLine(System.IO.Path.Combine(directory, fileName));
file.Save(System.IO.Path.Combine(directory, fileName));
}
}