using Seyounth.Hyosung.Data.Entities; namespace Seyounth.Hyosung.Data.Models; public class Variety { public string Name => $"{Id} - {Code} - {StackingLayers}"; public int Id { get; set; } public string Code { get; set; } public int Lot { get; set; } public int YarnCarType { get; set; } public int YarnCarSide { get; set; } public string Specifications { get; set; } public int InnerDiameter { get; set; } public int OuterDiameter { get; set; } public int YarnDiameter { get; set; } public int PaperTubeHeight { get; set; } public int YarnThickness { get; set; } public double SingleWeight { get; set; } public int StackingLayers { get; set; } public int TotalCount { get; set; } public Pallet MiddlePallet { get; set; } public Pallet TopAndBottomPallet { get; set; } public Pallet Tray { get; set; } public string? StackHeadSpec { get; set; } public int? StackHeadCount { get; set; } public Pallet? PaperTray { get; set; } public bool HasBox { get; set; } public NeedType NeedTopBoard { get; set; } public NeedType NeedAngleBeam { get; set; } public NeedType NeedPackStrap { get; set; } public NeedType NeedFilmWrapping { get; set; } public NeedType NeedFilmCoating { get; set; } public int MasterLabelCount { get; set; } public int SubLabelCount { get; set; } public bool IsTurn { get; set; } public static Variety Create(VarietyEntity entity, List pallets) { var variety = new Variety() { Id = entity.Id, Code = entity.Code, Lot = entity.Lot, Specifications = entity.Specifications, InnerDiameter = entity.InnerDiameter, OuterDiameter = entity.OuterDiameter, YarnDiameter = entity.YarnDiameter, PaperTubeHeight = entity.PaperTubeHeight, YarnThickness = entity.YarnThickness, SingleWeight = entity.SingleWeight, StackingLayers = entity.StackingLayers, TotalCount = entity.TotalCount, StackHeadSpec = entity.StackHeadSpec, StackHeadCount = entity.StackHeadCount, NeedTopBoard = entity.NeedTopBoard, NeedAngleBeam = entity.NeedAngleBeam, NeedPackStrap = entity.NeedPackStrap, NeedFilmWrapping = entity.NeedFilmWrapping, NeedFilmCoating = entity.NeedFilmCoating, MasterLabelCount = entity.MasterLabelCount, SubLabelCount = entity.SubLabelCount, MiddlePallet = Pallet.FromEntity(pallets.First(x => x.Id == entity.MiddlePalletId)), TopAndBottomPallet = Pallet.FromEntity(pallets.First(x => x.Id == entity.TopAndBottomPalletId)), Tray = Pallet.FromEntity(pallets.First(x => x.Id == entity.TrayId)), HasBox = entity.HasBox }; if (entity.PaperTrayId != null && entity.PaperTrayId != 0) variety.PaperTray = Pallet.FromEntity(pallets.First(x => x.Id == entity.PaperTrayId)); return variety; } public VarietyEntity ToEntity() { var entity = new VarietyEntity() { Id = Id, Code = Code, Lot = Lot, Specifications = Specifications, InnerDiameter = InnerDiameter, OuterDiameter = OuterDiameter, YarnDiameter = YarnDiameter, PaperTubeHeight = PaperTubeHeight, YarnThickness = YarnThickness, SingleWeight = SingleWeight, StackingLayers = StackingLayers, TotalCount = TotalCount, StackHeadSpec = StackHeadSpec, StackHeadCount = StackHeadCount, PaperTrayId = PaperTray?.Id, NeedTopBoard = NeedTopBoard, NeedAngleBeam = NeedAngleBeam, NeedPackStrap = NeedPackStrap, NeedFilmWrapping = NeedFilmWrapping, NeedFilmCoating = NeedFilmCoating, MasterLabelCount = MasterLabelCount, SubLabelCount = SubLabelCount, MiddlePalletId = MiddlePallet.Id, TopAndBottomPalletId = TopAndBottomPallet.Id, TrayId = Tray.Id, HasBox = HasBox, }; return entity; } public short[] ToVarietyPlcData() { List ls = new List(); ls.Add((short)YarnCarSide); ls.Add((short)YarnCarType); ls.Add((short)InnerDiameter); ls.Add((short)OuterDiameter); ls.Add((short)YarnDiameter); ls.Add((short)PaperTubeHeight); ls.Add((short)YarnThickness); ls.Add((short)Tray.Type); ls.Add((short)Tray.Length); ls.Add((short)Tray.Width); ls.Add((short)Tray.Height); ls.Add((short)(HasBox ? 70 : 0)); if (PaperTray is null) { ls.Add(0); ls.Add(0); ls.Add(0); ls.Add(0); } else { ls.Add(1); ls.Add((short)PaperTray.Length); ls.Add((short)PaperTray.Width); ls.Add((short)PaperTray.Height); } ls.Add((short)TopAndBottomPallet.HoleCount); ls.Add((short)(TopAndBottomPallet.IsBigHole.Value ? 1 : 2)); ls.Add((short)TopAndBottomPallet.Length); ls.Add((short)TopAndBottomPallet.Width); ls.Add((short)TopAndBottomPallet.Height); ls.Add((short)MiddlePallet.HoleCount); ls.Add((short)(MiddlePallet.IsBigHole.Value ? 1 : 2)); ls.Add((short)MiddlePallet.Length); ls.Add((short)MiddlePallet.Width); ls.Add((short)MiddlePallet.Height); ls.Add((short)(IsTurn ? 1 : 2)); ls.Add((short)TotalCount); ls.Add((short)StackingLayers); return ls.ToArray(); } }