Exemple #1
0
        public async Task <IActionResult> CalculateNpv([FromBody] NpvModel model)
        {
            var npvResults = await _httpService.GetAsJson(_npvApiUrl, model);

            var cashFlows = model.CashFlows.Split(',').Select(double.Parse).ToList <double>();

            var requestModel = new NPVRequestModel
            {
                CashFlow = cashFlows
                ,
                Increment = model.Increment
                ,
                InitialCost = model.InitialCost
                ,
                LowerBoundDiscountRate = model.LowerBound
                ,
                UpperBoundDiscountRate = model.UpperBound
            };

            if (string.IsNullOrEmpty(npvResults))
            {
                npvResults = await _httpService.PostAsyncReturnAsJson(_npvApiUrl, requestModel);
            }
            var npvs = JsonConvert.DeserializeObject <IList <NPVDetailModel> >(npvResults);

            return(Ok(npvs));
        }
Exemple #2
0
        public async Task <IActionResult> Compute([Bind("CashFlowsDescription,Increment,UpperBoundDiscountRate,LowerBoundDiscountRate,InitialCost")] NPVModel nPVModel)
        {
            var cashFlows = nPVModel.CashFlowsDescription.Split(',').Select(double.Parse).ToList <double>();

            var requestModel = new NPVRequestModel
            {
                CashFlow = cashFlows
                ,
                Increment                = nPVModel.Increment
                , InitialCost            = nPVModel.InitialCost
                , LowerBoundDiscountRate = nPVModel.LowerBoundDiscountRate
                , UpperBoundDiscountRate = nPVModel.UpperBoundDiscountRate
            };

            var npvResults = await _httpService.GetAsJson(_npvApiUrl, requestModel);

            if (string.IsNullOrEmpty(npvResults))
            {
                npvResults = await _httpService.PostAsyncReturnAsJson(_npvApiUrl, requestModel);
            }

            TempData["npvResults"] = npvResults;
            return(RedirectToAction("Index"));
        }