예제 #1
0
        /// <summary>
        /// Does the database operation on the database server.
        /// </summary>
        /// <param name="dataFile">The Xml file that is to be used on the database.</param>
        /// <param name="schemaFile">The Xsd file that is to be used on the database.</param>
        /// <param name="dbOperationFlag">The database operation to perform on the database server</param>
        private void PerformDbOperation(string dataFile, string schemaFile, DbOperationFlag dbOperationFlag)
        {
            var sqlUnitTest = new SqlUnitTest(_connectionString);

            sqlUnitTest.ReadXmlSchema(schemaFile);
            sqlUnitTest.ReadXml(dataFile);
            sqlUnitTest.PerformDbOperation(dbOperationFlag);
        }
예제 #2
0
 internal SqlDbUnitTest SetUpDatabase(string connectionString, Stream xsdStream, Stream dataStream, DbOperationFlag operation)
 {
     Assert.IsNotNull(xsdStream);
     Assert.IsNotNull(dataStream);
     SqlDbUnitTest dbUnitTest = new SqlDbUnitTest(connectionString);
     dbUnitTest.ReadXmlSchema(xsdStream);
     dbUnitTest.ReadXml(dataStream);
     dbUnitTest.PerformDbOperation(operation);
     return dbUnitTest;
 }
예제 #3
0
        protected INDbUnitTest SetUpDatabase(DbOperationFlag operation, Stream datasetStream = null)
        {
            Assert.IsNotNull(DatabaseSchema);

            SetUpNhibernateSession();

            INDbUnitTest dbUnitTest = new SqlDbUnitTest(this.ConnectionString);
            dbUnitTest.ReadXmlSchema(this.DatabaseSchema);
            if(datasetStream != null) dbUnitTest.ReadXml(datasetStream);

            dbUnitTest.PerformDbOperation(operation);

            return dbUnitTest;
        }
예제 #4
0
        protected INDbUnitTest SetUpDatabase(DbOperationFlag operation, Stream datasetStream = null)
        {
            Assert.IsNotNull(DatabaseSchema);

            SetUpNhibernateSession();

            INDbUnitTest dbUnitTest = new SqlDbUnitTest(this.ConnectionString);

            dbUnitTest.ReadXmlSchema(this.DatabaseSchema);
            if (datasetStream != null)
            {
                dbUnitTest.ReadXml(datasetStream);
            }

            dbUnitTest.PerformDbOperation(operation);

            return(dbUnitTest);
        }
예제 #5
0
        public void PerformDbOperation(DbOperationFlag dbOperationFlag)
        {
            checkInitialized();

            if (dbOperationFlag == DbOperationFlag.None)
            {
                return;
            }

            IDbCommandBuilder dbCommandBuilder = GetDbCommandBuilder();
            IDbOperation dbOperation = GetDbOperation();

            IDbTransaction dbTransaction = null;
            IDbConnection dbConnection = dbCommandBuilder.Connection;

            try
            {
                if (dbConnection.State != ConnectionState.Open)
                {
                    dbConnection.Open();
                }
                dbTransaction = dbConnection.BeginTransaction();

                OperationEventArgs args = new OperationEventArgs();
                args.DbTransaction = dbTransaction;

                if (null != PreOperation)
                {
                    PreOperation(this, args);
                }

                switch (dbOperationFlag)
                {
                    case DbOperationFlag.Insert:
                        {
                            dbOperation.Insert(_dataSet, dbCommandBuilder, dbTransaction);
                            break;
                        }
                    case DbOperationFlag.InsertIdentity:
                        {
                            dbOperation.InsertIdentity(_dataSet, dbCommandBuilder, dbTransaction);
                            break;
                        }
                    case DbOperationFlag.Delete:
                        {
                            dbOperation.Delete(_dataSet, dbCommandBuilder, dbTransaction);

                            break;
                        }
                    case DbOperationFlag.DeleteAll:
                        {
                            dbOperation.DeleteAll(_dataSet, dbCommandBuilder, dbTransaction);
                            break;
                        }
                    case DbOperationFlag.Refresh:
                        {
                            dbOperation.Refresh(_dataSet, dbCommandBuilder, dbTransaction);
                            break;
                        }
                    case DbOperationFlag.Update:
                        {
                            dbOperation.Update(_dataSet, dbCommandBuilder, dbTransaction);
                            break;
                        }
                    case DbOperationFlag.CleanInsert:
                        {
                            dbOperation.DeleteAll(_dataSet, dbCommandBuilder, dbTransaction);
                            dbOperation.Insert(_dataSet, dbCommandBuilder, dbTransaction);
                            break;
                        }
                    case DbOperationFlag.CleanInsertIdentity:
                        {
                            dbOperation.DeleteAll(_dataSet, dbCommandBuilder, dbTransaction);
                            dbOperation.InsertIdentity(_dataSet, dbCommandBuilder, dbTransaction);
                            break;
                        }
                }

                if (null != PostOperation)
                {
                    PostOperation(this, args);
                }

                dbTransaction.Commit();
            }
            catch (Exception)
            {
                if (dbTransaction != null)
                {
                    dbTransaction.Rollback();
                }

                throw;
            }
            finally
            {
                if (!_passedconnection)
                {
                    if (ConnectionState.Open == dbConnection.State)
                    {
                        dbConnection.Close();
                    }
                }
            }
        }
예제 #6
0
        public void PerformDbOperation(DbOperationFlag dbOperationFlag)
        {
            checkInitialized();

            if (dbOperationFlag == DbOperationFlag.None)
            {
                return;
            }

            IDbCommandBuilder dbCommandBuilder = GetDbCommandBuilder();
            IDbOperation      dbOperation      = GetDbOperation();

            IDbTransaction dbTransaction = null;
            IDbConnection  dbConnection  = dbCommandBuilder.Connection;

            try
            {
                if (dbConnection.State != ConnectionState.Open)
                {
                    dbConnection.Open();
                }
                dbTransaction = dbConnection.BeginTransaction();

                OperationEventArgs args = new OperationEventArgs();
                args.DbTransaction = dbTransaction;

                if (null != PreOperation)
                {
                    PreOperation(this, args);
                }

                switch (dbOperationFlag)
                {
                case DbOperationFlag.Insert:
                {
                    dbOperation.Insert(_dataSet, dbCommandBuilder, dbTransaction);
                    break;
                }
                //case DbOperationFlag.InsertIdentity:
                //    {
                //        dbOperation.InsertIdentity(_dataSet, dbCommandBuilder, dbTransaction);
                //        break;
                //    }
                //case DbOperationFlag.Delete:
                //    {
                //        dbOperation.Delete(_dataSet, dbCommandBuilder, dbTransaction);

                //        break;
                //    }
                case DbOperationFlag.DeleteAll:
                {
                    dbOperation.DeleteAll(_dataSet, dbCommandBuilder, dbTransaction);
                    break;
                }
                    //case DbOperationFlag.Refresh:
                    //    {
                    //        dbOperation.Refresh(_dataSet, dbCommandBuilder, dbTransaction);
                    //        break;
                    //    }
                    //case DbOperationFlag.Update:
                    //    {
                    //        dbOperation.Update(_dataSet, dbCommandBuilder, dbTransaction);
                    //        break;
                    //    }
                    //case DbOperationFlag.CleanInsert:
                    //    {
                    //        dbOperation.DeleteAll(_dataSet, dbCommandBuilder, dbTransaction);
                    //        dbOperation.Insert(_dataSet, dbCommandBuilder, dbTransaction);
                    //        break;
                    //    }
                    //case DbOperationFlag.CleanInsertIdentity:
                    //    {
                    //        dbOperation.DeleteAll(_dataSet, dbCommandBuilder, dbTransaction);
                    //        dbOperation.InsertIdentity(_dataSet, dbCommandBuilder, dbTransaction);
                    //        break;
                    //    }
                }

                if (null != PostOperation)
                {
                    PostOperation(this, args);
                }

                dbTransaction.Commit();
            }
            catch (Exception)
            {
                if (dbTransaction != null)
                {
                    dbTransaction.Rollback();
                }

                throw;
            }
            finally
            {
                if (dbTransaction != null)
                {
                    dbTransaction.Dispose();
                }

                //only close and release the connection if not externally-managed
                if (!ConnectionManager.HasExternallyManagedConnection)
                {
                    if (ConnectionState.Open == dbConnection.State)
                    {
                        dbConnection.Close();
                    }

                    ConnectionManager.ReleaseConnection();
                }
            }
        }
 private void ExecuteDatabaseOperation(string datasetFile, DbOperationFlag operation)
 {
     _connection.ReadXmlSchema(DatasetsDatasetXsd);
     _connection.ReadXml(datasetFile);
     _connection.PerformDbOperation(operation);
 }
예제 #8
0
        public void PerformDbOperation(DbOperationFlag dbOperationFlag)
        {
            checkInitialized();

            if (dbOperationFlag == DbOperationFlag.None)
            {
                return;
            }

            IDbCommandBuilder dbCommandBuilder = GetDbCommandBuilder();
            IDbOperation      dbOperation      = GetDbOperation();

            DbTransaction dbTransaction = null;
            DbConnection  dbConnection  = dbCommandBuilder.Connection;

            using (new OpenConnectionGuard(dbConnection, ConnectionManager.HasExternallyManagedConnection))
            {
                try
                {
                    dbTransaction = dbConnection.BeginTransaction();

                    OperationEventArgs args = new OperationEventArgs();
                    args.DbTransaction = dbTransaction;

                    if (null != PreOperation)
                    {
                        PreOperation(this, args);
                    }

                    switch (dbOperationFlag)
                    {
                    case DbOperationFlag.Insert:
                    {
                        dbOperation.Insert(_dataSet, dbCommandBuilder, dbTransaction);
                        break;
                    }

                    case DbOperationFlag.InsertIdentity:
                    {
                        dbOperation.InsertIdentity(_dataSet, dbCommandBuilder, dbTransaction);
                        break;
                    }

                    case DbOperationFlag.Delete:
                    {
                        dbOperation.Delete(_dataSet, dbCommandBuilder, dbTransaction);

                        break;
                    }

                    case DbOperationFlag.DeleteAll:
                    {
                        dbOperation.DeleteAll(_dataSet, dbCommandBuilder, dbTransaction);
                        break;
                    }

                    case DbOperationFlag.Refresh:
                    {
                        dbOperation.Refresh(_dataSet, dbCommandBuilder, dbTransaction);
                        break;
                    }

                    case DbOperationFlag.Update:
                    {
                        dbOperation.Update(_dataSet, dbCommandBuilder, dbTransaction);
                        break;
                    }

                    case DbOperationFlag.CleanInsert:
                    {
                        dbOperation.DeleteAll(_dataSet, dbCommandBuilder, dbTransaction);
                        dbOperation.Insert(_dataSet, dbCommandBuilder, dbTransaction);
                        break;
                    }

                    case DbOperationFlag.CleanInsertIdentity:
                    {
                        dbOperation.DeleteAll(_dataSet, dbCommandBuilder, dbTransaction);
                        dbOperation.InsertIdentity(_dataSet, dbCommandBuilder, dbTransaction);
                        break;
                    }
                    }

                    if (null != PostOperation)
                    {
                        PostOperation(this, args);
                    }

                    dbTransaction.Commit();
                }
                catch (Exception)
                {
                    if (dbTransaction != null)
                    {
                        dbTransaction.Rollback();
                    }

                    throw;
                }
                finally
                {
                    if (dbTransaction != null)
                    {
                        dbTransaction.Dispose();
                    }
                }
            }
        }
예제 #9
0
 private void ExecuteDatabaseOperation(string datasetFile, DbOperationFlag operation)
 {
     _connection.ReadXmlSchema(DatasetsDatasetXsd);
     _connection.ReadXml(datasetFile);
     _connection.PerformDbOperation(operation);
 }