Exemple #1
0
        public override void Execute()
        {
            try {
                if (this.bankAccountTypeID == (int)I_InvestorAccountTypeEnum.Funding)
                {
                    this.systemBalanceTransactionSign = 1;
                    this.bankAccountType = I_InvestorAccountTypeEnum.Funding;
                }


                if (this.bankAccountTypeID == (int)I_InvestorAccountTypeEnum.Repayments)
                {
                    this.systemBalanceTransactionSign = -1;
                    this.bankAccountType = I_InvestorAccountTypeEnum.Repayments;
                }

                AddInvestorSystemBalance changeSystemBalance = new AddInvestorSystemBalance(this.investorAccountID,
                                                                                            this.now,
                                                                                            this.transactionAmount * this.systemBalanceTransactionSign,
                                                                                            null,
                                                                                            null,
                                                                                            null,
                                                                                            null,
                                                                                            this.transactionComment,
                                                                                            this.underwriterID,
                                                                                            this.transactionDate);
                changeSystemBalance.Execute();

                AddInvestorBankAccountBalance addBankAccountBalance = new AddInvestorBankAccountBalance(this.investorAccountID,
                                                                                                        this.now,
                                                                                                        this.transactionAmount,
                                                                                                        this.underwriterID,
                                                                                                        this.transactionComment,
                                                                                                        this.transactionDate,
                                                                                                        this.bankTransactionRef);
                addBankAccountBalance.Execute();
            } catch (Exception ex) {
                Log.Warn(ex, "Failed to execute {0} transfer of £{1} for investor bank account {2} into DB", this.bankAccountType, this.transactionAmount, this.investorAccountID);
                Result = false;
                throw;
            }

            Result = true;
            Log.Info("Executing {0} transfer of £{1} for investor bank account {2} into DB complete.", this.bankAccountType, this.transactionAmount, this.investorAccountID);
        }        //Execute
        }        //Execute

        private ActionResult HandleOneAssignedToLoanInvestor(SafeReader sr, bool bRowSetStart)
        {
            try {
                int     fundingBankAccountID = sr["FundingBankAccountID"];
                decimal investmentPercent    = sr["InvestmentPercent"];
                int     investorID           = sr["InvestorID"];
                int     loanTerm             = sr["RepaymentPeriod"];
                decimal loanAmount           = sr["LoanAmount"];
                int?    productTypeID        = sr["ProductTypeID"];

                I_Portfolio portfolio = new I_Portfolio {
                    InitialTerm    = loanTerm,
                    InvestorID     = investorID,
                    ProductTypeID  = productTypeID,
                    LoanID         = this.loanID,
                    LoanPercentage = investmentPercent,
                    Timestamp      = this.now,
                    GradeID        = this.bucket,
                };

                DB.ExecuteNonQuery("I_PortfolioSave", CommandSpecies.StoredProcedure, DB.CreateTableParameter("Tbl", portfolio));

                const int negative = -1;
                AddInvestorBankAccountBalance addBankAccountBalance = new AddInvestorBankAccountBalance(
                    fundingBankAccountID,
                    this.now,
                    loanAmount * investmentPercent * negative,
                    this.customerID,
                    "Loan was taken",
                    this.now,
                    ""
                    );
                addBankAccountBalance.Execute();
            } catch (Exception ex) {
                Log.Error(ex, "failed to link loan {0} to investor {1}",
                          this.loanID, sr["InvestorID"]);
            }
            return(ActionResult.Continue);
        }        //HandleOneAssignedToLoanInvestor