Files
DDUtility/DDUtilityApp/WORKFLOW/DATA/Flowchart.cs
2025-02-03 11:02:48 +09:00

62 lines
1.8 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
using JWH;
namespace DDUtilityApp.WORKFLOW.DATA
{
public class Flowchart
{
public List<Parameter> Variables { get; set; } = new List<Parameter>();
public ViewState ViewState { get; set; }
public FlowBase StartNode { get; set; }
public string DisplayName { get; set; }
public Flowchart()
{
}
public Flowchart(XmlNode root)
{
//this.DisplayName = root.Attributes[$"DisplayName"].Value;
foreach(XmlAttribute attribute in root.Attributes)
if (string.Compare(attribute.Name, "DisplayName", true) == 0) this.DisplayName = attribute.Value;
// Variables
XmlNode nodeVariables = root.GetSingleNodeByName($"Flowchart.Variables");
if (nodeVariables != null)
{
Parameter[] variables = this.GetVariables(nodeVariables);
if (variables.Length > 0) this.Variables.AddRange(variables);
}
// ViewState
XmlNode nodeViewState = root.GetSingleNodeByName($"sap:WorkflowViewStateService.ViewState");
if (nodeViewState != null) this.ViewState = new ViewState(nodeViewState);
}
private Parameter[] GetVariables(XmlNode node)
{
List<Parameter> lstVariables = new List<Parameter>();
foreach (XmlNode nodeVariable in node.ChildNodes)
{
if (string.Compare(nodeVariable.Name, "Variable", true) != 0) continue;
Parameter variable = new Parameter(nodeVariable);
if (variable != null) lstVariables.Add(variable);
}
return lstVariables.ToArray();
}
}
}