Convert-it/Routing/LocalizedAreaRouteConstraint.cs
Ricardo Carneiro be3a93f90d
Some checks failed
Deploy ASP.NET MVC to OCI / build-and-deploy (push) Has been cancelled
fix: ajustes de idioma e pipelina
2025-09-12 13:45:37 -03:00

37 lines
1.3 KiB
C#

using Convert_It_Online.Services;
using Microsoft.AspNetCore.Routing;
using System.Globalization;
namespace Convert_It_Online.Routing
{
public class LocalizedAreaRouteConstraint : IRouteConstraint
{
private readonly IUrlTranslationService _urlTranslationService;
public LocalizedAreaRouteConstraint(IUrlTranslationService urlTranslationService)
{
_urlTranslationService = urlTranslationService;
}
public bool Match(HttpContext? httpContext, IRouter? route, string routeKey,
RouteValueDictionary values, RouteDirection routeDirection)
{
if (values.TryGetValue("translatedArea", out var value) && value is string areaName)
{
if (values.TryGetValue("culture", out var cultureValue) && cultureValue is string cultureName)
{
var culture = new CultureInfo(cultureName);
var originalArea = _urlTranslationService.GetOriginalArea(areaName, culture);
if (originalArea != null)
{
values["area"] = originalArea;
return true;
}
}
}
return false;
}
}
}