Esempio n. 1
0
 internal override void AddDirtyChildrenToTransactionCommitter(TransactionCommitter transactionCommitter)
 {
     foreach (var businessObject in GetDirtyChildren())
     {
         if (this.OwningBOHasForeignKey)
         {
             transactionCommitter.InsertBusinessObject(businessObject);
         }
         else
         {
             transactionCommitter.AddBusinessObject(businessObject);
         }
     }
     if (this.RelationshipDef.RelationshipType == RelationshipType.Association)
     {
         if (IsRelatedBOPropsDirty() && _relatedBo != null && !_relatedBo.Status.IsNew)
         {
             transactionCommitter.AddAddedChildBusinessObject(this, _relatedBo);
         }
         else if (IsRemoved)
         {
             transactionCommitter.AddRemovedChildBusinessObject(this, RemovedBO);
         }
     }
 }
Esempio n. 2
0
        /// <summary>
        /// DereferenceChildren
        /// </summary>
        /// <param name="committer"></param>
        internal override void DereferenceChildren(TransactionCommitter committer)
        {
            TBusinessObject businessObject = GetRelatedObject();

            if (businessObject != null)
            {
                DereferenceChild(committer, businessObject);
            }
        }
Esempio n. 3
0
        internal override void DereferenceRemovedChildren(TransactionCommitter committer)
        {
            IList col = this.CurrentBusinessObjectCollection.RemovedBusinessObjects;

            for (int i = col.Count - 1; i >= 0; i--)
            {
                var bo = (IBusinessObject)col[i];
                DereferenceChild(committer, bo);
            }
        }
Esempio n. 4
0
        internal override void DeleteMarkedForDeleteChildren(TransactionCommitter committer)
        {
            IList col = CurrentBusinessObjectCollection.MarkedForDeleteBusinessObjects;

            for (int i = col.Count - 1; i >= 0; i--)
            {
                var bo = (IBusinessObject)col[i];
                DeleteChild(committer, bo);
            }
        }
Esempio n. 5
0
        internal override void DereferenceChildren(TransactionCommitter committer)
        {
            IBusinessObjectCollection col = BusinessObjectCollection;

            for (var i = col.Count - 1; i >= 0; i--)
            {
                var bo = col[i];
                DereferenceChild(committer, bo);
            }
        }
Esempio n. 6
0
 internal void DeleteChildren(TransactionCommitter transactionCommitter)
 {
     foreach (RelationshipBase relationship in this)
     {
         relationship.DeleteMarkedForDeleteChildren(transactionCommitter);
         if (relationship.DeleteParentAction == DeleteParentAction.DeleteRelated)
         {
             relationship.DeleteChildren(transactionCommitter);
         }
     }
 }
Esempio n. 7
0
//
//        private bool BoIsDeletedAndDeleteActionIsDeleteRelated(IRelationship relationship)
//        {
//            return (this._bo.Status.IsDeleted && relationship.DeleteParentAction == DeleteParentAction.DeleteRelated );
//        }

        internal void DereferenceChildren(TransactionCommitter transactionCommitter)
        {
            foreach (RelationshipBase relationship in this)
            {
                if (relationship.DeleteParentAction == DeleteParentAction.DereferenceRelated)
                {
                    relationship.DereferenceChildren(transactionCommitter);
                }
                relationship.DereferenceRemovedChildren(transactionCommitter);
            }
        }
Esempio n. 8
0
 /// <summary>
 /// DereferenceThe Child <see cref="IBusinessObject"/> identified by <paramref name="bo"/>
 /// </summary>
 /// <param name="committer">The transaction commtter responsible for persisting this dereference.</param>
 /// <param name="bo">The Business Object being dereferenced.</param>
 protected void DereferenceChild(TransactionCommitter committer, IBusinessObject bo)
 {
     foreach (RelPropDef relPropDef in RelationshipDef.RelKeyDef)
     {
         bo.SetPropertyValue(relPropDef.RelatedClassPropName, null);
     }
     if (bo.Status.IsNew)
     {
         return;
     }
     committer.ExecuteTransactionToDataSource(committer.CreateTransactionalBusinessObject(bo));
 }
Esempio n. 9
0
        /// <summary>
        /// Deletes the Child Bo identified by <paramref name="bo"/>
        /// </summary>
        /// <param name="committer"></param>
        /// <param name="bo"></param>
        protected virtual void DeleteChild(TransactionCommitter committer, IBusinessObject bo)
        {
            if (bo == null)
            {
                return;
            }
            if (!bo.Status.IsDeleted)
            {
                bo.MarkForDelete();
            }
//            if (bo.Status.IsNew) return;
            committer.ExecuteTransactionToDataSource(committer.CreateTransactionalBusinessObject(bo));
        }
Esempio n. 10
0
        internal override void DeleteChildren(TransactionCommitter committer)
        {
            IBusinessObjectCollection col = BusinessObjectCollection;

            for (var i = col.Count - 1; i >= 0; i--)
            {
                var businessObject = col[i];
                if (!businessObject.Status.IsNew)
                {
                    DeleteChild(committer, businessObject);
                }
            }
        }
Esempio n. 11
0
        internal void AddDirtyChildrenToTransactionCommitter(TransactionCommitter transactionCommitter)
        {
            if (_bo.Status.IsDeleted)
            {
                return;
            }

            foreach (RelationshipBase relationship in this)
            {
//                if (BoIsDeletedAndDeleteActionIsDeleteRelated(relationship)) continue;
                relationship.AddDirtyChildrenToTransactionCommitter(transactionCommitter);
            }
        }
Esempio n. 12
0
        internal override void AddDirtyChildrenToTransactionCommitter(TransactionCommitter transactionCommitter)
        {
            if (!_boCol.IsValueCreated)
            {
                return;
            }
            var currentCol = _boCol.Value;

            foreach (TBusinessObject businessObject in GetDirtyChildren())
            {
                transactionCommitter.AddBusinessObject(businessObject);
            }
            if (!this.OwningBO.Status.IsDeleted)
            {
                foreach (TBusinessObject businessObject in currentCol.AddedBusinessObjects)
                {
                    transactionCommitter.AddAddedChildBusinessObject(this, businessObject);
                }
            }
            foreach (TBusinessObject businessObject in currentCol.RemovedBusinessObjects)
            {
                transactionCommitter.AddRemovedChildBusinessObject(this, businessObject);
            }
        }
Esempio n. 13
0
 /// <summary>
 /// Adds all the marked for deleted children to the transaction committer and commits it.
 /// </summary>
 /// <param name="committer"></param>
 internal abstract void DeleteMarkedForDeleteChildren(TransactionCommitter committer);
Esempio n. 14
0
 /// <summary>
 /// Dereferences the Removed Children and adds the dereference transactionItem to the transaction committer
 /// </summary>
 /// <param name="committer"></param>
 internal abstract void DereferenceRemovedChildren(TransactionCommitter committer);
Esempio n. 15
0
 /// <summary>
 /// Adds all dirty children to the <see cref="TransactionCommitter"/>
 /// </summary>
 /// <param name="committer"></param>
 internal abstract void AddDirtyChildrenToTransactionCommitter(TransactionCommitter committer);
Esempio n. 16
0
 /// <summary>
 /// Delete Children
 /// </summary>
 /// <param name="committer"></param>
 internal override void DeleteChildren(TransactionCommitter committer)
 {
     DeleteChild(committer, GetRelatedObject());
 }
Esempio n. 17
0
 internal override void DereferenceRemovedChildren(TransactionCommitter committer)
 {
     //DO Nothing Single relationship does not store children;
 }
Esempio n. 18
0
 internal override void DeleteMarkedForDeleteChildren(TransactionCommitter committer)
 {
     //Do nothing single relationship does not have children
 }