public IActionResult Index(int?id) { if (id == null) { return(HttpNotFound()); } PortfolioViewModel portfolioViewModel = HttpContext.Session.GetObjectFromJson <PortfolioViewModel>("selected_port_viewmodel"); if (portfolioViewModel == null) { Portfolio portfolio = _context.Portfolio.Include(p => p.PortfolioAssets).Single(m => m.ID == id); if ((portfolio == null) || (portfolioViewModel.ID != id)) { return(HttpNotFound()); } Builder builder = new Builder(_context); PortfolioDomainModel portfolioDomainModel = builder.GetPortfolioDomainModel(portfolio); portfolioViewModel = builder.GetPortfolioViewModel(portfolioDomainModel); HttpContext.Session.SetObjectAsJson("selected_port_viewmodel", portfolioViewModel); } MonteCarloViewModel blankMonte = new MonteCarloViewModel(); // blankMonte.PortfolioViewModel = portfolioViewModel; return(View(blankMonte)); }
public PortfolioViewModel GetPortfolioViewModel(PortfolioDomainModel portfolioDomainModel) { string expectedReturn; if (((portfolioDomainModel.ExpectedReturn) * 100M).ToString().Length > 3) { expectedReturn = ((portfolioDomainModel.ExpectedReturn) * 100M).ToString().Substring(0, 4); } else { expectedReturn = ((portfolioDomainModel.ExpectedReturn) * 100M).ToString(); } PortfolioViewModel portfolioViewModel = new PortfolioViewModel { ID = portfolioDomainModel.ID, Name = portfolioDomainModel.Name, DateCreated = portfolioDomainModel.DateCreated, ExpectedReturnString = string.Format("{0}%", expectedReturn), ExpectedReturnDouble = (double)portfolioDomainModel.ExpectedReturn, Variance = portfolioDomainModel.Variance, DollarValue = portfolioDomainModel.DollarValue }; portfolioViewModel.Stocks = (GetStockViewModels(portfolioDomainModel.Stocks)); return(portfolioViewModel); }
public async Task <ActionResult> Details(int?id) { PortfolioViewModel portfolioViewModel = HttpContext.Session.GetObjectFromJson <PortfolioViewModel>("selected_port_viewmodel"); if (id == null) { return(HttpNotFound()); } if ((portfolioViewModel == null) || (portfolioViewModel.ID != id)) { Portfolio portfolio = await _context.Portfolio.Include(p => p.PortfolioAssets).SingleAsync(m => m.ID == id); if (portfolio == null) { return(HttpNotFound()); } Builder builder = new Builder(_context); PortfolioDomainModel portfolioDomainModel = builder.GetPortfolioDomainModel(portfolio); portfolioViewModel = builder.GetPortfolioViewModel(portfolioDomainModel); HttpContext.Session.SetObjectAsJson("selected_port_viewmodel", portfolioViewModel); } if (portfolioViewModel.Stocks.Count() < 1) { return(RedirectToAction("AddStock", new { id = id })); } return(View(portfolioViewModel)); }
public PortfolioDomainModel GetPortfolioDomainModel(Portfolio portfolio) { IEnumerable <string> symbols = portfolio.PortfolioAssets.Select(a => a.AssetSymbol); List <Stock> stocks = _context.Stock .Where(s => symbols.Contains(s.Symbol)).ToList(); List <StockDomainModel> stockDomainModels = new List <StockDomainModel>(); Parallel.For(0, stocks.Count(), i => { int amountOwned = portfolio.PortfolioAssets.Single(a => a.AssetSymbol == stocks[i].Symbol).NumberOfAssetOwned; stockDomainModels.Add(new StockDomainModel(stocks[i], amountOwned)); }); PortfolioDomainModel output = new PortfolioDomainModel(stockDomainModels, portfolio); return(output); }