// GET: Users
        public async Task <IActionResult> Portfolio2([Bind("id,isAdmin,username,password")] User user)
        {
            var view   = new PortfolioView();
            var dbuser = await _context.Users.FirstOrDefaultAsync(x => x.username == user.username && x.password == user.password);

            if (dbuser == null)
            {
                return(NotFound());
            }
            view.user = user;
            var portfolio = await _context.Portfolios.FirstOrDefaultAsync(m => m.userId == dbuser.id);

            if (portfolio == null)
            {
                return(NotFound());
            }
            //var sharess = _context.Share.Select(i => new IEnumerable<Share>{ i.portfolioId, portfolio.id });
            List <Share> shares = new List <Share>();

            foreach (var item in _context.Share)
            {
                if (item.portfolioId == portfolio.id)
                {
                    shares.Add(item);
                }
            }

            view.shares = shares;
            List <Stock>            stocks = new List <Stock>();
            List <StockValueInTime> values = new List <StockValueInTime>();

            foreach (var item in _context.Stock)
            {
                if (shares.Any(x => x.stockId == item.id))
                {
                    stocks.Add(item);
                    ulong            item2MaximumTimestamp = ulong.MinValue;
                    StockValueInTime item2Maximum          = null;
                    foreach (var item2 in _context.StockValuesInTime)
                    {
                        if (item2.stockId == item.id)
                        {
                            if (item2.timestamp > item2MaximumTimestamp)
                            {
                                item2MaximumTimestamp = item2.timestamp;
                                item2Maximum          = item2;
                            }
                        }
                    }
                    values.Add(item2Maximum);
                }
            }
            view.stocks = stocks;
            view.values = values;
            return(RedirectToAction("Portfolio", new { id = dbuser.id }));
        }
        // GET: Users
        public async Task <IActionResult> Portfolio(int?id)
        {
            var view = new PortfolioView();
            var user = await _context.Users.FirstOrDefaultAsync(m => m.id == id);

            if (user == null)
            {
                return(NotFound());
            }
            view.user = user;
            var portfolio = await _context.Portfolios.FirstOrDefaultAsync(m => m.userId == user.id);

            if (portfolio == null)
            {
                return(NotFound());
            }
            //var sharess = _context.Share.Select(i => new IEnumerable<Share>{ i.portfolioId, portfolio.id });
            List <Share> shares = new List <Share>();

            foreach (var item in _context.Share)
            {
                if (item.portfolioId == portfolio.id)
                {
                    shares.Add(item);
                }
            }

            view.shares = shares;
            List <Stock>            stocks = new List <Stock>();
            List <StockValueInTime> values = new List <StockValueInTime>();

            foreach (var item in _context.Stock)
            {
                if (shares.Any(x => x.stockId == item.id))
                {
                    stocks.Add(item);
                    ulong            item2MaximumTimestamp = ulong.MinValue;
                    StockValueInTime item2Maximum          = null;
                    foreach (var item2 in _context.StockValuesInTime)
                    {
                        if (item2.stockId == item.id)
                        {
                            if (item2.timestamp > item2MaximumTimestamp)
                            {
                                item2MaximumTimestamp = item2.timestamp;
                                item2Maximum          = item2;
                            }
                        }
                    }
                    values.Add(item2Maximum);
                }
            }
            view.stocks = stocks;
            view.values = values;
            return(View(view));
        }
Example #3
0
        // GET: Users
        public async Task <IActionResult> Portfolio(int?id)
        {
            var view = new PortfolioView();

            var user = await _context.Users.FirstOrDefaultAsync(m => m.id == id);

            if (user == null)
            {
                return(NotFound());
            }
            view.user = user;

            var portfolio = await _context.Portfolios.FirstOrDefaultAsync(m => m.userId == user.id);

            if (portfolio == null)
            {
                return(NotFound());
            }
            //var sharess = _context.Share.Select(i => new IEnumerable<Share>{ i.portfolioId, portfolio.id });
            List <Share> shares = new List <Share>();

            foreach (var item in _context.Share)
            {
                if (item.portfolioId == portfolio.id)
                {
                    shares.Add(item);
                }
            }
            view.shares = shares;

            List <Stock>            stocks = new List <Stock>();
            List <StockValueInTime> values = new List <StockValueInTime>();

            foreach (var item in _context.Stock)
            {
                if (shares.Any(x => x.stockId == item.id && item.id != 0))
                {
                    stocks.Add(item);
                    values.Add(await _context.StockValuesInTime.FirstAsync());//spatne ale fakci
                }
            }
            view.stocks = stocks;
            view.values = values;

            return(View(view));
        }