protected void FillAttributesTree() { using (var session = Hb8Factory.CreateSession()) { var attributesSchemas = (from n in session.Query<UM_AttributeSchema>() where n.DateDeleted == null select n).ToList(); var converter = new AttributeSchemaEntityModelConverter(session); var model = new AttributeSchemasModel { List = attributesSchemas.Select(n => converter.Convert(n)).ToList() }; attributesSchemasControl.Model = model; attributesSchemasControl.DataBind(); } }
public static IEnumerable <TreeNodeUnit> CreateListOfTree(ISession session, AttributeSchemasModel model) { if (model == null || model.List == null) { yield break; } var projects = (from n in session.Query <UM_Project>() where n.DateDeleted == null orderby n.Name select n).ToList(); var globalProjectEntity = new UM_Project { ID = Guid.Empty, Name = "Global", }; projects.Insert(0, globalProjectEntity); var schemasLp = model.List.ToLookup(n => n.ProjectID.GetValueOrDefault()); foreach (var project in projects) { var projectUnit = new TreeNodeUnit { ID = project.ID, Name = project.Name, Type = "Project" }; yield return(projectUnit); var schemas = schemasLp[project.ID]; foreach (var schema in schemas) { var schemaUnit = new TreeNodeUnit { ID = schema.ID, Name = schema.Name, ParentID = project.ID, Type = "Schema" }; yield return(schemaUnit); var fields = schema.Fields; if (fields != null && fields.List != null) { foreach (var field in schema.Fields.List) { var nodeUnit = new TreeNodeUnit { ID = field.ID, Name = field.Name, ParentID = schema.ID, Type = "Field" }; yield return(nodeUnit); } } } } }