All pastes #626517 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-07-19 18:29 UTC
rendered paste body
        public bool DeepDelete(SpecificationTestColumnLayout entity)
        {
            bool success = false;

            // Create a Transaction
            TransactionManager DbTransactionManager = new TransactionManager(DbConnectionString);

            try
            {
                // First We should Deep Load All Child Objects
                Type[] ChildObjects = new Type[] { typeof(TList<TestColumnObjectLayout>) };
                DeepLoad(entity, true, DeepLoadType.IncludeChildren, ChildObjects);

                // Start Transaction
                DbTransactionManager.BeginTransaction();

                // Try Deleting Children
                if (DataRepository.TestColumnObjectLayoutDAL.Delete(DbTransactionManager, entity.TestColumnObjectLayoutCollection) == entity.TestColumnObjectLayoutCollection.Count)
                {
                    // Try Deleting the Parent
                    if (DataRepository.SpecificationTestColumnLayoutDAL.Delete(DbTransactionManager, entity))
                    {
                        // Yeah Do the Commit
                        success = true;
                        DbTransactionManager.Commit();
                    }
                    else
                    {
                        // Cancel this attempt
                        DbTransactionManager.Rollback();
                    }
                }
                else
                {
                    // Cancel this attempt
                    DbTransactionManager.Rollback();
                }
            }
            catch (Exception ex)
            {
                // Cancel this attempt
                DbTransactionManager.Rollback();
                throw ex;
            }
            finally
            {
                // Destroy the Transaction
                DbTransactionManager.Dispose();
            }

            // Return
            return success;
        }