using InABox.Core;
using System;
using System.Collections.Generic;
using System.Text;
using static System.Collections.Specialized.BitVector32;
namespace Comal.Classes
{
///
/// Defines an entity that can be converted into a .
///
public interface IManufacturingPacketStageGenerator : ISequenceable
{
TimeSpan Time { get; }
SequenceType SequenceType { get; }
string QualityChecks { get; }
ManufacturingSectionLink Section { get; }
}
public static class IManufacturingPacketGeneratorExtensions
{
public static Columns GetPacketGeneratorRequiredColumns()
where T : IManufacturingPacketStageGenerator
{
return Columns.None().Add(x => x.Time)
.Add(x => x.Sequence)
.Add(x => x.SequenceType)
.Add(x => x.QualityChecks)
.Add(x => x.Section.ID)
.Add(x => x.Section.Name);
}
///
/// Creates a Packet Stage from the Template Stage
/// You still need to add the Packet.ID
///
///
public static ManufacturingPacketStage CreateManufacturingPacketStage(this IManufacturingPacketStageGenerator gen)
{
var pstage = new ManufacturingPacketStage
{
Time = gen.Time,
Sequence = gen.Sequence,
SequenceType = gen.SequenceType,
Started = DateTime.MinValue,
PercentageComplete = 0.0F,
Completed = DateTime.MinValue,
QualityChecks = gen.QualityChecks,
QualityStatus = QualityStatus.NotChecked,
QualityNotes = ""
};
pstage.ManufacturingSectionLink.ID = gen.Section.ID;
pstage.ManufacturingSectionLink.Name = gen.Section.Name;
return pstage;
}
}
}