shoc-backend/Api.SeaHavenIndustries/DTOs/LocationAccountIdMapping.cs
Arthur Bassi 4e4bb0ca90 fix(locations): reject unparseable accountId and forward cancellation
Blank accountId stays optional; nonblank parse failures return 400. Account lookup uses ExistsActiveAsync with the request token.
2026-08-26 14:18:38 -03:00

25 lines
684 B
C#

using System.Globalization;
using FluentValidation;
using FluentValidation.Results;
namespace Api.SeaHavenIndustries.DTOs
{
internal static class LocationAccountIdMapping
{
public static int? ParseOptional(string? raw)
{
if (string.IsNullOrWhiteSpace(raw))
return null;
if (!int.TryParse(raw.Trim(), NumberStyles.Integer, CultureInfo.InvariantCulture, out var id))
{
throw new ValidationException(new[]
{
new ValidationFailure("AccountId", "accountId must be a valid integer.")
});
}
return id;
}
}
}