< Summary - Syki

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

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_ClassId()100%210%
.ctor()100%210%
OnInitializedAsync()100%210%
Load()0%2040%
get__quickFilter()100%210%
GetNotFoundMessage()0%620%
GetFrequencyColor(...)0%620%

File(s)

/home/runner/work/syki/syki/Front/Pages/Teacher/TeacherClassStudentsTab.razor

#LineLine coverage
 1@namespace Syki.Front.Pages.Teacher
 2
 3<MudContainer Class="mb-4 px-0">
 4    <MudDataGrid
 5        T="TeacherClassStudentOut"
 6        Class="pa-4"
 7        Items="@_students"
 8        QuickFilter="@_quickFilter"
 9        Hover="true"
 10        Dense="true"
 11        Loading="@_loading"
 12        RowsPerPage="100"
 13    >
 14        <ToolBarContent>
 15            <SykiDataGridSearchTextField @bind-Value="@_searchString" Placeholder="Busque por nome" />
 16        </ToolBarContent>
 17        <Columns>
 18            <PropertyColumn Property="x => x.Name" Title="Nome" />
 19            <PropertyColumn Property="x => x.GetNote(ClassNoteType.N1)" Title="N1" />
 20            <PropertyColumn Property="x => x.GetNote(ClassNoteType.N2)" Title="N2" />
 21            <PropertyColumn Property="x => x.GetNote(ClassNoteType.N3)" Title="N3" />
 22            <PropertyColumn Property="x => x.AverageNote.Format()" Title="Média" />
 23            <TemplateColumn Title="Frequência">
 24                <CellTemplate>
 25                        <MudProgressLinear Color="@GetFrequencyColor(context.Item.Frequency)" Rounded="true" Size="Size.
 26                            <MudText Typo="Typo.body1">
 027                                <b>@context.Item.Frequency.Format()%</b>
 28                            </MudText>
 29                        </MudProgressLinear>
 30                </CellTemplate>
 31            </TemplateColumn>
 32        </Columns>
 33        <NoRecordsContent>
 034            @(GetNotFoundMessage())
 35        </NoRecordsContent>
 36        <PagerContent>
 37        </PagerContent>
 38    </MudDataGrid>
 39</MudContainer>
 40
 41@inject GetTeacherClassClient GetTeacherClassClient
 42@inject GetTeacherClassStudentsClient GetTeacherClassStudentsClient
 43
 44@code
 45{
 46  [Parameter]
 047  public Guid ClassId { get; set; }
 48
 49    private bool _loading;
 50    private string _searchString;
 051    private TeacherClassOut _class = new();
 052    private List<TeacherClassStudentOut> _students = [];
 53
 54    protected override async Task OnInitializedAsync()
 55    {
 056        await Load();
 057    }
 58
 59    private async Task Load()
 60    {
 061        _loading = true;
 062        var classResponse = await GetTeacherClassClient.Get(ClassId);
 063        if (classResponse.IsSuccess)
 64        {
 065            _class = classResponse.Success;
 66        }
 67
 068        var studentsResponse = await GetTeacherClassStudentsClient.Get(ClassId);
 069        if (studentsResponse.IsSuccess)
 70        {
 071            _students = studentsResponse.Success.ToList();
 72        }
 73
 074        _loading = false;
 075    }
 76
 077    private Func<TeacherClassStudentOut, bool> _quickFilter => x => _searchString.IsIn(x.Name);
 78
 79    private string GetNotFoundMessage()
 80    {
 081        return (_searchString.IsEmpty()) ? "Não existem alunos matriculados ainda." : "Nenhum aluno encontrado.";
 82    }
 83
 84    private Color GetFrequencyColor(decimal frequency)
 85    {
 086        return frequency >= 70 ? Color.Tertiary : Color.Error;
 87    }
 88}