public void UpdateContractRule()
        {
            Account        genericAccount  = _accountManager.Select(1);
            Account        specificAccount = _accountManager.Select(2);
            EventType      eventType       = _eventManager.SelectEventTypeByEventType("RGLE");
            EventAttribute eventAttribute  = _eventManager.SelectEventAttributeByCode("principal");

            ContractAccountingRule rule = new ContractAccountingRule
            {
                DebitAccount     = genericAccount,
                CreditAccount    = specificAccount,
                ProductType      = OProductTypes.Loan,
                ClientType       = OClientTypes.All,
                BookingDirection = OBookingDirections.Both,
                EventType        = eventType,
                EventAttribute   = eventAttribute
            };

            rule.Id = _accountingRuleManager.AddAccountingRule(rule);
            Assert.AreNotEqual(0, rule.Id);

            rule.DebitAccount     = _accountManager.Select(2);
            rule.CreditAccount    = _accountManager.Select(4);
            rule.ProductType      = OProductTypes.Saving;
            rule.LoanProduct      = null;
            rule.SavingProduct    = _savingProductManager.SelectSavingProduct(1);
            rule.ClientType       = OClientTypes.Person;
            rule.EconomicActivity = _economicActivityManager.SelectEconomicActivity(1);
            rule.BookingDirection = OBookingDirections.Credit;

            _accountingRuleManager.UpdateAccountingRule(rule);
            ContractAccountingRule retrievedRule = _accountingRuleManager.Select(rule.Id) as ContractAccountingRule;

            _compareRules(rule, retrievedRule);
        }
 public void UpdateAccountingRule(IAccountingRule pRule)
 {
     ValidateAccountingRule(pRule);
     _accountingRuleManager.UpdateAccountingRule(pRule);
 }