NodeResolver.cs
866 Bytes
using Rcs.Domain.Entities;
using Rcs.Domain.Enums;
using Rcs.Domain.Models;
using Rcs.Domain.Services;
using Rcs.Shared.Utils;
namespace Rcs.Infrastructure.Services.ParameterResolvers
{
/// <summary>
/// 节点属性解析器 - 从MapNode对象获取属性值
/// @author zzy
/// </summary>
public class NodeResolver : IParameterValueResolver
{
public ParameterSourceType SourceType => ParameterSourceType.Node;
public object? Resolve(ActionParameterDefinition definition, ParameterContext context)
{
if (context.Node == null || string.IsNullOrEmpty(definition.ParameterSourcePath))
return definition.DefaultValue;
var value = PropertyPathResolver.GetValue(context.Node, definition.ParameterSourcePath);
return value ?? definition.DefaultValue;
}
}
}