Beispiel #1
0
        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));
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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));
        }
Beispiel #4
0
        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);
        }