< Summary

Information
Class: UIBlazor.Components.Settings.LanguageSelector
Assembly: UIBlazor
File(s): /home/runner/work/InvAit/InvAit/UIBlazor/Components/Settings/LanguageSelector.razor
Tag: 71_26091983037
Line coverage
100%
Covered lines: 15
Uncovered lines: 0
Coverable lines: 15
Total lines: 44
Line coverage: 100%
Branch coverage
100%
Covered branches: 4
Total branches: 4
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_CommonSettingsProvider()100%11100%
get_NavManager()100%11100%
.ctor()100%11100%
OnCultureChange()100%44100%
get_Name()100%11100%
get_Value()100%11100%

File(s)

/home/runner/work/InvAit/InvAit/UIBlazor/Components/Settings/LanguageSelector.razor

#LineLine coverage
 1<RadzenStack Gap="0.2em">
 2    <RadzenStack Orientation="Orientation.Horizontal" AlignItems="AlignItems.Center" Gap="0.5rem">
 3        <RadzenIcon Icon="language" />
 4        <RadzenDropDown TValue="string"
 5                        Data="@Cultures"
 6                        TextProperty="Name"
 7                        ValueProperty="Value"
 8                        Value="@CommonSettingsProvider.Current.Culture"
 9                        Change="@OnCultureChange"
 10                        Style="flex-grow: 1;" />
 11    </RadzenStack>
 12    <RadzenText TextStyle="TextStyle.Caption" TextAlign="TextAlign.End" Style="color: var(--rz-warning);" Text="@SharedR
 13</RadzenStack>
 14
 15@code {
 816    [Inject] ICommonSettingsProvider CommonSettingsProvider { get; set; } = null!;
 17
 418    [Inject] NavigationManager NavManager { get; set; } = null!;
 19
 220    private readonly List<CultureData> Cultures =
 221    [
 222        new() { Name = "Русский", Value = "ru-RU" },
 223        new() { Name = "English", Value = "en-US" }
 224    ];
 25
 26    private async Task OnCultureChange(object value)
 27    {
 128        var culture = value.ToString();
 129        if (culture != null && culture != CommonSettingsProvider.Current.Culture)
 30        {
 131            CommonSettingsProvider.Current.Culture = culture;
 132            await CommonSettingsProvider.SaveAsync();
 33
 34            // Перезагружаем страницу для применения новой культуры
 135            NavManager.NavigateTo(NavManager.Uri, forceLoad: true);
 36        }
 137    }
 38
 39    public class CultureData
 40    {
 2641        public string Name { get; set; } = string.Empty;
 3142        public string Value { get; set; } = string.Empty;
 43    }
 44}