Exemple #1
0
        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");
                }
            }
        }
Exemple #2
0
        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");
                }
            }
        }