Esempio n. 1
0
        //Pagina principale x il carrello con il contenuto attuale
        public async Task <IActionResult> Index()
        {
            ECommerceUpoContext context = new ECommerceUpoContext();

            //legge id prodotti dal bean del carrello che è in sessione se è pieno altrimenti ne crea uno nuovo
            var SessionCart = HttpContext.Session.GetObjectFromJson <List <OrderProduct> >("Cart");

            if (SessionCart == null)
            {
                return(View(new List <CartBean>()));
            }

            //query per recuperare tutti i dati realitivi ai prodotti a partire dal loro id che abbiamo in sessione nel carrello
            var query = from prodotti in context.Product
                        join carrello in SessionCart on prodotti.ProductId equals carrello.ProductId
                        select new CartBean
            {
                ProductId   = prodotti.ProductId,
                Title       = prodotti.Title,
                Description = prodotti.Description,
                Price       = prodotti.Price,
                Discount    = prodotti.Discount,
                Image       = prodotti.Image,
                Quantity    = carrello.Quantity
            };

            return(View(await query.ToListAsync()));
        }
        //Elenca i prodotti che hanno sconto>0
        public async Task <IActionResult> SmallPrices()
        {
            ECommerceUpoContext context = new ECommerceUpoContext();

            //query che restituisce i prodotti con sconto>0
            var query = from prodotto in context.Product
                        where prodotto.Discount > 0
                        select prodotto;

            return(View(await query.ToListAsync()));
        }
Esempio n. 3
0
        public async Task <IActionResult> Index()
        {
            ECommerceUpoContext context = new ECommerceUpoContext();

            //query che da come risultato i top 10 più venduti dell'ultimo mese, prende solo 1 volta il prodotto con stesso id
            var query = (from product in context.Product
                         join orderProduct in context.OrderProduct on product.ProductId equals orderProduct.ProductId
                         join orderTable in context.OrderTable on orderProduct.OrderId equals orderTable.OrderId
                         where orderTable.Data > DateTime.Now.AddMonths(-1)
                         orderby orderProduct.Quantity descending
                         select product)
                        .GroupBy(p => p.ProductId).Select(g => g.First()).Take(10);

            return(View(await query.ToListAsync()));
        }