using System; using System.Collections.Generic; using System.Runtime.Serialization; using MECF.Framework.Common.Equipment; using MECF.Framework.Common.Schedulers; namespace MECF.Framework.Common.Jobs { [Serializable] [DataContract] public class ProcessJobInfo { [DataMember] public SequenceInfo Sequence { get; set; } [DataMember] public EnumProcessJobState State { get; private set; } [DataMember] public string Name { get; set; } [DataMember] public string LotName { get; set; } [DataMember] public string ControlJobName { get; set; } [DataMember] public Guid InnerId { get; set; } [DataMember] public List> SlotWafers { get; set; } [DataMember] public DateTime BeginTime { get; set; } [DataMember] public DateTime EndTime { get; set; } public ProcessJobInfo() { State = EnumProcessJobState.Created; InnerId = Guid.NewGuid(); } public void SetState(EnumProcessJobState state) { State = state; } } public static class EnumProcessJobState_Extension { public static bool IsCreated(this EnumProcessJobState state) => state == EnumProcessJobState.Created; public static bool IsQueued(this EnumProcessJobState state) => state == EnumProcessJobState.Queued; public static bool IsCanceled(this EnumProcessJobState state) => state == EnumProcessJobState.Canceled; public static bool IsSetUp(this EnumProcessJobState state) => state == EnumProcessJobState.SetUp; public static bool IsWaitingForStart(this EnumProcessJobState state) => state == EnumProcessJobState.WaitingForStart; public static bool IsProcessing(this EnumProcessJobState state) => state == EnumProcessJobState.Processing; public static bool IsProcessingComplete(this EnumProcessJobState state) => state == EnumProcessJobState.ProcessingComplete; public static bool IsPausing(this EnumProcessJobState state) => state == EnumProcessJobState.Pausing; public static bool IsPaused(this EnumProcessJobState state) => state == EnumProcessJobState.Paused; public static bool IsAborting(this EnumProcessJobState state) => state == EnumProcessJobState.Aborting; public static bool IsStopping(this EnumProcessJobState state) => state == EnumProcessJobState.Stopping; public static bool IsComplete(this EnumProcessJobState state) => state == EnumProcessJobState.Complete; public static bool IsFinished(this EnumProcessJobState state) => state == EnumProcessJobState.Complete || state == EnumProcessJobState.ProcessingComplete; } }