@inherits MudComponentBase
Edit Node: @Node.NodeId
Actions
@foreach (var act in Node.Actions)
{
@foreach (var at in Enum.GetValues())
{
@at
}
NONE
SOFT
HARD
Action Parameters
@{
var parameters = act.ActionParameters ?? Array.Empty();
}
@foreach (var p in parameters.Cast().ToList())
{
var param = p; // capture cho lambda
}
Add Parameter
Remove Action
}
Add Action
Cancel
Save
@code {
[CascadingParameter] public IMudDialogInstance MudDialog { get; set; } = default!;
[Parameter] public Node Node { get; set; } = default!;
private void Cancel() => MudDialog.Cancel();
private void Submit() => MudDialog.Close(DialogResult.Ok(true));
private void RemoveAction(VDA5050.InstantAction.Action actToRemove)
{
Node.Actions = Node.Actions
.Where(a => a != actToRemove)
.ToArray();
}
private void AddNewAction()
{
Node.Actions = Node.Actions
.Append(new VDA5050.InstantAction.Action
{
ActionId = Guid.NewGuid().ToString(),
ActionType = ActionType.startPause.ToString(),
BlockingType = "NONE",
ActionParameters = Array.Empty()
})
.ToArray();
}
private void AddParameter(VDA5050.InstantAction.Action act)
{
var newParam = new UiActionParameter();
if (act.ActionParameters == null || act.ActionParameters.Length == 0)
{
act.ActionParameters = new[] { newParam };
}
else
{
var list = act.ActionParameters.ToList();
list.Add(newParam);
act.ActionParameters = list.ToArray();
}
}
private void RemoveParameter(VDA5050.InstantAction.Action act, UiActionParameter paramToRemove)
{
if (act.ActionParameters == null || act.ActionParameters.Length == 0)
return;
act.ActionParameters = act.ActionParameters
.Where(p => p != paramToRemove) // so sánh reference
.ToArray();
}
// UiActionParameter vẫn giữ như cũ trong trang chính
public class UiActionParameter : ActionParameter
{
[JsonIgnore]
public string ValueString
{
get => Value?.ToString() ?? "";
set => Value = value;
}
}
}