多个对象进入层次结构树C#MVC

时间:2015-12-03 19:54:05

标签: c# asp.net-mvc interface hierarchy

在我的MVC项目中,我有一个层次树辅助类,它在层次树视图中呈现对象。到目前为止,我已经设法列出了一个“事件”列表。对象类型,包括无限量的子事件。

Sample

此外,事件(或子事件)对象可以包含一个或多个警报。我希望我的分层树也为所有事件呈现所有警报。我的HierarchyTree助手类只接受一种类型的Object。这是配置我的节点的代码,目前接受事件对象

u.Events = GetBLLFactory().EventLogic().GetEventsByTemplateID(id.Value).ExtractFromResult();

var eventconfig = new HierarchyTreeItemPropertyConfig<Event>()
            {
                GetIDFunc = e => e.EventID,
                GetNameFunc = e => e.Name,
                GetParentIDFunc = e => e.ParentEventID,
                GetSortOrderFunc = e => e.SortOrder.Value,
                SetNameFunc = (e, name) => e.Name = name,
                SetParentIDFunc = (e, parentID) => e.ParentEventID = parentID,
                SetSortOrderFunc = (e, order) => e.SortOrder = order,
            };

u.EventHierarchyTree = u.Events.ToHierarchyTree(eventconfig);

这是我的模型中的代码,也是围绕Event对象构建的:

public class TemplateItemModel
{
    public HierarchyTree<Event> EventHierarchyTree { get; set; }
}

此外,这些是我的对象属性:

警报

public class Alert : BaseEntity
{
    public int? AlertID { get; set; }
    public int EventID { get; set; }
    public string Name { get; set; }
    public string Color { get; set; }
    public DateTime? Date { get; set; }
    public string Description { get; set; }
    public string Status { get; set; }
}

事件

public class Event : BaseEntity
{
    public int? EventID { get; set; }
    public int TemplateID { get; set; }
    public int? UserRoleID { get; set; }
    public int? ParentEventID { get; set; }
    public string Name { get; set; }
    public string Color { get; set; }
    public string Description { get; set; }
    public string Status { get; set; }
    public DateTime? StartDate { get; set; }
    public DateTime? EndDate { get; set; }
    public int? Duration { get; set; }
    public int? SortOrder { get; set; }
}

我的问题是,如何将一个对象作为事件或警报来提供我的HierarchyTree助手对象。我希望我的HierarchyTree以正确的层次结构顺序呈现两种对象类型:

活动&gt; SubEvent&gt;警报

活动&gt;警报

我非常确定接口是我需要的,但是我对接口的经验很少,我无法弄清楚如何将接口提供给这个Hierarchy助手: - (

非常感谢提前!

0 个答案:

没有答案