public async Task <ActionResult> OneTimeInvestment(FundPurchased fund) { MutualFundService service = new MutualFundService(); await service.Add(fund); return(RedirectToAction("Index", "Home")); }
public FundInfo Calculate(decimal currentNavPrice, FundPurchased fund) { FundInfo fundInfo = new FundInfo { Name = fund.Name, SchemeCode = fund.SchemeCode }; decimal investedAmount = 0, navsPurchased = 0, currentValue = 0, profitLoss = 0; if (fund.NavsPurchased.HasValue) { navsPurchased = fund.NavsPurchased.Value; investedAmount = navsPurchased * fund.NavPurchasePrice; } else if (fund.AmountInvested.HasValue) { investedAmount = fund.AmountInvested.Value; navsPurchased = investedAmount / fund.NavPurchasePrice; } currentValue = currentNavPrice * navsPurchased; profitLoss = currentValue - investedAmount; fundInfo.AmountInvested = Round(investedAmount); fundInfo.CurrentValue = Round(currentValue); fundInfo.NavCurrentPrice = Round(currentNavPrice); fundInfo.NavPurchasePrice = Round(fund.NavPurchasePrice); fundInfo.NavsPurchased = Round(navsPurchased); fundInfo.Percentage = Round((profitLoss / investedAmount) * 100); fundInfo.ProfitValue = Round(profitLoss); fundInfo.PurchaseDate = fund.PurchaseDate; return(fundInfo); }
public ActionResult OneTimeInvestment(string schemecode, string schemename) { FundPurchased fund = new FundPurchased { Name = schemename, SchemeCode = schemecode }; return(View(fund)); }
public async Task Add(FundPurchased fund) { using (var context = new InvestmentTrackerDbContext()) { MutualFundProxy proxy = new MutualFundProxy(); fund.NavPurchasePrice = await proxy.GetPrice(fund.SchemeCode, fund.PurchaseDate); context.FundPurchased.Add(fund); context.SaveChanges(); } }