< Summary - Syki

Information
Class: Syki.Front.Pages.Student.StudentClassActivityPage
Assembly: Front
File(s): /home/runner/work/syki/syki/Front/Pages/Student/StudentClassActivityPage.razor
Tag: 4_16869239191
Line coverage
0%
Covered lines: 0
Uncovered lines: 30
Coverable lines: 30
Total lines: 100
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%
get_ActivityId()100%210%
.ctor()100%210%
OnInitializedAsync()0%4260%
GetButtonDisabled()100%210%
Load()100%210%
OpenDialog()0%620%

File(s)

/home/runner/work/syki/syki/Front/Pages/Student/StudentClassActivityPage.razor

#LineLine coverage
 1@namespace Syki.Front.Pages.Student
 2
 3@page "/student/classes/{classId:guid}/activities/{activityId:guid}"
 4@attribute [Authorize(Roles = "Student")]
 5
 6<SykiPageTitle Title="Atividade" />
 7
 8<MudContainer Class="mb-4 px-4">
 9    <MudBreadcrumbs Items="@_breadcrumbs" Class="px-0" />
 10    <SykiPageHeader Icon="@Icons.Material.Filled.EditNote" Title="@_activity.Title" Typo="Typo.h6" ButtonText="Entregar"
 11    <MudPaper Class="my-4 pa-5">
 12        <MudContainer Class="px-0">
 13            <MudGrid Spacing="3">
 14                <MudItem xs="3" sm="2" md="2" lg="2">
 15                    <SykiLabelText Label="Nota" Text="@_activity.Note.ToString()"/>
 16                </MudItem>
 17                <MudItem xs="5" sm="2" md="2" lg="2">
 18                    <SykiLabelText Label="Tipo" Text="@_activity.Type.GetDescription()"/>
 19                </MudItem>
 20                <MudItem xs="4" sm="2" md="2" lg="2">
 21                    <SykiLabelText Label="Peso (%)" Text="@_activity.Weight.ToString()"/>
 22                </MudItem>
 23                <MudItem xs="6" sm="3" md="3" lg="3">
 24                    <SykiLabelText Label="Criada em" Text="@_activity.CreatedAt.ToLocalTime().Format()"/>
 25                </MudItem>
 26                <MudItem xs="6" sm="3" md="3" lg="3">
 27                    <SykiLabelText Label="Data de entrega" Text="@_activity.GetDueDate()"/>
 28                </MudItem>
 29            </MudGrid>
 30            <MudText Class="mt-4" Style="white-space: pre-line;">
 031                @_activity.Description
 32            </MudText>
 33        </MudContainer>
 34    </MudPaper>
 35</MudContainer>
 36
 37@inject IDialogService DialogService
 38@inject ILocalStorageService LocalStorage
 39@inject IBrowserViewportService BrowserViewportService
 40@inject GetStudentClassActivityClient GetStudentClassActivityClient
 41
 42@code
 43{
 44  [Parameter]
 045  public Guid ClassId { get; set; }
 46
 47  [Parameter]
 048  public Guid ActivityId { get; set; }
 49
 050    private List<CascadingClassDto> _classes = [];
 051    private List<BreadcrumbItem> _breadcrumbs = [];
 52
 053    private StudentClassActivityOut _activity = new();
 54
 55    private Breakpoint _breakpoint;
 56
 57    protected override async Task OnInitializedAsync()
 58    {
 059        _classes = JsonConvert.DeserializeObject<List<CascadingClassDto>>(await LocalStorage.GetItemAsync<string>("Class
 060        var @class = _classes.FirstOrDefault(x => x.Id == ClassId);
 061        if (@class != null)
 62        {
 063            _breadcrumbs.Add(new("Turmas", href: "/", icon: Icons.Material.Filled.CenterFocusStrong));
 064            _breadcrumbs.Add(new(@class.Name, href: $"/student/classes/{@class.Id}"));
 065            _breadcrumbs.Add(new("Atividade", href: $"/student/classes/{@class.Id}/activities/{ActivityId}"));
 66        }
 67
 068        await Load();
 069    }
 70
 71    private bool GetButtonDisabled()
 72    {
 073        return _activity.Type == ClassActivityType.Exam;
 74    }
 75
 76    private async Task Load()
 77    {
 078        _activity = await GetStudentClassActivityClient.Get(ClassId, ActivityId);
 079    }
 80
 81    private async Task OpenDialog()
 82    {
 083        var parameters = new DialogParameters<CreateClassActivityWorkDialog>();
 084        parameters.Add(x => x.ActivityId, ActivityId);
 85
 086        _breakpoint = await BrowserViewportService.GetCurrentBreakpointAsync();
 087        var options = new DialogOptions {
 088            FullWidth = true,
 089            MaxWidth = MaxWidth.Small,
 090            FullScreen = _breakpoint == Breakpoint.Xs,
 091        };
 092        var dialog = await DialogService.ShowAsync<CreateClassActivityWorkDialog>("", parameters, options);
 93
 094        var result = await dialog.Result;
 95
 096        if (result!.Canceled) return;
 97
 098        await Load();
 099    }
 100}