示例#1
0
        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();
            }
        }
示例#2
0
        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);
                        }
                    }
                }
            }
        }