using System; using System.Linq; using CommunityToolkit.Mvvm.ComponentModel; namespace BetterGenshinImpact.ViewModel.Pages.Component; /// /// 任务定义模型,用于左侧列表显示 /// public partial class GearTaskDefinitionViewModel : ObservableObject { [ObservableProperty] private string _name = string.Empty; [ObservableProperty] private string _description = string.Empty; [ObservableProperty] private bool _isSelected = false; [ObservableProperty] private DateTime _createdTime = DateTime.Now; [ObservableProperty] private DateTime _modifiedTime = DateTime.Now; /// /// 任务根节点 /// [ObservableProperty] private GearTaskViewModel? _rootTask; public GearTaskDefinitionViewModel() { } public GearTaskDefinitionViewModel(string name, string description = "") { Name = name; Description = description; RootTask = new GearTaskViewModel(name, true); } /// /// 获取任务总数(包括所有子任务) /// /// public int GetTotalTaskCount() { if (RootTask == null) return 0; return 1 + Enumerable.Count(RootTask.GetAllChildren()); } /// /// 获取启用的任务数量 /// /// public int GetEnabledTaskCount() { if (RootTask == null) return 0; var count = RootTask.IsEnabled ? 1 : 0; count += Enumerable.Count(RootTask.GetAllChildren(), t => t.IsEnabled); return count; } }