public SqlTransaction Persist(Queue <object[]> persistableObjects, Dictionary <string, object> contextualParameters) { SqlConnection connection = new SqlConnection(connectionString); connection.Open(); SqlTransaction transaction = connection.BeginTransaction(); try { while (persistableObjects.Count > 0) { object[] persistableObject = persistableObjects.Dequeue(); var pos = from po in persistenceOperators where po.Name == (string)persistableObject[1] select po; PersistenceOperator targetPO = pos.ElementAt(0); targetPO.AttachedTransaction = transaction; if (targetPO.Persist(persistableObject[0], contextualParameters) == 0) { try { transaction.Rollback(); } catch (Exception) { } throw new Exception(string.Format("A {0} couldnot be persisted", targetPO.SourceObjectName)); } } return(transaction); //transaction.Commit(); } catch (Exception ex) { try { transaction.Rollback(); } catch (Exception ex2) { throw ex2; } throw (ex); } finally { //transaction.Dispose(); //connection.Close(); } }
public XmlDocument Open(string operatorName, Dictionary <string, object> parameters) { SqlConnection connection = new SqlConnection(connectionString); connection.Open(); XmlDocument document = new XmlDocument(); SqlTransaction transaction = connection.BeginTransaction(); XmlReader reader = null; try { var pos = from po in persistenceOperators where po.Name == operatorName select po; PersistenceOperator targetPO = pos.ElementAt(0); targetPO.AttachedTransaction = transaction; reader = targetPO.Open(parameters); document.Load(reader); transaction.Commit(); } catch (Exception ex) { try { transaction.Rollback(); } catch (Exception ex2) { throw ex2; } throw (ex); } finally { if (reader != null) { reader.Close(); } if (connection != null) { connection.Close(); } } return(document); }
public SqlTransaction Persist(Queue <object> persistableObjects, Dictionary <string, object> contextualParameters, SqlTransaction transaction) { try { while (persistableObjects.Count > 0) { object persistableObject = persistableObjects.Dequeue(); var pos = from po in persistenceOperators where po.SourceObjectName == persistableObject.GetType().FullName select po; PersistenceOperator targetPO = pos.ElementAt(0); targetPO.AttachedTransaction = transaction; if (targetPO.Persist(persistableObject, contextualParameters) == 0) { try { transaction.Rollback(); } catch (Exception) { } throw new Exception(string.Format("A {0} couldnot be persisted", targetPO.SourceObjectName)); } } return(transaction); //transaction.Commit(); } catch (Exception ex) { try { transaction.Rollback(); } catch (Exception ex2) { throw ex2; } throw (ex); } }