209 lines
6.7 KiB
C#
209 lines
6.7 KiB
C#
using CMS_CORE_Library.Models;
|
|
using Step.Model.DatabaseModels;
|
|
using System.Collections;
|
|
using System.ComponentModel.DataAnnotations;
|
|
|
|
namespace Step.Model.DTOModels.ToolModels
|
|
{
|
|
|
|
public class DTONcTool
|
|
{
|
|
[Required]
|
|
public short OffsetLength { get; set; }
|
|
|
|
[Required]
|
|
public int ResidualLife { get; set; }
|
|
|
|
[Required]
|
|
public int ResidualRevive { get; set; }
|
|
|
|
[Required]
|
|
// Foreign keys
|
|
public short FamilyId { get; set; }
|
|
|
|
[Required]
|
|
public bool Disabled { get; set; }
|
|
|
|
[Required]
|
|
public bool Broken { get; set; }
|
|
|
|
[Required]
|
|
public bool Measured { get; set; }
|
|
|
|
[Required]
|
|
public bool IntegrityCheck { get; set; }
|
|
|
|
[Required]
|
|
public bool ClockwiseRotation { get; set; }
|
|
|
|
[Required]
|
|
public bool CounterClockwiseRotation { get; set; }
|
|
|
|
public short? ShankId { get; set; } = null;
|
|
|
|
public static explicit operator DTONcTool(DbNcToolModel obj)
|
|
{
|
|
// Get bit values
|
|
BitArray statusBits = new BitArray(obj.Status);
|
|
bool[] bits = new bool[8];
|
|
statusBits.CopyTo(bits, 0);
|
|
|
|
return new DTONcTool()
|
|
{
|
|
FamilyId = obj.FamilyId,
|
|
ShankId = (short)(obj.ShankId == null ? 0 : obj.ShankId.Value),
|
|
OffsetLength = obj.OffsetLength,
|
|
ResidualLife = obj.ResidualLife,
|
|
ResidualRevive = obj.ResidualRevive,
|
|
Disabled = bits[0],
|
|
Broken = bits[1],
|
|
Measured = bits[2],
|
|
IntegrityCheck = bits[3],
|
|
ClockwiseRotation = bits[4],
|
|
CounterClockwiseRotation = bits[5],
|
|
};
|
|
}
|
|
|
|
public static explicit operator DbNcToolModel(DTONcTool obj)
|
|
{
|
|
// Prepare status byte
|
|
bool[] result = new bool[8] { obj.Disabled, obj.Broken, obj.Measured, obj.IntegrityCheck, obj.ClockwiseRotation, obj.CounterClockwiseRotation, false, false };
|
|
byte status = ConvertArrayToByte(result);
|
|
|
|
return new DbNcToolModel()
|
|
{
|
|
FamilyId = obj.FamilyId,
|
|
ShankId = obj.ShankId,
|
|
OffsetLength = obj.OffsetLength,
|
|
ResidualLife = obj.ResidualLife,
|
|
ResidualRevive = obj.ResidualRevive,
|
|
Status = status
|
|
};
|
|
}
|
|
|
|
protected static byte ConvertArrayToByte(bool[] bits)
|
|
{
|
|
BitArray bitField = new BitArray(bits); //BitArray takes a bool[]
|
|
byte[] bytes = new byte[1];
|
|
bitField.CopyTo(bytes, 0);
|
|
|
|
return bytes[0];
|
|
}
|
|
}
|
|
|
|
public class DTONcToolModel : DTONewNcToolModel
|
|
{
|
|
public short Id { get; set; }
|
|
|
|
public OffsetModel Offset1 { get; set; }
|
|
|
|
public OffsetModel Offset2 { get; set; }
|
|
|
|
public OffsetModel Offset3 { get; set; }
|
|
|
|
|
|
public static explicit operator DTONcToolModel(DbNcToolModel obj)
|
|
{
|
|
// Get bit values
|
|
BitArray statusBits = new BitArray(new byte[] { obj.Status });
|
|
bool[] bits = new bool[8];
|
|
statusBits.CopyTo(bits, 0);
|
|
|
|
return new DTONcToolModel()
|
|
{
|
|
Id = obj.ToolId,
|
|
FamilyId = obj.FamilyId,
|
|
ShankId = obj.ShankId,
|
|
OffsetLength = obj.OffsetLength,
|
|
ResidualLife = obj.ResidualLife,
|
|
ResidualRevive = obj.ResidualRevive,
|
|
Disabled = bits[0],
|
|
Broken = bits[1],
|
|
Measured = bits[2],
|
|
IntegrityCheck = bits[3],
|
|
ClockwiseRotation = bits[4],
|
|
CounterClockwiseRotation = bits[5],
|
|
OffsetId1 = obj.OffsetId1,
|
|
OffsetId2 = obj.OffsetId2,
|
|
OffsetId3 = obj.OffsetId3
|
|
};
|
|
}
|
|
|
|
public static explicit operator DbNcToolModel(DTONcToolModel obj)
|
|
{
|
|
// Prepare status byte
|
|
bool[] result = new bool[8] { obj.Disabled, obj.Broken, obj.Measured, obj.IntegrityCheck, obj.ClockwiseRotation, obj.CounterClockwiseRotation, false, false };
|
|
byte status = ConvertArrayToByte(result);
|
|
|
|
return new DbNcToolModel()
|
|
{
|
|
ToolId = obj.Id,
|
|
FamilyId = obj.FamilyId,
|
|
ShankId = obj.ShankId,
|
|
OffsetLength = obj.OffsetLength,
|
|
ResidualLife = obj.ResidualLife,
|
|
ResidualRevive = obj.ResidualRevive,
|
|
Status = status,
|
|
OffsetId1 = obj.OffsetId1,
|
|
OffsetId2 = obj.OffsetId2,
|
|
OffsetId3 = obj.OffsetId3
|
|
};
|
|
}
|
|
}
|
|
|
|
public class DTONewNcToolModel : DTONcTool
|
|
{
|
|
public short? OffsetId1 { get; set; }
|
|
|
|
public short? OffsetId2 { get; set; }
|
|
|
|
public short? OffsetId3 { get; set; }
|
|
|
|
|
|
public static explicit operator DTONewNcToolModel(DbNcToolModel obj)
|
|
{
|
|
// Get bit values
|
|
BitArray statusBits = new BitArray(obj.Status);
|
|
bool[] bits = new bool[8];
|
|
statusBits.CopyTo(bits, 0);
|
|
|
|
return new DTONewNcToolModel()
|
|
{
|
|
FamilyId = obj.FamilyId,
|
|
ShankId = (short)(obj.ShankId == null ? 0 : obj.ShankId.Value),
|
|
OffsetLength = obj.OffsetLength,
|
|
ResidualLife = obj.ResidualLife,
|
|
ResidualRevive = obj.ResidualRevive,
|
|
Disabled = bits[0],
|
|
Broken = bits[1],
|
|
Measured = bits[2],
|
|
IntegrityCheck = bits[3],
|
|
ClockwiseRotation = bits[4],
|
|
CounterClockwiseRotation = bits[5],
|
|
OffsetId1 = obj.OffsetId1,
|
|
OffsetId2 = obj.OffsetId2,
|
|
OffsetId3 = obj.OffsetId3
|
|
};
|
|
}
|
|
|
|
public static explicit operator DbNcToolModel(DTONewNcToolModel obj)
|
|
{
|
|
// Prepare status byte
|
|
bool[] result = new bool[8] { obj.Disabled, obj.Broken, obj.Measured, obj.IntegrityCheck, obj.ClockwiseRotation, obj.CounterClockwiseRotation, false, false};
|
|
byte status = ConvertArrayToByte(result);
|
|
|
|
return new DbNcToolModel()
|
|
{
|
|
FamilyId = obj.FamilyId,
|
|
ShankId = obj.ShankId,
|
|
OffsetLength = obj.OffsetLength,
|
|
ResidualLife = obj.ResidualLife,
|
|
ResidualRevive = obj.ResidualRevive,
|
|
Status = status,
|
|
OffsetId1 = obj.OffsetId1,
|
|
OffsetId2 = obj.OffsetId2,
|
|
OffsetId3 = obj.OffsetId3
|
|
};
|
|
}
|
|
}
|
|
} |