using System; using InABox.Core; namespace Comal.Classes { public enum SequenceType { None, Link, Consolidate } public enum QualityStatus { NotChecked, Passed, PassedWithIssues, Skipped, Failed } public interface IStageTemplate { Guid SectionID { get; set; } int Minutes { get; set; } SequenceType Sequence { get; set; } string QualityChecks { get; set; } } public class StageTemplate : BaseObject, IStageTemplate, IPackable { public StageTemplate() { QualityChecks = ""; } public void Pack(FastBinaryWriter writer) { writer.Write(SectionID.ToByteArray()); writer.Write(Minutes); writer.Write((int)Sequence); writer.Write(QualityChecks); } public void Unpack(FastBinaryReader reader) { SectionID = new Guid(reader.ReadBytes(16)); Minutes = reader.ReadInt32(); Sequence = (SequenceType)reader.ReadInt32(); QualityChecks = reader.ReadString(); } public Guid SectionID { get; set; } public int Minutes { get; set; } public SequenceType Sequence { get; set; } [MemoEditor] public string QualityChecks { get; set; } } public class SetoutStage : BaseObject, IStageTemplate, IPackable { public SetoutStage() { Name = ""; QualityChecks = ""; QualityNotes = ""; } public string Name { get; set; } public DateTime Started { get; set; } public DateTime Completed { get; set; } public double PercentageComplete { get; set; } public QualityStatus QualityStatus { get; set; } [MemoEditor] public string QualityNotes { get; set; } public void Pack(FastBinaryWriter writer) { writer.Write(Completed.ToBinary()); writer.Write(Minutes); writer.Write(Name); writer.Write(PercentageComplete); writer.Write(QualityChecks); writer.Write(QualityNotes); writer.Write((int)QualityStatus); writer.Write(SectionID.ToByteArray()); writer.Write((int)Sequence); writer.Write(Started.ToBinary()); } public void Unpack(FastBinaryReader reader) { Completed = DateTime.FromBinary(reader.ReadInt64()); Minutes = reader.ReadInt32(); Name = reader.ReadString(); PercentageComplete = reader.ReadDouble(); QualityChecks = reader.ReadString(); QualityNotes = reader.ReadString(); QualityStatus = (QualityStatus)reader.ReadInt32(); SectionID = new Guid(reader.ReadBytes(16)); Sequence = (SequenceType)reader.ReadInt32(); Started = DateTime.FromBinary(reader.ReadInt64()); } public Guid SectionID { get; set; } public int Minutes { get; set; } public SequenceType Sequence { get; set; } [MemoEditor(Editable = Editable.Hidden)] public string QualityChecks { get; set; } } }