Hello,
I am experiencing an issue with decimal validation in nopCommerce 4.70. Specifically, when trying to add or modify store pickup points with latitude and longitude values, the validation fails with both dot and comma as decimal separators.
My environment:
- nopCommerce version: 4.70
- SQL collation: SQL_Hungarian_CP1250_CI_AS
- Culture settings: en-US and hu-HU
Here is a snippet of the validator I am using:
```csharp
using FluentValidation;
using Nop.Plugin.Pickup.PickupInStore.Models;
using Nop.Services.Localization;
using Nop.Web.Framework.Validators;
namespace Nop.Plugin.Pickup.PickupInStore.Validators
{
public class StorePickupPointValidator : BaseNopValidator<StorePickupPointModel>
{
public StorePickupPointValidator(ILocalizationService localizationService)
{
// Latitude
RuleFor(model => model.Latitude)
.InclusiveBetween(-90, 90)
.WithMessageAwait(localizationService.GetResourceAsync("Plugins.Pickup.PickupInStore.Fields.Latitude.InvalidRange"))
.When(model => model.Latitude.HasValue);
RuleFor(model => model.Latitude)
.Must(latitude => latitude.HasValue)
.WithMessageAwait(localizationService.GetResourceAsync("Plugins.Pickup.PickupInStore.Fields.Latitude.IsNullWhenLongitudeHasValue"))
.When(model => model.Longitude.HasValue);
RuleFor(model => model.Latitude)
.ScalePrecision(8, 18)
.WithMessageAwait(localizationService.GetResourceAsync("Plugins.Pickup.PickupInStore.Fields.Latitude.InvalidPrecision"));
// Longitude
RuleFor(model => model.Longitude)
.InclusiveBetween(-180, 180)
.WithMessageAwait(localizationService.GetResourceAsync("Plugins.Pickup.PickupInStore.Fields.Longitude.InvalidRange"))
.When(model => model.Longitude.HasValue);
RuleFor(model => model.Longitude)
.Must(longitude => longitude.HasValue)
.WithMessageAwait(localizationService.GetResourceAsync("Plugins.Pickup.PickupInStore.Fields.Longitude.IsNullWhenLatitudeHasValue"))
.When(model => model.Latitude.HasValue);
RuleFor(model => model.Longitude)
.ScalePrecision(8, 18)
.WithMessageAwait(localizationService.GetResourceAsync("Plugins.Pickup.PickupInStore.Fields.Longitude.InvalidPrecision"));
}
}
}
Has anyone else encountered this issue? Any help would be appreciated!
Thank you.