Files
DP44/Common/DTS.Common/.svn/pristine/30/30ed2442434454c3806c938e1319ee7386e9a11f.svn-base
2026-04-17 14:55:32 -04:00

37 lines
1.6 KiB
Plaintext

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);
}
}
}