37 lines
1.6 KiB
C#
37 lines
1.6 KiB
C#
using DTS.Common.SharedResource.Strings;
|
|
using System.Globalization;
|
|
using System.Windows.Controls;
|
|
using DTS.Common.Constant;
|
|
|
|
namespace DTS.Common.Validators
|
|
{
|
|
[System.Diagnostics.CodeAnalysis.SuppressMessage("Minor Code Smell", "S101:Types should be named in PascalCase", Justification = "acronyms")]
|
|
public class CANArbBaseBitrateValidator : ValidationRule
|
|
{
|
|
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
|
|
{
|
|
if (value is string s)
|
|
{
|
|
if (!long.TryParse(s, out var temp))
|
|
{
|
|
return new ValidationResult(false, StringResources.InvalidFormat);
|
|
}
|
|
else
|
|
{
|
|
//Since the Arb/Base Bitrate min/max is different for FD vs. non-FD CANs, use the widest range.
|
|
if (temp > EmbeddedSensors.CANFD_ARB_BASE_BITRATE_MAX)
|
|
{
|
|
return new ValidationResult(false, $"{StringResources.MaxValueIs}{EmbeddedSensors.CANFD_ARB_BASE_BITRATE_MAX}");
|
|
}
|
|
if (temp < EmbeddedSensors.NON_CANFD_ARB_BASE_BITRATE_MIN)
|
|
{
|
|
return new ValidationResult(false, $"{StringResources.MinValueIs}{EmbeddedSensors.NON_CANFD_ARB_BASE_BITRATE_MIN}");
|
|
}
|
|
return new ValidationResult(true, null);
|
|
}
|
|
}
|
|
return new ValidationResult(false, StringResources.InvalidFormat);
|
|
}
|
|
}
|
|
}
|