public override async Task Load(XElement node, bool requireName = true) { await base.Load(node, requireName); if (!HasRange) { return; } float minFloat, maxFloat; if (string.IsNullOrWhiteSpace(Min) && string.IsNullOrWhiteSpace(Max)) { throw new ArgumentException($"Value was not convertable to range: {Min}-{Max}"); } if (string.IsNullOrWhiteSpace(Min)) { minFloat = float.MinValue; Min = "float.MinValue"; } else if (!float.TryParse(Min, out minFloat)) { throw new ArgumentException($"Value was not convertable to float: {Min}"); } if (string.IsNullOrWhiteSpace(Max)) { maxFloat = float.MaxValue; Max = "float.MaxValue"; } else if (!float.TryParse(Max, out maxFloat)) { throw new ArgumentException($"Value was not convertable to float: {Max}"); } if (minFloat > maxFloat) { throw new ArgumentException($"Min {minFloat} was greater than max {maxFloat}"); } if (!minFloat.Equals(float.MinValue) && !Min.EndsWith("f")) { Min += "f"; } if (!maxFloat.Equals(float.MaxValue) && !Max.EndsWith("f")) { Max += "f"; } }
public override async Task Load(XElement node, bool requireName = true) { await base.Load(node, requireName); if (!HasRange) { return; } double min, max; if (string.IsNullOrWhiteSpace(Min) && string.IsNullOrWhiteSpace(Max)) { throw new ArgumentException($"Value was not convertable to range: {Min}-{Max}"); } if (string.IsNullOrWhiteSpace(Min)) { min = double.MinValue; Min = "double.MinValue"; } else if (!double.TryParse(Min, out min)) { throw new ArgumentException($"Value was not convertable to double: {Min}"); } if (string.IsNullOrWhiteSpace(Max)) { max = double.MaxValue; Max = "double.MaxValue"; } else if (!double.TryParse(Max, out max)) { throw new ArgumentException($"Value was not convertable to double: {Max}"); } if (min > max) { throw new ArgumentException($"Min {min} was greater than max {max}"); } if (!Min.EndsWith("d")) { Min += "d"; } if (!Max.EndsWith("d")) { Max += "d"; } }