TaskResolver.cs
863 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>
/// 任务属性解析器 - 从Task对象获取属性值
/// @author zzy
/// </summary>
public class TaskResolver : IParameterValueResolver
{
public ParameterSourceType SourceType => ParameterSourceType.Task;
public object? Resolve(ActionParameterDefinition definition, ParameterContext context)
{
if (context.Task == null || string.IsNullOrEmpty(definition.ParameterSourcePath))
return definition.DefaultValue;
var value = PropertyPathResolver.GetValue(context.Task, definition.ParameterSourcePath);
return value ?? definition.DefaultValue;
}
}
}