Ejemplo n.º 1
0
 public static void Collect(ISupportChangedMembers supportChangedMembers, string changedPropertyName) {
     if (supportChangedMembers.ChangedProperties == null)
         supportChangedMembers.ChangedProperties = new HashSet<string>();
     string memberName = GetPersistentName(supportChangedMembers, changedPropertyName);
     if (memberName != null && !supportChangedMembers.ChangedProperties.Contains(memberName)) {
         supportChangedMembers.ChangedProperties.Add(memberName);
     }
 }
Ejemplo n.º 2
0
 public static void CollectOnSave(ISupportChangedMembers supportChangedMembers) {
     var nestedUnitOfWork = supportChangedMembers.Session as NestedUnitOfWork;
     if (nestedUnitOfWork != null) {
         var parentitem = (nestedUnitOfWork).GetParentObject(supportChangedMembers);
         IEnumerable<string> memberInfos = supportChangedMembers.ChangedProperties.Where(changedProperty => !parentitem.ChangedProperties.Contains(changedProperty));
         foreach (var changedProperty in memberInfos) {
             parentitem.ChangedProperties.Add(changedProperty);
         }
     }
     supportChangedMembers.ChangedProperties = null;
 }
Ejemplo n.º 3
0
        public static void Collect(ISupportChangedMembers supportChangedMembers, string changedPropertyName)
        {
            if (supportChangedMembers.ChangedProperties == null)
            {
                supportChangedMembers.ChangedProperties = new HashSet <string>();
            }
            string memberName = GetPersistentName(supportChangedMembers, changedPropertyName);

            if (memberName != null && !supportChangedMembers.ChangedProperties.Contains(memberName))
            {
                supportChangedMembers.ChangedProperties.Add(memberName);
            }
        }
Ejemplo n.º 4
0
        public static void CollectOnSave(ISupportChangedMembers supportChangedMembers)
        {
            var nestedUnitOfWork = supportChangedMembers.Session as NestedUnitOfWork;

            if (nestedUnitOfWork != null)
            {
                var parentitem = (nestedUnitOfWork).GetParentObject(supportChangedMembers);
                IEnumerable <string> memberInfos = supportChangedMembers.ChangedProperties.Where(changedProperty => !parentitem.ChangedProperties.Contains(changedProperty));
                foreach (var changedProperty in memberInfos)
                {
                    parentitem.ChangedProperties.Add(changedProperty);
                }
            }
            supportChangedMembers.ChangedProperties = null;
        }
Ejemplo n.º 5
0
 private static string GetPersistentName(ISupportChangedMembers supportChangedMembers, string propertyName) {
     var classInfo = supportChangedMembers.Session.GetClassInfo(supportChangedMembers);
     var persistentMember = classInfo.GetPersistentMember(propertyName);
     if (persistentMember == null) {
         var memberInfo = classInfo.FindMember(propertyName);
         if (memberInfo != null && memberInfo.IsAliased) {
             var pa = (PersistentAliasAttribute)memberInfo.GetAttributeInfo(typeof(PersistentAliasAttribute));
             CriteriaOperator criteria = CriteriaOperator.Parse(pa.AliasExpression);
             var operandProperty = criteria as OperandProperty;
             if (!(ReferenceEquals(operandProperty, null))) {
                 string[] path = (operandProperty).PropertyName.Split('.');
                 XPMemberInfo xpMemberInfo = path.Aggregate<string, XPMemberInfo>(null, (current, pn) => current == null ? classInfo.GetMember(pn) : current.ReferenceType.GetMember(pn));
                 return xpMemberInfo != null ? xpMemberInfo.Name : null;
             }
         }
     }
     return persistentMember != null ? persistentMember.Name : null;
 }
Ejemplo n.º 6
0
        private static string GetPersistentName(ISupportChangedMembers supportChangedMembers, string propertyName)
        {
            var classInfo        = supportChangedMembers.Session.GetClassInfo(supportChangedMembers);
            var persistentMember = classInfo.GetPersistentMember(propertyName);

            if (persistentMember == null)
            {
                var memberInfo = classInfo.FindMember(propertyName);
                if (memberInfo != null && memberInfo.IsAliased)
                {
                    var pa = (PersistentAliasAttribute)memberInfo.GetAttributeInfo(typeof(PersistentAliasAttribute));
                    CriteriaOperator criteria = CriteriaOperator.Parse(pa.AliasExpression);
                    var operandProperty       = criteria as OperandProperty;
                    if (!(ReferenceEquals(operandProperty, null)))
                    {
                        string[]     path         = (operandProperty).PropertyName.Split('.');
                        XPMemberInfo xpMemberInfo = path.Aggregate <string, XPMemberInfo>(null, (current, pn) => current == null ? classInfo.GetMember(pn) : current.ReferenceType.GetMember(pn));
                        return(xpMemberInfo != null ? xpMemberInfo.Name : null);
                    }
                }
            }
            return(persistentMember != null ? persistentMember.Name : null);
        }
Ejemplo n.º 7
0
 bool MemberHasChanged(ISupportChangedMembers supportChangedMembers, XPMemberInfo m) {
     return m.HasAttribute(typeof(PersistentAttribute)) || m.IsKey || m is ServiceField ||
            supportChangedMembers.ChangedProperties.Contains(m.Name);
 }
Ejemplo n.º 8
0
 bool MemberHasChanged(ISupportChangedMembers supportChangedMembers, XPMemberInfo m)
 {
     return(m.IsKey || m is ServiceField ||
            supportChangedMembers.ChangedProperties.Contains(m.Name));
 }
Ejemplo n.º 9
0
 bool MemberHasChanged(ISupportChangedMembers supportChangedMembers, XPMemberInfo m)
 {
     return(m.HasAttribute(typeof(PersistentAttribute)) || m.IsKey || m is ServiceField ||
            supportChangedMembers.ChangedProperties.Contains(m.Name));
 }
Ejemplo n.º 10
0
 bool MemberHasChanged(ISupportChangedMembers supportChangedMembers, XPMemberInfo m) {
     return m.IsKey || m is ServiceField ||
            supportChangedMembers.ChangedProperties.Contains(m.Name);
 }