using System.Net; namespace EnvelopeGenerator.Server.Client.Services; public class LocalizationService(IHttpClientFactory httpClientFactory) { private HttpClient CreateDefaultClient() => httpClientFactory.CreateClient("EnvelopeGenerator.Server"); public async Task GetLanguageAsync(CancellationToken cancel = default) { using var http = CreateDefaultClient(); var response = await http.GetAsync("/api/Localization/lang", cancel); if (response.StatusCode == HttpStatusCode.NotFound) return "de-DE"; if (!response.IsSuccessStatusCode) return "de-DE"; var language = await response.Content.ReadAsStringAsync(cancel); return string.IsNullOrWhiteSpace(language) ? "de-DE" : language.Trim('"'); } public async Task SetLanguageAsync(string language, CancellationToken cancel = default) { using var http = CreateDefaultClient(); var response = await http.PostAsync($"/api/Localization/lang?language={Uri.EscapeDataString(language)}", null, cancel); response.EnsureSuccessStatusCode(); } }