@using System.ComponentModel.DataAnnotations @using RackPeek.Domain.Resources.SubResources @if (IsOpen) {
@(IsEdit ? "Modify NIC" : "Add NIC")
@foreach (var type in Nic.ValidNicTypes) { }
@if (IsEdit) { } else { }
} @code { [Parameter] public bool IsOpen { get; set; } [Parameter] public EventCallback IsOpenChanged { get; set; } [Parameter] public Nic? Value { get; set; } [Parameter] public EventCallback OnSubmit { get; set; } [Parameter] public EventCallback OnDelete { get; set; } [Parameter] public string? TestIdPrefix { get; set; } private string BaseTestId => string.IsNullOrWhiteSpace(TestIdPrefix) ? "nic-modal" : $"{TestIdPrefix}-nic-modal"; private NicFormModel _model = new(); private bool IsEdit => Value is not null; protected override void OnParametersSet() { if (IsOpen) { _model = Value is null ? new NicFormModel() : new NicFormModel { Type = Value.Type, Speed = Value.Speed, Ports = Value.Ports }; } } private async Task HandleValidSubmit() { var nic = new Nic { Type = _model.Type, Speed = _model.Speed, Ports = _model.Ports }; await OnSubmit.InvokeAsync(nic); await Close(); } private async Task HandleDelete() { if (Value is not null) { await OnDelete.InvokeAsync(Value); await Close(); } } private async Task Cancel() { await Close(); } private async Task Close() { _model = new NicFormModel(); await IsOpenChanged.InvokeAsync(false); } private class NicFormModel { [Required] public string? Type { get; set; } [Range(1, 400)] public double? Speed { get; set; } [Range(1, 128)] public int? Ports { get; set; } } }