< Summary - Syki

Information
Class: Syki.Front.Features.Academic.CreateAcademicPeriod.CreateAcademicPeriodDialog
Assembly: Front
File(s): /home/runner/work/syki/syki/Front/Features/Academic/CreateAcademicPeriod/CreateAcademicPeriodDialog.razor
Tag: 4_16869239191
Line coverage
0%
Covered lines: 0
Uncovered lines: 23
Coverable lines: 23
Total lines: 91
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 6
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_MudDialog()100%210%
.ctor()100%210%
GetIdHelperText()100%210%
Submit()0%4260%
Cancel()100%210%

File(s)

/home/runner/work/syki/syki/Front/Features/Academic/CreateAcademicPeriod/CreateAcademicPeriodDialog.razor

#LineLine coverage
 1@using System.Globalization
 2
 3@namespace Syki.Front.Features.Academic.CreateAcademicPeriod
 4
 5<MudDialog Class="pb-2" Style="min-height: 450px" DefaultFocus="DefaultFocus.None">
 6    <TitleContent>
 7        <SykiDialogTitle Text="Novo Período Acadêmico" />
 8    </TitleContent>
 9    <DialogContent>
 010        <MudForm @ref="@_form" Class="py-1">
 011            <MudGrid Spacing="2">
 012                <MudItem xs="12">
 013                    <MudNumericField
 014                        T="decimal"
 015                        @bind-Value="@_id"
 16                        Max="2050.1M"
 17                        MaxLength="6"
 18                        Min="1970.1M"
 19                        Format="####.#"
 20                        Culture="CultureInfo.InvariantCulture"
 21                        HideSpinButtons="true"
 22                        Variant="Variant.Outlined"
 23                        Margin="Margin.Dense"
 24                        HelperText="Exemplo: 2024.1"
 25                        Required="true"
 26                        Label="Id"
 27                        RequiredError="Informe!"
 28                    />
 29                </MudItem>
 30                <MudItem xs="12">
 31                    <SykiDatePicker Label="Início" @bind-Date="@_start" Editable="false" />
 32                </MudItem>
 33                <MudItem xs="12" Class="mb-4">
 34                    <SykiDatePicker Label="Fim" @bind-Date="@_end" Editable="false" />
 35                </MudItem>
 36            </MudGrid>
 37        </MudForm>
 38    </DialogContent>
 39    <DialogActions>
 40        <DialogCancelButton OnClick="@Cancel"/>
 41        <SykiProgressCircular Loading="@_loading"/>
 42        <DialogSaveButton OnClick="@Submit"/>
 43    </DialogActions>
 44</MudDialog>
 45
 46@inject ISnackbar Snackbar
 47@inject CreateAcademicPeriodClient Client
 48
 49@code
 50{
 51    [CascadingParameter]
 052    IMudDialogInstance MudDialog { get; set; }
 53
 54    private MudForm _form;
 55    private bool _loading;
 56
 057    private decimal _id = DateTime.UtcNow.Year + 0.1M;
 58    private DateTime? _start;
 59    private DateTime? _end;
 60
 61    private string GetIdHelperText()
 62    {
 063        return $"Exemplo: {DateTime.UtcNow.Year + 0.1M}";
 64    }
 65
 66    private async Task Submit()
 67    {
 068        if (_loading) return;
 69
 070        await _form.Validate();
 071        if (!_form.IsValid) return;
 72
 073        var start = DateOnly.FromDateTime(_start!.Value);
 074        var end = DateOnly.FromDateTime(_end!.Value);
 75
 076        _loading = true;
 077        var response = await Client.Create(_id.ToString("####.#", CultureInfo.InvariantCulture), start, end);
 078        if (response.IsSuccess)
 79        {
 080            MudDialog.Close(DialogResult.Ok(true));
 081            Snackbar.Add("Período acadêmico cadastrado com sucesso!", Severity.Success);
 82        }
 83        else
 84        {
 085            Snackbar.Add(response.Error.Message, Severity.Error);
 86        }
 087        _loading = false;
 088    }
 89
 090    private void Cancel() => MudDialog.Cancel();
 91}