@using System.ComponentModel.DataAnnotations
@using RackPeek.Domain.Resources.SubResources
@if (IsOpen)
{
@(IsEdit ? "Modify RAM" : "Add RAM")
@if (IsEdit)
{
}
else
{
}
}
@code {
[Parameter] public bool IsOpen { get; set; }
[Parameter] public EventCallback IsOpenChanged { get; set; }
[Parameter] public Ram? Value { get; set; }
[Parameter] public EventCallback OnSubmit { get; set; }
[Parameter] public string? TestIdPrefix { get; set; }
private string BaseTestId =>
string.IsNullOrWhiteSpace(TestIdPrefix)
? "ram-modal"
: $"{TestIdPrefix}-ram-modal";
private RamFormModel _model = new();
private bool IsEdit => Value is not null;
protected override void OnParametersSet()
{
if (IsOpen)
{
_model = Value is null
? new RamFormModel()
: new RamFormModel
{
Size = Value.Size,
Mts = Value.Mts
};
}
}
private async Task HandleClear()
{
await OnSubmit.InvokeAsync(null);
await Close();
}
private async Task HandleValidSubmit()
{
var ram = new Ram
{
Size = _model.Size,
Mts = _model.Mts
};
await OnSubmit.InvokeAsync(ram);
await Close();
}
private async Task Cancel()
{
await Close();
}
private async Task Close()
{
_model = new RamFormModel();
await IsOpenChanged.InvokeAsync(false);
}
private class RamFormModel
{
[Range(0, 1024)] public double? Size { get; set; }
[Range(1, 10000)] public int? Mts { get; set; }
}
}