/* * Mostra lo stato del carrello */ public async Task <IActionResult> Index() { UpoECommerceContext context = new UpoECommerceContext(); //legge codice prodotti salvati in session var SessionCart = HttpContext.Session.GetObjectFromJson <List <OrdineProdotto> >("Cart"); //se non c'e' nessun prodotto in session, carrello vuoto if (SessionCart == null) { return(View(new List <CarrelloDataSource>())); } //con i codici prodotto in session, recupera tutte le info sui prodotti da db var query = from prodotti in context.Prodotto join carrello in SessionCart on prodotti.CdProdotto equals carrello.CdProdotto select new CarrelloDataSource { CdProdotto = prodotti.CdProdotto, Titolo = prodotti.Titolo, Descrizione = prodotti.Descrizione, Prezzo = prodotti.Prezzo, Sconto = prodotti.Sconto, Immagine = prodotti.Immagine, Quantita = carrello.Quantita }; return(View(await query.ToListAsync())); }
/* * Espone i prodotti in offerta */ public async Task <IActionResult> Index() { UpoECommerceContext context = new UpoECommerceContext(); //prende i prodotti con sconto > 0 var query = from prodotto in context.Prodotto where prodotto.Sconto > 0 select prodotto; return(View(await query.ToListAsync())); }
/* * Espone i top 10 prodotti piu' venduti del mese */ public async Task <IActionResult> Index() { UpoECommerceContext context = new UpoECommerceContext(); //query top 10: //prende i prodotti che compaiono in acquisti con data > (data di oggi -3 mesi) var query = (from prodotti in context.Prodotto join ordiniProdotti in context.OrdineProdotto on prodotti.CdProdotto equals ordiniProdotti.CdProdotto join ordini in context.Ordine on ordiniProdotti.CdOrdine equals ordini.CdOrdine where ordini.DtInserimento > DateTime.Now.AddMonths(-3) orderby ordiniProdotti.Quantita select prodotti) .GroupBy(p => p.CdProdotto).Select(g => g.First()).Take(10); //raggruppa per codice prodotto e prende solo il primo (per evitare duplicati) return(View(await query.ToListAsync())); }