@typeparam TService where TService : RackPeek.Domain.Resources.Services.Service
@Service.Name
@if (!_isEditing) { } else { }
IP
@if (_isEditing) { } else if (!string.IsNullOrWhiteSpace(Service.Network?.Ip)) {
@Service.Network!.Ip
}
Port
@if (_isEditing) { } else if (Service.Network?.Port.HasValue == true) {
@Service.Network.Port
}
Protocol
@if (_isEditing) { } else if (!string.IsNullOrWhiteSpace(Service.Network?.Protocol)) {
@Service.Network!.Protocol
}
URL
@if (_isEditing) { } else if (!string.IsNullOrWhiteSpace(Service.Network?.Url)) { @Service.Network.Url }
Runs On
@if (_isEditing) { } else if (!string.IsNullOrWhiteSpace(Service.RunsOn)) { @Service.RunsOn }
@code { [Parameter][EditorRequired] public TService Service { get; set; } = default!; [Parameter] public EventCallback OnSave { get; set; } private bool _isEditing; private ServiceEditModel _edit = new(); void BeginEdit() { _edit = ServiceEditModel.From(Service); _isEditing = true; } async Task Save() { _isEditing = false; await OnSave.InvokeAsync(_edit); } void Cancel() { _isEditing = false; } }