Пример #1
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");
                }
            }
        }
Пример #2
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");
                }
            }
        }