Beispiel #1
0
        public override void CustomizeTypesInfo(DevExpress.ExpressApp.DC.ITypesInfo typesInfo)
        {
            base.CustomizeTypesInfo(typesInfo);
            var typeInfos = typesInfo.PersistentTypes.Where(info => info.FindAttribute <PessimisticLockingMessageAttribute>() != null);

            foreach (var typeInfo in typeInfos)
            {
                var memberInfo = typeInfo.FindMember("LockedUserMessage");
                if (memberInfo == null)
                {
                    var xpClassInfo = Dictiorary.GetClassInfo(typeInfo.Type);
                    var lockedUserMessageXpMemberInfo = new LockedUserMessageXpMemberInfo(xpClassInfo);
                    lockedUserMessageXpMemberInfo.AddAttribute(new BrowsableAttribute(false));
                    XafTypesInfo.Instance.RefreshInfo(typeInfo);
                }
            }
        }
Beispiel #2
0
        string GetNodeAlias(SelectStatement statement, string filterMemberName)
        {
            if (!TablesDictionary.ContainsKey(statement.TableName))
            {
                var classInfo = Application.Model.BOModel.Select(mclass => Dictiorary.QueryClassInfo(mclass.TypeInfo.Type)).FirstOrDefault(info => info != null && info.TableName == statement.TableName);
                if (classInfo != null && !TablesDictionary.ContainsKey(classInfo.TableName))
                {
                    TablesDictionary.Add(classInfo.TableName, classInfo.ClassType);
                }
                else
                {
                    throw new ArgumentException(statement.TableName);
                }
            }

            var fullName = TablesDictionary[statement.TableName].FullName;

            if (XafTypesInfo.Instance.FindTypeInfo(fullName).OwnMembers.FirstOrDefault(member => member.Name == filterMemberName) == null && statement.SubNodes.Any())
            {
                return(statement.SubNodes[0].Alias);
            }
            return(statement.Alias);
        }