@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; } } }