public WorkflowData() { workflowId = -1; strWorkflowName = string.Empty; isForced = false; wfSteps = null; activeStepId = -1; wfSteps = new WorkflowStepArray(); }
/// <summary> /// Sets the workflow steps' content from the XML to the data structure. /// </summary> /// <param name="strWorkflowStepsXML">steps' content in the form of XML</param> /// <returns>true if successful and false if failed.</returns> public bool SetWorkflowStepsData(string strWorkflowStepsXML) { if (strWorkflowStepsXML == string.Empty) { return(false); } try { XmlDocument doc = new XmlDocument(); doc.LoadXml(strWorkflowStepsXML); XmlNode root = doc.DocumentElement; XmlNode WorkflowNode = root.SelectSingleNode(XML_WORKFLOW); //verify if the workflow ids are correct. //there should not be a mismatch, but still. int nWorkflowIDFromXML = Convert.ToInt32(WorkflowNode.Attributes[XML_WORKFLOW_ID].InnerText, 10); if (nWorkflowIDFromXML != workflowId) { return(false); } XmlNodeList Steps = WorkflowNode.SelectNodes(XML_STEP); if (Steps.Count == 0) //no steps for this workflow. { Logging.Warn(this.ToString(), localizeWF.WORKFLOW_DATA_STRUCTURES_WORKFLOW_DATA_ERR_SET_WORKFLOW_STEPS_DATA); return(false); } wfSteps = new WorkflowStepArray(); foreach (XmlNode StepNode in Steps) { //form the workflowstep structure WorkflowStep Step = new WorkflowStep(); Step.SetStepData(StepNode.OuterXml); //add the structure to the list. wfSteps.Add(Step); } } catch (Exception exp) { Logging.Error(this.ToString(), localizeWF.WORKFLOW_DATA_STRUCTURES_WORKFLOW_DATA_ERR_SET_WORKFLOW_STEPS_DATA, exp); throw exp; } return(true); }