From d7d3cb6986ae452b094bcecf6a20deef0df0df83 Mon Sep 17 00:00:00 2001 From: Oliver Booth Date: Sun, 6 Aug 2023 13:55:27 +0100 Subject: [PATCH] refactor: remove RouteCultureProvider --- OliverBooth/RouteCultureProvider.cs | 47 ----------------------------- 1 file changed, 47 deletions(-) delete mode 100644 OliverBooth/RouteCultureProvider.cs diff --git a/OliverBooth/RouteCultureProvider.cs b/OliverBooth/RouteCultureProvider.cs deleted file mode 100644 index 2629111..0000000 --- a/OliverBooth/RouteCultureProvider.cs +++ /dev/null @@ -1,47 +0,0 @@ -using System.Globalization; -using System.Text.RegularExpressions; -using Microsoft.AspNetCore.Localization; - -namespace OliverBooth; - -internal sealed partial class RouteCultureProvider : IRequestCultureProvider -{ - private static readonly Regex CultureRegex = GetCultureRegex(); - private readonly CultureInfo _defaultCulture; - private readonly CultureInfo _defaultUiCulture; - - public RouteCultureProvider(CultureInfo requestCulture) : this(new RequestCulture(requestCulture)) - { - } - - public RouteCultureProvider(RequestCulture requestCulture) - { - _defaultCulture = requestCulture.Culture; - _defaultUiCulture = requestCulture.UICulture; - } - - public Task DetermineProviderCultureResult(HttpContext httpContext) - { - PathString url = httpContext.Request.Path; - - string defaultCulture = _defaultCulture.TwoLetterISOLanguageName; - string defaultUiCulture = _defaultUiCulture.TwoLetterISOLanguageName; - - if (url.ToString().Length <= 1) - { - return Task.FromResult(new ProviderCultureResult(defaultCulture, defaultUiCulture))!; - } - - string[]? parts = httpContext.Request.Path.Value?.Split('/'); - string requestCulture = parts?[1] ?? string.Empty; - - bool isMatch = CultureRegex.IsMatch(requestCulture); - string culture = isMatch ? requestCulture : defaultCulture; - string uiCulture = isMatch ? requestCulture : defaultUiCulture; - - return Task.FromResult(new ProviderCultureResult(culture, uiCulture))!; - } - - [GeneratedRegex("^[a-z]{2}(-[A-Z]{2})*$")] - private static partial Regex GetCultureRegex(); -}