public void SaveProductionData() { bool flagTransation = true; DataAccessLayer objDataAccess = new DataAccessLayer(); SqlTransaction objTrans = null; try { if (objTrans == null) { flagTransation = false; objDataAccess.GetConnection.Open(); SqlTransaction objTransaction = objDataAccess.GetConnection.BeginTransaction(); objTrans = objTransaction; } ProductionManager objManager = new ProductionManager(); objManager.SaveProductionData(objTrans); if (!flagTransation) objTrans.Commit(); } catch (Exception ex) { if (!flagTransation) objTrans.Rollback(); throw ex; } finally { objDataAccess.GetConnection.Close(); } }