public VolumeMetric(QuantityDna dna, double value) : base(dna, value) { if (dna.UnitType != (ushort)VolumeUnit.Metric) { throw new ArgumentException($"Invalid DNA. Expected unit type {VolumeUnit.Metric}"); } }
public LengthUsCustomary(QuantityDna dna, double value) : base(dna, value) { if (dna.UnitType != (ushort)LengthUnit.UsCustomary) { throw new ArgumentException($"Invalid DNA. Expected unit type {LengthUnit.UsCustomary}"); } }
protected Length(QuantityDna dna, double value) : base(dna, value) { if (Dna.QuantityType != QuantityType.Length) { throw new ArgumentException($"Invalid DNA. Expected quantity type {QuantityType.Length}"); } }
public LengthImperial(QuantityDna dna, double value) : base(dna, value) { if (dna.UnitType != (ushort)LengthUnit.Imperial) { throw new ArgumentException($"Invalid DNA. Expected unit type {LengthUnit.Imperial}"); } }
public Volume(QuantityDna dna, double value) : base(dna, value) { if (Dna.QuantityType != QuantityType.Volume) { throw new ArgumentException($"Invalid DNA. Expected quantity type {QuantityType.Volume}"); } }
public static Quantity FromDna(QuantityDna dna, double value) { switch (dna.QuantityType) { case QuantityType.Length: return(LengthFromDna(dna, value)); case QuantityType.Area: case QuantityType.Volume: case QuantityType.Temperature: case QuantityType.Unspecified: default: throw new ArgumentException($"Cannot create quantity from type {dna.QuantityType}"); } }
public static Quantity LengthFromDna(QuantityDna dna, double value) { switch (dna.UnitType) { case (ushort)Length.LengthUnit.Metric: return(new LengthMetric(dna, value)); case (ushort)Length.LengthUnit.Imperial: return(new LengthImperial(dna, value)); case (ushort)Length.LengthUnit.UsCustomary: return(new LengthUsCustomary(dna, value)); default: throw new ArgumentException($"Cannot create length from unit type {dna.UnitType}"); } }
protected Quantity(QuantityDna dna, double value) { Dna = dna; Value = value; }