< Summary

Information
Class: UIBlazor.Components.LanguageSelector
Assembly: UIBlazor
File(s): /home/runner/work/InvAit/InvAit/UIBlazor/Components/LanguageSelector.razor
Tag: 14_22728831704
Line coverage
100%
Covered lines: 15
Uncovered lines: 0
Coverable lines: 15
Total lines: 41
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/LanguageSelector.razor

#LineLine coverage
 1<RadzenStack Orientation="Orientation.Horizontal" AlignItems="AlignItems.Center" Gap="0.5rem">
 2    <RadzenIcon Icon="language" />
 3    <RadzenDropDown TValue="string"
 4                    Data="@Cultures"
 5                    TextProperty="Name"
 6                    ValueProperty="Value"
 7                    Value="@CommonSettingsProvider.Current.Culture"
 8                    Change="@OnCultureChange"
 9                    Style="flex-grow: 1;" />
 10</RadzenStack>
 11
 12@code {
 813    [Inject] ICommonSettingsProvider CommonSettingsProvider { get; set; } = null!;
 14
 415    [Inject] NavigationManager NavManager { get; set; } = null!;
 16
 217    private List<CultureData> Cultures = new()
 218    {
 219        new CultureData { Name = "Русский", Value = "ru-RU" },
 220        new CultureData { Name = "English", Value = "en-US" }
 221    };
 22
 23    private async Task OnCultureChange(object value)
 24    {
 125        var culture = value.ToString();
 126        if (culture != null && culture != CommonSettingsProvider.Current.Culture)
 27        {
 128            CommonSettingsProvider.Current.Culture = culture;
 129            await CommonSettingsProvider.SaveAsync();
 30
 31            // Перезагружаем страницу для применения новой культуры
 132            NavManager.NavigateTo(NavManager.Uri, forceLoad: true);
 33        }
 134    }
 35
 36    public class CultureData
 37    {
 2338        public string Name { get; set; } = string.Empty;
 3139        public string Value { get; set; } = string.Empty;
 40    }
 41}