midrange.com code scratchpad
Name:
XML Export/Import
Scriptlanguage:
C#
Tabwidth:
2
Date:
01/13/2010 01:51:22 pm
IP:
Logged
Description:
The user was to lazy to give a description
Code:
  1.     internal void SaveToXml(System.Xml.XmlWriter TargetXml)
  2.     {
  3.  
  4.       TargetXml.WriteStartElement("Stage");
  5.       TargetXml.WriteAttributeString("StageGuid", this.m_StageGUID.ToString());
  6.       TargetXml.WriteAttributeString("Name", this.Name);
  7.       TargetXml.WriteAttributeString("Sequence", this.Sequence.ToString());
  8.       TargetXml.WriteAttributeString("NextStage", this.m_NextStageGUID.ToString());
  9.       TargetXml.WriteAttributeString("Timeout", this.TimeOutMinutes.ToString());
  10.       TargetXml.WriteAttributeString("TimeoutStage", this.m_TimeOutStageGUID.ToString());
  11.       TargetXml.WriteAttributeString("ApprovalsRequired", this.ApprovalsRequired.ToString());
  12.       TargetXml.WriteAttributeString("AllowUpdateOfEarlierStage", this.AllowUpdateOfEarlierStage.ToString());
  13.       TargetXml.WriteAttributeString("AllowUpdateByLaterStage", this.AllowUpdateByLaterStage.ToString());
  14.  
  15.       //Write pages
  16.       TargetXml.WriteStartElement("Pages");
  17.       foreach (xFormPage xfp in this.Pages)
  18.         xfp.SaveToXml(TargetXml);
  19.       TargetXml.WriteEndElement();//Pages
  20.       //Write page Groups
  21.       TargetXml.WriteStartElement("PageGroups");
  22.       foreach (xFormPageGroup grp in this.Groups)
  23.         grp.SaveToXml(TargetXml);
  24.       TargetXml.WriteEndElement();//PageGroups
  25.       //Conditions
  26.       TargetXml.WriteStartElement("Conditions");
  27.       foreach (xFormCondition condition in this.Conditions)
  28.         condition.SaveToXml(TargetXml);
  29.       TargetXml.WriteEndElement(); //Conditions
  30.       //Write Actions
  31.       TargetXml.WriteStartElement("Actions");
  32.       foreach (xFormStageAction a in this.Actions)
  33.         a.SaveToXml(TargetXml);
  34.       TargetXml.WriteEndElement();//Actions
  35.       //Roles
  36.       TargetXml.WriteStartElement("Roles");
  37.       foreach (Role r in this.Roles)
  38.         r.SaveToXml(TargetXml);
  39.       TargetXml.WriteEndElement();//Roles
  40.       
  41.       TargetXml.WriteEndElement();//Stage
  42.     }
  43.  
  44.  
  45.     public static void ImportFromXmlElement(XmlElement StageElement, xFormVersion FormVersion, GuidTranslator Translator)
  46.     {
  47.       if (StageElement.Name != "Stage")
  48.         throw new XmlException(String.Format("Expected a 'Stage' element, got a '{0}' element", StageElement.Name));
  49.  
  50.       xFormStage newStage = new xFormStage(FormVersion);
  51.  
  52.       newStage.m_StageGUID = Translator.Translate(StageElement.Attributes["StageGuid"].Value);
  53.       newStage.Name = StageElement.Attributes["Name"].Value;
  54.       newStage.Sequence = int.Parse(StageElement.Attributes["Sequence"].Value);
  55.       newStage.m_NextStageGUID = Translator.Translate(StageElement.Attributes["NextStage"].Value);
  56.       newStage.TimeOutMinutes = int.Parse(StageElement.Attributes["Timeout"].Value);
  57.       newStage.m_TimeOutStageGUID = Translator.Translate(StageElement.Attributes["TimeoutStage"].Value);
  58.       newStage.ApprovalsRequired = (Byte)int.Parse(StageElement.Attributes["ApprovalsRequired"].Value);
  59.       XmlAttribute allowEarlierAttr = StageElement.Attributes["AllowUpdateOfEarlierStage"];
  60.       newStage.AllowUpdateOfEarlierStage =
  61.         allowEarlierAttr == null ? false : bool.Parse(allowEarlierAttr.Value);
  62.       XmlAttribute allowLaterAttr = StageElement.Attributes["AllowUpdateByLaterStage"];
  63.       newStage.AllowUpdateByLaterStage = allowLaterAttr == null ? false : bool.Parse(allowLaterAttr.Value);
  64.       newStage.Save();
  65.  
  66.       foreach (XmlElement pageElement in StageElement["Pages"].ChildNodes)
  67.         xFormPage.ImportFromXmlElement(pageElement, newStage.StageGuid, Translator);
  68.  
  69.       foreach (XmlElement pageGroupElement in StageElement["PageGroups"].ChildNodes)
  70.         xFormPageGroup.ImportFromXmlElement(pageGroupElement, newStage.StageGuid, Translator);
  71.  
  72.       foreach (XmlElement actionElement in StageElement["Actions"].ChildNodes)
  73.         xFormStageAction.ImportFromXmlElement(actionElement, newStage, Translator);
  74.  
  75.       foreach (XmlElement conditionElement in StageElement["Conditions"].ChildNodes)
  76.         xFormCondition.ImportFromXmlElement(conditionElement, newStage.StageGuid, Translator);
  77.  
  78.       foreach (XmlElement roleElement in StageElement["Roles"].ChildNodes)
  79.         Role.ImportFromXmlElement(roleElement, newStage, Translator);
  80.  
  81.     }
© 2004-2019 by midrange.com generated in 0.015s valid xhtml & css