< Summary - Syki

Information
Class: Syki.Front.Pages.Academic.AcademicDisciplinesPage
Assembly: Front
File(s): /home/runner/work/syki/syki/Front/Pages/Academic/AcademicDisciplinesPage.razor
Tag: 4_16869239191
Line coverage
0%
Covered lines: 0
Uncovered lines: 19
Coverable lines: 19
Total lines: 74
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 4
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor()100%210%
OnInitializedAsync()100%210%
OpenDialog()0%620%
get__quickFilter()100%210%
GetNotFoundMessage()0%620%

File(s)

/home/runner/work/syki/syki/Front/Pages/Academic/AcademicDisciplinesPage.razor

#LineLine coverage
 1@using Syki.Front.Features.Academic.GetDisciplines
 2@using Syki.Front.Features.Academic.CreateDiscipline
 3
 4@namespace Syki.Front.Pages.Academic
 5
 6@page "/academic/disciplines"
 7@attribute [Authorize(Roles = "Academic")]
 8
 9<SykiPageTitle Title="Disciplinas" />
 10
 11<MudContainer Class="my-4 px-4">
 12    <SykiPageHeader Icon="@Icons.Material.Filled.Apps" Title="Disciplinas" ButtonText="Nova Disciplina" OnClick="@OpenDi
 13    <SykiPageAlert Text="Uma mesma disciplina pode compor a grade de cursos diferentes." />
 14    <MudContainer Class="px-0 mb-4">
 15        <MudDataGrid Class="pa-4" Items="@_disciplines" QuickFilter="@_quickFilter" Hover="true" Loading="@_loading" Den
 16            <ToolBarContent>
 17                <SykiDataGridSearchTextField @bind-Value="@_searchString" Placeholder="Busque por nome ou código" />
 18            </ToolBarContent>
 19            <Columns>
 20                <PropertyColumn Property="x => x.Name" Title="Nome" />
 21                <PropertyColumn Property="x => x.Code" Title="Código" />
 22                <PropertyColumn Property="x => x.Teachers.ToThousandSeparated()" Title="Professores" />
 23            </Columns>
 24            <NoRecordsContent>
 025                @(GetNotFoundMessage())
 26            </NoRecordsContent>
 27            <PagerContent>
 28                <SykiDataGridPager T="DisciplineOut"/>
 29            </PagerContent>
 30        </MudDataGrid>
 31    </MudContainer>
 32</MudContainer>
 33
 34@inject GetDisciplinesClient Client
 35@inject IDialogService DialogService
 36@inject IBrowserViewportService BrowserViewportService
 37
 38@code
 39{
 40    private bool _loading;
 41    private string _searchString;
 042    private List<DisciplineOut> _disciplines = [];
 43
 44    protected override async Task OnInitializedAsync()
 45    {
 046        _loading = true;
 047        _disciplines = await Client.Get();
 048        _loading = false;
 049    }
 50
 51    private async Task OpenDialog()
 52    {
 053        var breakpoint = await BrowserViewportService.GetCurrentBreakpointAsync();
 054        var options = new DialogOptions {
 055            MaxWidth = MaxWidth.Small,
 056            FullWidth = true,
 057            FullScreen = breakpoint == Breakpoint.Xs,
 058        };
 059        var dialog = await DialogService.ShowAsync<CreateDisciplineDialog>("", options);
 60
 061        var result = await dialog.Result;
 62
 063        if (result!.Canceled) return;
 64
 065        await OnInitializedAsync();
 066    }
 67
 068    private Func<DisciplineOut, bool> _quickFilter => x => _searchString.IsIn(x.Name, x.Code);
 69
 70    private string GetNotFoundMessage()
 71    {
 072        return (_searchString.IsEmpty()) ? "Não existem disciplinas cadastradas ainda." : "Nenhuma disciplina encontrada
 73    }
 74}