Example #1
0
        public void Test_MoneyHelper_4()
        {
            // need to be able to use DI to work with this object

            DMPFeeService service = new DMPFeeService();

            DMPFeeRequestViewModel req = new DMPFeeRequestViewModel()
            {
                CustomerFirstname = "Cam",
                CustomerSurname   = "Braidwood",
                CustomerDebtManagementCompanyId = DebtServiceProviderEnumerator.MoneyHelper.ToString(),
                Income           = 1000,
                Expenses         = 800,
                Debt1Desctiption = "loan",
                Debt1Value       = 1000,
                Debt2Desctiption = "loan 2",
                Debt2Value       = 1000
            };

            DMPFeeResultModel result = service.Calculate(req);

            Assert.AreEqual(result.OK, true);
            Assert.AreEqual(result.DMPResponse.Fee, 20);
            Assert.AreEqual(result.DMPResponse.DebtRepaymentList.Count, 2);
            Assert.AreEqual(result.DMPResponse.DebtRepaymentList[0].DebtMonthlyRepayment, 90m);
            Assert.AreEqual(result.DMPResponse.DebtRepaymentList[1].DebtMonthlyRepayment, 90m);
        }
        public void Test_DebtDestructor_5()
        {
            DMPFeeService service = new DMPFeeService();
            //IDMPFeeService service = ObjectFactory.GetInstance<IDMPFeeService>();

            //HomeController c = new HomeController(service);

            DMPFeeRequestViewModel req = new DMPFeeRequestViewModel()
            {
                CustomerFirstname = "Cam",
                CustomerSurname   = "Braidwood",
                CustomerDebtManagementCompanyId = DebtServiceProviderEnumerator.DebtDestructor.ToString(),
                Income           = 1000,
                Expenses         = 810,
                Debt1Desctiption = "loan",
                Debt1Value       = 1000,
                Debt2Desctiption = "loan 2",
                Debt2Value       = 1000
            };

            DMPFeeResultModel result = service.Calculate(req);

            Assert.AreEqual(result.OK, true);
            Assert.AreEqual(result.DMPResponse.Fee, 30);
            Assert.AreEqual(result.DMPResponse.DebtRepaymentList.Count, 2);
            Assert.AreEqual(result.DMPResponse.DebtRepaymentList[0].DebtMonthlyRepayment, 80);
            Assert.AreEqual(result.DMPResponse.DebtRepaymentList[1].DebtMonthlyRepayment, 80);
        }
Example #3
0
        public BaseDMPServiceProvider(DMPFeeRequestViewModel req)
        {
            if (req.IsNotNull())
            {
                this.FirstName = req.CustomerFirstname;
                this.Surname   = req.CustomerSurname;
                this.Income    = req.Income;
                this.Expenses  = req.Expenses;

                this.DebtRepaymentList = new List <DebtModel>();

                if (req.Debt1Desctiption.IsNotNullOrBlank() && req.Debt1Value.IsNotNull())
                {
                    this.DebtRepaymentList.Add(new DebtModel()
                    {
                        DebtDescription = req.Debt1Desctiption, DebtAmount = req.Debt1Value
                    });
                }

                if (req.Debt2Desctiption.IsNotNullOrBlank() && req.Debt2Value.IsNotNull())
                {
                    this.DebtRepaymentList.Add(new DebtModel()
                    {
                        DebtDescription = req.Debt2Desctiption, DebtAmount = req.Debt2Value
                    });
                }

                if (req.Debt3Desctiption.IsNotNullOrBlank() && req.Debt3Value.IsNotNull())
                {
                    this.DebtRepaymentList.Add(new DebtModel()
                    {
                        DebtDescription = req.Debt3Desctiption, DebtAmount = req.Debt3Value
                    });
                }

                if (req.Debt4Desctiption.IsNotNullOrBlank() && req.Debt4Value.IsNotNull())
                {
                    this.DebtRepaymentList.Add(new DebtModel()
                    {
                        DebtDescription = req.Debt4Desctiption, DebtAmount = req.Debt4Value
                    });
                }

                if (req.Debt5Desctiption.IsNotNullOrBlank() && req.Debt5Value.IsNotNull())
                {
                    this.DebtRepaymentList.Add(new DebtModel()
                    {
                        DebtDescription = req.Debt5Desctiption, DebtAmount = req.Debt5Value
                    });
                }

                this.TotalDebt = DebtRepaymentList.Sum(x => x.DebtAmount);

                this.DisposableIncome = this.Income - this.Expenses;
            }
        }
        public ActionResult Index(DMPFeeRequestViewModel data)
        {
            DMPFeeResultModel result = this.DMPFeeService.Calculate(data);

            if (result.OK)
            {
                return(View("Summary", result.DMPResponse));
            }
            else
            {
                base.ProcessModelStateErrors(ModelState, result.ErrorDetailList);

                return(View(data));
            }
        }
Example #5
0
        public DMPFeeResultModel Calculate(DMPFeeRequestViewModel req)
        {
            DMPFeeResultModel result = new DMPFeeResultModel();

            DMPFeeResponseViewModel feeResponse = null;

            DebtServiceProviderEnumerator debtProvider = (DebtServiceProviderEnumerator)Enum.Parse(typeof(DebtServiceProviderEnumerator), req.CustomerDebtManagementCompanyId);

            switch (debtProvider)
            {
            case DebtServiceProviderEnumerator.McDermottGodfrey:

                feeResponse = new McDermottGodfreyDMPServiceProvider(req).Calculate();

                break;

            case DebtServiceProviderEnumerator.DebtDestructor:

                feeResponse = new DebtDestructorDMPServiceProvider(req).Calculate();

                break;

            case DebtServiceProviderEnumerator.MoneyHelper:

                feeResponse = new MoneyHelperDMPServiceProvider(req).Calculate();

                break;

            default:
                break;
            }

            if (feeResponse.IsNotNull())
            {
                feeResponse.Request = req;        // original request

                result.DMPResponse = feeResponse; // provider response

                result.OK = true;
            }

            return(result);
        }
        public void Test_McDermottGodfrey_2()
        {
            // need to be able to use DI to work with this object

            DMPFeeService service = new DMPFeeService();

            DMPFeeRequestViewModel req = new DMPFeeRequestViewModel()
            {
                CustomerFirstname = "Cam",
                CustomerSurname   = "Braidwood",
                CustomerDebtManagementCompanyId = DebtServiceProviderEnumerator.McDermottGodfrey.ToString(),
                Income           = 1000,
                Expenses         = 1300,
                Debt1Desctiption = "loan",
                Debt1Value       = 5000
            };

            DMPFeeResultModel result = service.Calculate(req);

            Assert.AreEqual(result.OK, true);
            Assert.AreEqual(result.DMPResponse.Fee, 0);
        }
        public ActionResult Index()
        {
            DMPFeeRequestViewModel req = new DMPFeeRequestViewModel();

            return(View(req));
        }
Example #8
0
 public MoneyHelperDMPServiceProvider(DMPFeeRequestViewModel req) : base(req)
 {
 }
Example #9
0
 public DebtDestructorDMPServiceProvider(DMPFeeRequestViewModel req) : base(req)
 {
 }
Example #10
0
 public McDermottGodfreyDMPServiceProvider(DMPFeeRequestViewModel req) : base(req)
 {
 }