Code:
- internal void SaveToXml(System.Xml.XmlWriter TargetXml)
- {
-
- TargetXml.WriteStartElement("Stage");
- TargetXml.WriteAttributeString("StageGuid", this.m_StageGUID.ToString());
- TargetXml.WriteAttributeString("Name", this.Name);
- TargetXml.WriteAttributeString("Sequence", this.Sequence.ToString());
- TargetXml.WriteAttributeString("NextStage", this.m_NextStageGUID.ToString());
- TargetXml.WriteAttributeString("Timeout", this.TimeOutMinutes.ToString());
- TargetXml.WriteAttributeString("TimeoutStage", this.m_TimeOutStageGUID.ToString());
- TargetXml.WriteAttributeString("ApprovalsRequired", this.ApprovalsRequired.ToString());
- TargetXml.WriteAttributeString("AllowUpdateOfEarlierStage", this.AllowUpdateOfEarlierStage.ToString());
- TargetXml.WriteAttributeString("AllowUpdateByLaterStage", this.AllowUpdateByLaterStage.ToString());
-
-
- TargetXml.WriteStartElement("Pages");
- foreach (xFormPage xfp in this.Pages)
- xfp.SaveToXml(TargetXml);
- TargetXml.WriteEndElement();
-
-
- TargetXml.WriteStartElement("PageGroups");
- foreach (xFormPageGroup grp in this.Groups)
- grp.SaveToXml(TargetXml);
- TargetXml.WriteEndElement();
-
-
- TargetXml.WriteStartElement("Conditions");
- foreach (xFormCondition condition in this.Conditions)
- condition.SaveToXml(TargetXml);
- TargetXml.WriteEndElement();
-
-
- TargetXml.WriteStartElement("Actions");
- foreach (xFormStageAction a in this.Actions)
- a.SaveToXml(TargetXml);
- TargetXml.WriteEndElement();
-
-
- TargetXml.WriteStartElement("Roles");
- foreach (Role r in this.Roles)
- r.SaveToXml(TargetXml);
- TargetXml.WriteEndElement();
-
-
- TargetXml.WriteEndElement();
- }
-
-
- public static void ImportFromXmlElement(XmlElement StageElement, xFormVersion FormVersion, GuidTranslator Translator)
- {
- if (StageElement.Name != "Stage")
- throw new XmlException(String.Format("Expected a 'Stage' element, got a '{0}' element", StageElement.Name));
-
- xFormStage newStage = new xFormStage(FormVersion);
-
- newStage.m_StageGUID = Translator.Translate(StageElement.Attributes["StageGuid"].Value);
- newStage.Name = StageElement.Attributes["Name"].Value;
- newStage.Sequence = int.Parse(StageElement.Attributes["Sequence"].Value);
- newStage.m_NextStageGUID = Translator.Translate(StageElement.Attributes["NextStage"].Value);
- newStage.TimeOutMinutes = int.Parse(StageElement.Attributes["Timeout"].Value);
- newStage.m_TimeOutStageGUID = Translator.Translate(StageElement.Attributes["TimeoutStage"].Value);
- newStage.ApprovalsRequired = (Byte)int.Parse(StageElement.Attributes["ApprovalsRequired"].Value);
- XmlAttribute allowEarlierAttr = StageElement.Attributes["AllowUpdateOfEarlierStage"];
- newStage.AllowUpdateOfEarlierStage =
- allowEarlierAttr == null ? false : bool.Parse(allowEarlierAttr.Value);
- XmlAttribute allowLaterAttr = StageElement.Attributes["AllowUpdateByLaterStage"];
- newStage.AllowUpdateByLaterStage = allowLaterAttr == null ? false : bool.Parse(allowLaterAttr.Value);
- newStage.Save();
-
- foreach (XmlElement pageElement in StageElement["Pages"].ChildNodes)
- xFormPage.ImportFromXmlElement(pageElement, newStage.StageGuid, Translator);
-
- foreach (XmlElement pageGroupElement in StageElement["PageGroups"].ChildNodes)
- xFormPageGroup.ImportFromXmlElement(pageGroupElement, newStage.StageGuid, Translator);
-
- foreach (XmlElement actionElement in StageElement["Actions"].ChildNodes)
- xFormStageAction.ImportFromXmlElement(actionElement, newStage, Translator);
-
- foreach (XmlElement conditionElement in StageElement["Conditions"].ChildNodes)
- xFormCondition.ImportFromXmlElement(conditionElement, newStage.StageGuid, Translator);
-
- foreach (XmlElement roleElement in StageElement["Roles"].ChildNodes)
- Role.ImportFromXmlElement(roleElement, newStage, Translator);
-
- }
|
|