public InvestmentResult CalculateROI([FromBody] CalculateROIRequest request)
        {
            var investmentResult = _investmentService.CalculateResult(request.InvestmentDetails);

            var exchangedResult = new InvestmentResult
            {
                InvestmentReturn = _exchangeRateService.Exchange("AUD", "USD", investmentResult.InvestmentReturn),
                Fees             = _exchangeRateService.Exchange("AUD", "USD", investmentResult.Fees)
            };

            return(exchangedResult);
        }
Example #2
0
        public InvestmentResult CalculateResult(List <InvestmentDetail> investmentDetails)
        {
            InvestmentResult result = new InvestmentResult();

            foreach (var investmentDetail in investmentDetails)
            {
                var investmentOptionId = investmentDetail.InvestmentOptionId;
                (var investmentReturn, var fee) = _returnCalculatorDictionary[(InvestmentOptionEnum)investmentOptionId]
                                                  .Calculate(investmentDetail.Amount, investmentDetail.Percentage);
                result.InvestmentReturn += investmentReturn;
                result.Fees             += fee;
            }

            return(result);
        }
Example #3
0
        public static InvestmentResult GetInvestmentResult(int recordId)
        {
            DataRow          ukAllData = MyExcel.GetDetails("f_3", recordId);
            InvestmentResult data      = new InvestmentResult();

            data.fundId                       = ukAllData[0].ToString();
            data.fundName                     = ukAllData[3].ToString();
            data.foundatationDate             = ukAllData[4].ToString();
            data.fundSizeAtFinalClosing       = "0";
            data.activesUnderManagement       = ukAllData[6].ToString();
            data.dateOfData                   = ukAllData[7].ToString();
            data.fundStatus                   = ukAllData[8].ToString();
            data.numberOfInvestment           = ukAllData[9].ToString();
            data.numberOfExits                = ukAllData[10].ToString();
            data.numberOfCompaniesInPortfolio = ukAllData[11].ToString();
            data.targetIRR                    = ukAllData[12].ToString();
            data.factIRR                      = ukAllData[13].ToString();
            data.dryPowder                    = ukAllData[14].ToString();
            data.MedianValueOfInvesmentRound  = ukAllData[15].ToString();
            data.ManagementCompany            = ukAllData[16].ToString();
            data.ManagementCompanyId          = MapUKToId_HAckED(ukAllData[16].ToString(), 0).ToString();
            data.Strategy                     = ukAllData[5].ToString();
            return(data);
        }
 private void CheckEquality(InvestmentResult expectedResult, InvestmentResult actualResult)
 {
     Assert.AreEqual(expectedResult.GrossAmount, actualResult.GrossAmount, nameof(actualResult.GrossAmount));
     Assert.AreEqual(expectedResult.TaxesAmount, actualResult.TaxesAmount, nameof(actualResult.TaxesAmount));
 }
        public void TestInvestmentCalculations(InvestmentParameter parameter, InvestmentResult expectedResult)
        {
            var actualResult = new InvestmentSimulator().Simulate(parameter);

            CheckEquality(expectedResult, actualResult);
        }
Example #6
0
        public ActionResult Result(int id)
        {
            InvestmentResult data = MyExcel.GetInvestmentResult(id);

            return(View(data));
        }
        public IActionResult CalculateInvestment(StockHoldingsVM vm)
        {
            InvestmentResult investResult = new InvestmentResult(vm.Holdings, vm.ContributionAmount);

            return(View(investResult));
        }