public MiembroCO crearMiembroTotal(MiembroCO miembroCO) { try { TransactionalPlainAction action = null; switch (miembroCO.GetType().Name) { case "JugadorCO": action = new CrearJugadorAction((JugadorCO)miembroCO); break; case "EntrenadorCO": action = new CrearEntrenadorAction((EntrenadorCO)miembroCO); break; case "DirectivoCO": action = new CrearDirectivoAction((DirectivoCO)miembroCO); break; default: action = new CrearJugadorAction((JugadorCO)miembroCO); break; } return((MiembroCO)PlainActionProcessor.process(dbFactory, action)); } catch (InternalErrorException e) { throw e; } catch (Exception e) { throw new InternalErrorException(e); } }
public static Object process(DbProviderFactory dbFactory, TransactionalPlainAction action) { DbConnection connection = dbFactory.CreateConnection(); connection.ConnectionString = connectionString; connection.Open(); DbTransaction transaction = connection.BeginTransaction(IsolationLevel.Serializable); bool rollback = false; try { return(action.execute(connection, transaction)); } catch (SQLException e) { rollback = true; throw new InternalErrorException(e); } finally { try { if (connection != null) { if (transaction != null) { if (rollback) { transaction.Rollback(); } else { transaction.Commit(); } } connection.Close(); } } catch (Exception e) { throw new InternalErrorException(e); } } }