public static int Insert(Publicacion publication) { //Tiene que insertar en la tabla TL_Publicacion, TL_Rubro_Publicacion using (var transaction = DataBaseManager.Instance().Connection.BeginTransaction(IsolationLevel.Serializable)) { try { publication = Insert(publication, transaction); var categoriesAdded = RubroPersistance.InsertByPublication(publication, transaction); if (categoriesAdded > 0) { transaction.Commit(); return(1); } transaction.Rollback(); return(0); } catch (Exception) { transaction.Rollback(); throw new Exception("Se produjo un error durante la insercion de la publicacion"); } } }
private void Initialize(String SP_Name, List <SPParameter> SP_Parameters, SqlTransaction SP_Transaction) { // Set the Name if (String.IsNullOrEmpty(SP_Name)) { name = String.Empty; } else { name = SP_Name; } // Set the Parameters if (SP_Parameters == null || SP_Parameters.Count == 0) { parameters = new Dictionary <String, SPParameter>(0); } else { try { parameters = SP_Parameters.ToDictionary(p => p.Name, p => p); } catch (Exception e) { throw new Exception("There are parameters with the same name."); } } // Set the Transaction transaction = SP_Transaction; // Set the Connection dataBaseManager = DataBaseManager.Instance(); }
public static void InsertRoleAndFeatures(Rol role) { /* Lo tengo que hacer transaccionado ya que no quiero que pueda llegar a quedar un rol insertado * sin las funcionalidades asociadas debido a un error */ using (var transaction = DataBaseManager.Instance().Connection.BeginTransaction(IsolationLevel.Serializable)) { try { role = Insert(role, transaction); FuncionalidadPersistance.InsertByRole(role, transaction); transaction.Commit(); } catch (Exception) { transaction.Rollback(); throw new Exception("Se produjo un error durante la insercion del rol"); } } }
public static int Update(Publicacion publication) { /* Lo tengo que hacer transaccionado ya que no quiero que pueda llegar a quedar un rol insertado * sin las funcionalidades asociadas debido a un error */ using (var transaction = DataBaseManager.Instance().Connection.BeginTransaction(IsolationLevel.Serializable)) { try { Update(publication, transaction); if (RubroPersistance.DeleteByPublication(publication, transaction) > 0) { if (RubroPersistance.InsertByPublication(publication, transaction) > 0) { //La unica forma que se realice la transaction: borro todas los rubros viejos e inserto los nuevos transaction.Commit(); return(1); } else { //Tuvo que haber insertado por lo menos uno, sino es un error transaction.Rollback(); return(0); } } else { //Tuvo que haber insertado por lo menos uno, sino es un error transaction.Rollback(); return(0); } } catch (Exception) { transaction.Rollback(); throw new Exception("Se produjo un error durante la modificacion de la publicacion"); } } }
public static void UpdateRoleAndFeatures(Rol role) { /* Lo tengo que hacer transaccionado ya que no quiero que pueda llegar a quedar un rol insertado * sin las funcionalidades asociadas debido a un error */ using (var transaction = DataBaseManager.Instance().Connection.BeginTransaction(IsolationLevel.Serializable)) { try { Update(role, transaction); if (FuncionalidadPersistance.DeleteByRole(role, transaction) > 0) { if (FuncionalidadPersistance.InsertByRole(role, transaction) > 0) { //La unica forma que se realice la transaction: borro todas las funcionalidades viejas e inserto las nuevas transaction.Commit(); } else { //Tuvo que haber insertado por lo menos una, sino es un error transaction.Rollback(); } } else { //Tuvo que haber insertado por lo menos una, sino es un error transaction.Rollback(); } } catch (Exception) { transaction.Rollback(); throw new Exception("Se produjo un error durante la modificacion del rol"); } } }