예제 #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");
                }
            }
        }
예제 #2
0
        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();
        }
예제 #3
0
        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");
                }
            }
        }
예제 #4
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");
                }
            }
        }
예제 #5
0
        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");
                }
            }
        }