Exemplo n.º 1
0
        public JsonResult RescheduleLoan(int loanID,
                                         DbConstants.RepaymentIntervalTypes?intervalType, // month/week
                                         decimal?AmountPerInterval,                       // for "out" reschedule
                                         bool?rescheduleIn,
                                         DateTime reschedulingDate,
                                         bool save = false,
                                         bool stopFutureInterest = false)
        {
            ReschedulingActionResult result = null;

            try {
                Loan loan = this._loans.Get(loanID);

                if (rescheduleIn != null)
                {
                    ReschedulingArgument reModel = new ReschedulingArgument();
                    reModel.LoanType         = loan.GetType().AssemblyQualifiedName;
                    reModel.LoanID           = loanID;
                    reModel.SaveToDB         = save;
                    reModel.ReschedulingDate = reschedulingDate;
                    if (intervalType != null)
                    {
                        reModel.ReschedulingRepaymentIntervalType = (DbConstants.RepaymentIntervalTypes)intervalType;
                    }
                    reModel.RescheduleIn       = (bool)rescheduleIn;
                    reModel.StopFutureInterest = stopFutureInterest;

                    if (reModel.RescheduleIn == false)                     // "out"
                    {
                        reModel.PaymentPerInterval = AmountPerInterval;
                    }

                    // re strategy
                    result = this.serviceClient.Instance.RescheduleLoan(this._context.User.Id, loan.Customer.Id, reModel);

                    Log.Debug(string.Format("RescheduleLoanSubmitted: {0}, {1}", reModel, result.Value));
                }
            } catch (Exception editex) {
                Log.Error("rescheduling editor EXCEPTION: " + editex);
            }
            return(result == null ? null : Json(result.Value));
        }
Exemplo n.º 2
0
        private void RescheduleSetmodel(int loanID, EditLoanDetailsModel model)
        {
            var loan = this._loans.Get(loanID);

            model.Id = loanID;

            model.Options = this.loanOptionsRepository.GetByLoanId(model.Id) ?? LoanOptions.GetDefault(model.Id);

            Log.DebugFormat("RescheduleSetmodel: loanID: {2} model {0}, loan: {1}", model, loan, loanID);

            ReschedulingArgument renewModel = new ReschedulingArgument();

            renewModel.LoanType         = loan.GetType().AssemblyQualifiedName;
            renewModel.LoanID           = loanID;
            renewModel.SaveToDB         = false;
            renewModel.ReschedulingDate = DateTime.UtcNow;
            renewModel.ReschedulingRepaymentIntervalType = DbConstants.RepaymentIntervalTypes.Month;
            renewModel.RescheduleIn = true;

            try {
                ReschedulingActionResult result = this.serviceClient.Instance.RescheduleLoan(this._context.User.Id, loan.Customer.Id, renewModel);
                model.ReResultIn = result.Value;
                //Log.Debug(string.Format("IN=={0}, {1}", renewModel, result.Value));
                // ReSharper disable once CatchAllClause
            } catch (Exception editex) {
                Log.Error(editex);
            }

            renewModel.RescheduleIn       = false;
            renewModel.PaymentPerInterval = 0m;
            try {
                ReschedulingActionResult result = this.serviceClient.Instance.RescheduleLoan(this._context.User.Id, loan.Customer.Id, renewModel);
                model.ReResultOut = result.Value;
                //Log.Debug(string.Format("OUT=={0}, {1}", renewModel, result.Value));
                // ReSharper disable once CatchAllClause
            } catch (Exception editex) {
                Log.Error(editex);
            }
        }