示例#1
0
        /// <summary>
        /// Removes the given applicableCommissions
        /// </summary>
        /// <param name="loanToUpdate">loanToUpdate</param>
        /// <param name="applicableCommissions">applicableCommissions</param>
        public void RemoveLoanApplicableCommissions(Loan loanToUpdate,
            IList<int> applicableCommissions)
        {
            try
            {
                ILoanApplicableCommissionDAO loanApplicableCommissionDAO = _daoFactory.GetLoanApplicableCommissionDAO ();

                IList<LoanApplicableCommission> commissionsToRemove = new List<LoanApplicableCommission> ();

                foreach (int commissionId in applicableCommissions)
                {
                    LoanApplicableCommission commision = loanApplicableCommissionDAO.FindById (
                        commissionId);
                    if (commision == null)
                    {
                        throw new ZiblerBusinessComponentsException (
                            Resources.LoanOperationsMsgLoanApplicableCommissionNotFound);
                    }
                    else
                    {
                        commissionsToRemove.Add (commision);
                    }
                }

                foreach (LoanApplicableCommission commToRemove in commissionsToRemove)
                {
                    loanToUpdate.RemoveLoanApplicableCommission (commToRemove);
                }
            }
            /* If the exception was thrown here, just pass it up */
            catch (ZiblerBusinessComponentsException ex)
            {
                throw;
            }
            /* Catch any Data Layer or other exception and throw an unkown exception */
            catch (Exception ex)
            {
                ZiblerBusinessComponentsUnknownException exc
                = new ZiblerBusinessComponentsUnknownException (ex);

                /* Throw the new exception */
                throw exc;
            }
        }