RobotTask.TaskExecution.cs
591 Bytes
using System.Linq;
namespace Rcs.Domain.Entities;
public partial class RobotTask
{
/// <summary>
/// 获取下一条可执行子任务。
/// 规则:按 <see cref="RobotSubTask.Sequence"/> 升序,取状态为 Pending/Assigned 的第一条。
/// </summary>
/// <returns>下一条可执行子任务;不存在返回 null</returns>
public RobotSubTask? GetNextExecutableSubTask()
{
return SubTasks
.OrderBy(st => st.Sequence)
.FirstOrDefault(st => st.Status == TaskStatus.Pending || st.Status == TaskStatus.Assigned);
}
}