コード例 #1
0
 public override void UpdateNode(ModelNode node)
 {
     foreach (IModelClass classInfo in node.Application.BOModel)
     {
         if (classInfo.TypeInfo.IsPersistent)
         {
             if (!string.IsNullOrEmpty(classInfo.Name))
             {
                 foreach (string method in LinqCollectionSourceHelper.GetXPQueryMethods(classInfo.TypeInfo.Type))
                 {
                     string id           = ModelListViewNodesGenerator.GetListViewId(classInfo.TypeInfo.Name) + "_" + method + LinqCollectionSource.DefaultSuffix;
                     var    listViewInfo = (IModelListView)(node.Application.Views[id] ??
                                                            node.AddNode <IModelListView>(id));
                     listViewInfo.ModelClass = classInfo;
                     ((IModelListViewLinq)listViewInfo).XPQueryMethod = method;
                 }
             }
         }
     }
 }
コード例 #2
0
        public override void UpdateNode(ModelNode node)
        {
            var modelBoModel = (IModelBOModel)node;

            foreach (var modelClass in modelBoModel)
            {
                IEnumerable <CustomQueryPropertyAttribute> customQueryPropertyAttributes =
                    LinqCollectionSourceHelper.GetQueryProperties(modelClass.TypeInfo.Type);
                foreach (var customQueryPropertyAttribute in customQueryPropertyAttributes)
                {
                    if (modelClass.TypeInfo.FindMember(customQueryPropertyAttribute.Name) == null)
                    {
                        var memberInfo = modelClass.TypeInfo.CreateMember(customQueryPropertyAttribute.Name, customQueryPropertyAttribute.Type);
                        memberInfo.AddAttribute(new BrowsableAttribute(false));
                        memberInfo.AddAttribute(new NonPersistentAttribute());
                        var modelRuntimeMember = modelClass.OwnMembers.AddNode <IModelRuntimeNonPersistentMember>(customQueryPropertyAttribute.Name);
                        modelRuntimeMember.Type = customQueryPropertyAttribute.Type;
                    }
                }
            }
        }
コード例 #3
0
        public override void UpdateNode(ModelNode node)
        {
            var linqViewInfo = node.Parent as IModelListViewLinq;

            if (linqViewInfo != null && !string.IsNullOrEmpty(linqViewInfo.XPQueryMethod))
            {
                var listViewInfo = (IModelListView)linqViewInfo;
                IEnumerable <CustomQueryPropertyAttribute> customQueryPropertyAttributes = LinqCollectionSourceHelper.GetQueryProperties(listViewInfo.ModelClass.TypeInfo.Type, linqViewInfo.XPQueryMethod);
                if (customQueryPropertyAttributes != null)
                {
                    AddColumnsNode(listViewInfo);
                    RemoveDefaultColumns(listViewInfo, customQueryPropertyAttributes);
                    AddQueryColumns(listViewInfo, customQueryPropertyAttributes);
                }
            }
        }