Ejemplo n.º 1
0
        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); }
        }
Ejemplo n.º 2
0
        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);
                }
            }
        }