using System.Collections.Generic; namespace MainShell.DeviceMaintance.Model { public enum CylinderControlType { SingleOutput = 0, DualOutput = 1, MultiOutput = 2 } public enum CylinderConditionType { PointOn = 0, PointOff = 1 } public class CylinderActionConditionDefinition { public CylinderConditionType ConditionType { get; set; } public string PointReference { get; set; } public string Message { get; set; } public bool ExpectedState => ConditionType == CylinderConditionType.PointOn; } public class CylinderDefinition { public string Name { get; set; } public string Description { get; set; } public string Module { get; set; } public CylinderControlType ControlType { get; set; } public List ExtendOutputPoints { get; set; } = new List(); public List RetractOutputPoints { get; set; } = new List(); public List ExtendedFeedbackPoints { get; set; } = new List(); public List RetractedFeedbackPoints { get; set; } = new List(); public List ExtendConditions { get; set; } = new List(); public List RetractConditions { get; set; } = new List(); public bool HasRetractOutputs => RetractOutputPoints != null && RetractOutputPoints.Count > 0; } public class CylinderExecutionResult { public bool Success { get; set; } public string FailureReason { get; set; } public IReadOnlyList FailurePointReferences { get; set; } = new List(); } }