using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using static CMS_CORE_Library.DataStructures; namespace Step.Model.DTOModels.ToolModels { public class DTOShankModel { public int Id; [Required] public string Name; [Required] public bool IsEnabled; [Required] public bool IsInhibited; [Required] public bool InChangeTool; [Required] public bool InFixedPlace; [Required] public bool InUse; [Required] public int LeftSize; [Required] public int RightSize; [Required] public int MagazinePositionType; [Required] public List ChildsTools; public static explicit operator ShankModel(DTOShankModel obj) { List childs = obj.ChildsTools?.Select(x => new ShankChildModel { Id = x.Id, FamilyName = x.FamilyName, MultitoolId = x.MultitoolId, ToolType = x.ToolType }).ToList(); return new ShankModel() { Id = 0, Name = obj.Name, IsEnabled = obj.IsEnabled, IsInhibited = obj.IsInhibited, InChangeTool = obj.InChangeTool, InFixedPlace = obj.InFixedPlace, InUse = obj.InUse, LeftSize = obj.LeftSize, RightSize = obj.RightSize, MagazinePositionType = obj.MagazinePositionType, ChildsTools = childs }; } } public class DTOShankChildModel { public int Id; [Required] public int MultitoolId; [Required] public string FamilyName; [Required] public int ToolType; } }