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;
}
}