private static bool ValidateSize(string size, bool allowNegative, double minValue, double maxValue, ObjectType objectType, string objectName, string propertyName, ErrorContext errorContext, out double validSizeInMM, out string newSize) { validSizeInMM = minValue; newSize = minValue + "mm"; RVUnit sizeValue = default(RVUnit); if (!Validator.ValidateSizeString(size, out sizeValue)) { errorContext.Register(ProcessingErrorCode.rsInvalidSize, Severity.Error, objectType, objectName, propertyName, size); return(false); } if (!Validator.ValidateSizeUnitType(sizeValue)) { errorContext.Register(ProcessingErrorCode.rsInvalidMeasurementUnit, Severity.Error, objectType, objectName, propertyName, sizeValue.Type.ToString()); return(false); } if (!allowNegative && !Validator.ValidateSizeIsPositive(sizeValue)) { errorContext.Register(ProcessingErrorCode.rsNegativeSize, Severity.Error, objectType, objectName, propertyName); return(false); } RVUnit unit = new RVUnit(Math.Round(sizeValue.Value, Validator.DecimalPrecision), sizeValue.Type); double num = Converter.ConvertToMM(unit); if (!Validator.ValidateSizeValue(num, minValue, maxValue)) { errorContext.Register(ProcessingErrorCode.rsOutOfRangeSize, Severity.Error, objectType, objectName, propertyName, size, Converter.ConvertSize(minValue), Converter.ConvertSize(maxValue)); return(false); } validSizeInMM = Math.Round(num, Validator.DecimalPrecision); newSize = unit.ToString(CultureInfo.InvariantCulture); return(true); }
public static bool ValidateSize(string size, bool allowNegative, double minValue, double maxValue, ObjectType objectType, string objectName, string propertyName, ErrorContext errorContext, out double validSizeInMM, out string newSize) { validSizeInMM = minValue; newSize = minValue + "mm"; RVUnit rVUnit = default(RVUnit); if (!Validator.ValidateSizeString(size, out rVUnit)) { errorContext.Register(ProcessingErrorCode.rsInvalidSize, Severity.Error, objectType, objectName, propertyName, size); return(false); } if (!Validator.ValidateSizeUnitType(rVUnit)) { errorContext.Register(ProcessingErrorCode.rsInvalidMeasurementUnit, Severity.Error, objectType, objectName, propertyName, rVUnit.Type.ToString()); return(false); } if (!allowNegative && !Validator.ValidateSizeIsPositive(rVUnit)) { errorContext.Register(ProcessingErrorCode.rsNegativeSize, Severity.Error, objectType, objectName, propertyName); return(false); } double num = Converter.ConvertToMM(rVUnit); if (!Validator.ValidateSizeValue(num, minValue, maxValue)) { errorContext.Register(ProcessingErrorCode.rsOutOfRangeSize, Severity.Error, objectType, objectName, propertyName, size, Converter.ConvertSizeFromMM(allowNegative ? minValue : Math.Max(0.0, minValue), rVUnit.Type), Converter.ConvertSizeFromMM(maxValue, rVUnit.Type)); return(false); } validSizeInMM = num; newSize = rVUnit.ToString(CultureInfo.InvariantCulture); return(true); }