using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CustomOpenAddins.Models
{
public class BaseItem
{
public BaseItem(string name)
{
Name = name;
}
public string Name { get; }
}
///
/// 一级开项
///
public class PrimaryItem : BaseItem
{
public PrimaryItem(string name, SheetTable table) : base(name)
{
Table = table;
SubCategories = new HashSet();
}
///
/// 表名
///
public SheetTable Table { get; set; }
public SubItem this[int index]
{
get => SubCategories.ElementAt(index);
}
public override string ToString()
{
StringBuilder sb = new StringBuilder($"<主项>{Name};");
if (SubCategories.Count == 0)
{
return sb.Append("无;").ToString();
}
foreach (var item in SubCategories)
{
sb.AppendLine($"{item}");
}
return sb.ToString();
}
///
/// 子类项目
///
public HashSet SubCategories { get; private set; }
public SubItem AddSub(string subName)
{
var sub = new SubItem(subName, this);
if (SubCategories == null)
{
SubCategories = new HashSet();
}
SubCategories.Add(sub);
return sub;
}
public void AddSubCategories(List subs)
{
if (SubCategories == null)
{
SubCategories = new HashSet();
}
subs.ForEach(x =>
{
x.Primary = this;
SubCategories.Add(x);
});
}
}
}