Example #1
0
        public static QLPart GetPropertyValue(this QLEntity entity, string propertyName)
        {
            //if (_lastProperty == propertyName && _lastClassName == entity.ClassName && _lastIndex != -1)
            //    return _lastIsDirect ? entity.QLDirectList[_lastIndex] : entity.QlInverseList[_lastIndex];

            var _lastIndex1 = Repository.DirectPropertyIndex(entity.ClassName, propertyName);

            if (_lastIndex1 != -1)
            {
                _lastClassName = entity.ClassName;
                _lastProperty  = propertyName;
                _lastIsDirect  = true;
                return(entity.QLDirectList[_lastIndex1]);
            }

            var _lastIndex2 = Repository.InversePropertyIndex(entity.ClassName, propertyName);

            if (_lastIndex2 != -1)
            {
                _lastClassName = entity.ClassName;
                _lastProperty  = propertyName;
                _lastIsDirect  = false;
                return(entity.QlInverseList[_lastIndex2]);
            }

            return(null);
        }
Example #2
0
        public void SetInversePropertyVal(QLEntity entity, string propertyName, QLEntityId qlEntityId, bool deleteOld)
        {
            var index = repository.InversePropertyIndex(entity.ClassName, propertyName);

            var part = entity.QlInverseList.List[index];

            if (deleteOld || (part.QLEntityId == null && part.QLList == null))
            {
                entity.QlInverseList.List[index] = new QLPart()
                {
                    QLEntityId = qlEntityId
                }
            }
            ;
            else
            {
                if (part.QLEntityId != null)
                {
                    var list = new QLList();
                    list.Add(new QLPart()
                    {
                        QLEntityId = part.QLEntityId
                    });
                    list.Add(new QLPart()
                    {
                        QLEntityId = qlEntityId
                    });

                    part.QLEntityId = null;
                    part.QLList     = list;
                }
                else
                {
                    part.QLList.Add(new QLPart()
                    {
                        QLEntityId = qlEntityId
                    });
                }
            }
        }