//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())); }
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())); }