using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using AIStudio.Wpf.DiagramDesigner; using AIStudio.Wpf.DiagramDesigner.Serializable; using AIStudio.Wpf.DiagramDesigner.Serializable.ViewModels; using AIStudio.Wpf.Flowchart.ViewModels; namespace AIStudio.Wpf.Flowchart.Models { /// /// /// /// public class FlowchartNode : DiagramNode { /// /// Gets or sets the kind. /// /// /// The kind. /// public NodeKinds Kind { get; set; } /// /// Gets or sets the user ids. /// /// /// The user ids. /// public IEnumerable UserIds { get; set; } /// /// Gets or sets the role ids. /// /// /// The role ids. /// public IEnumerable RoleIds { get; set; } /// /// Gets or sets the type of the act. /// /// /// The type of the act. /// public string ActType { get; set; } /// /// Gets or sets the color. /// /// /// The color. /// public string StatusColor { get; set; } public override DiagramItemViewModel ToNodel(IDiagramViewModel diagramViewModel) { FlowNode flowNode = null; switch (Kind) { case NodeKinds.Start: { flowNode = new StartFlowNode(diagramViewModel); break; } case NodeKinds.End: { flowNode = new EndFlowNode(diagramViewModel); break; } case NodeKinds.Decide: { flowNode = new DecideFlowNode(diagramViewModel); break; } case NodeKinds.COBegin: { flowNode = new COBeginFlowNode(diagramViewModel); break; } case NodeKinds.COEnd: { flowNode = new COEndFlowNode(diagramViewModel); break; } case NodeKinds.Middle: { var flowchartNodelModel = new MiddleFlowNode(diagramViewModel); flowNode = flowchartNodelModel; flowchartNodelModel.UserIds = UserIds?.ToList(); flowchartNodelModel.RoleIds = RoleIds?.ToList(); flowchartNodelModel.ActType = ActType; break; } default: { var flowNodelModel = new FlowNode(diagramViewModel, NodeKinds.Normal); flowNode = flowNodelModel; break; } } flowNode.StatusColor = StatusColor; flowNode.Kind = Kind; return flowNode; } } }