/// <summary> /// Affiche le detail d'une commande /// </summary> /// <returns>Vue avec PannierSession</returns> public IActionResult DetailPanier() { PanierSessionViewModel panierSession = deserialise(); ViewBag.totalPanier = totalPanier(); if (panierSession != null) { ViewBag.Titre = "Commande : " + panierSession.Cmd.Date.ToString(); ViewBag.prods = _repo.FindAll().ToList(); List <double> ssTotaux = new List <double>(); double Total = 0; foreach (var detail in panierSession.Cmd.DetailCommande) { Produit prod = _repo.FindOne(detail.Idproduit); double ssTotal1 = ssTotal(detail, prod); ssTotaux.Add(ssTotal1); Total += ssTotal1; } ViewBag.ssTotaux = ssTotaux.ToArray(); ViewBag.Total = Total; } else { ViewBag.Titre = "Détail Panier"; } return(View(panierSession)); }
public void clearSession() { PanierSessionViewModel panierSession = deserialise(); if (panierSession != null) { _session.Clear(); } }
public AccountController(ISessionTirelire session, SignInManager <Client> signInManager, IRepository <Adresse> repoAd, UserManager <Client> userManager, RoleManager <IdentityRole> roleManager) { _session = session; _panierSession = _session.deserialise(); _signInManager = signInManager; _repoAd = repoAd; _userManager = userManager; _roleManager = roleManager; }
/// <summary> /// Ajax en modifiant la quantite je recalcule les prix /// et je mets a jours la session /// </summary> /// <param name="id"></param> /// <param name="quantite"></param> /// <returns></returns> public IActionResult CalculPanier(int id, int quantite) { PanierSessionViewModel panierSession = deserialise(); var prod = _repo.FindOne(id); CalculViewModel cal = new CalculViewModel(); if (panierSession != null) { DetailCommande detail = panierSession.Cmd.DetailCommande.Where(p => p.Idproduit == id).FirstOrDefault(); if (detail != null) { detail.Quantite = quantite; } //Serialisation et MAJ session string jsonPanier1 = JsonSerializer.Serialize( panierSession ); HttpContext.Session.SetString("Panier", jsonPanier1); panierSession.Cmd.Date = DateTime.Now.ToString("d"); int quantiteTotal1 = 0; double total = 0; foreach (var d in panierSession.Cmd.DetailCommande) { quantiteTotal1 += d.Quantite; Produit prod1 = _repo.FindOne(d.Idproduit); total += ssTotal(d, prod1); } panierSession.QuantiteAjoute = quantiteTotal1; //Serialisation et MAJ session string jsonPanier = JsonSerializer.Serialize( panierSession ); HttpContext.Session.SetString("Panier", jsonPanier); cal = new CalculViewModel() { ssTotal = ssTotal(detail, prod), Total = total, quantiteTotal = quantiteTotal1, date = panierSession.Cmd.Date }; } return(new JsonResult(cal)); }
/// <summary> /// Quantite pour un produit dans le panier /// </summary> /// <returns>int ou 0</returns> public int quantitePanier(int id) { if (deserialise() != null) { PanierSessionViewModel panierSession = deserialise(); var detail = panierSession.Cmd.DetailCommande.Where(p => p.Idproduit == id).FirstOrDefault(); if (detail != null) { return(detail.Quantite); } else { return(0); } } else { return(0); } }
/// <summary> /// Supprimer un article du panier /// </summary> /// <param name="id">Id du produit</param> /// <returns></returns> public IActionResult Supprimer(int id) { var session = HttpContext.Session; //Panier Remplit if (session.GetString("Panier") != null) { PanierSessionViewModel panierSession = deserialise(); int nbDetail = panierSession.Cmd.DetailCommande.Count; //Panier avec un produit if (nbDetail == 1) { HttpContext.Session.Clear(); } //Panier avec plusieurs produits else if (nbDetail > 1) { //Recherche du detail dans la collection DetailCommande qui correspond a IdProduit var detail = panierSession.Cmd.DetailCommande.Where(d => d.Idproduit == id).FirstOrDefault(); //Diminuons la quantitePanier panierSession.QuantiteAjoute -= detail.Quantite; //Suppression du detail panierSession.Cmd.DetailCommande.Remove(detail); //Serialisation et MAJ session string jsonPanier = JsonSerializer.Serialize( panierSession ); session.SetString("Panier", jsonPanier); } } return(RedirectToAction("DetailPanier", "Panier")); }
public IActionResult Ajouter(int id) { var session = HttpContext.Session; //Récupère la quantité int quantite = Int32.Parse(Request.Form["quantite"]); //Récupérer le produit var prod = _repo.FindOne(id); //Panier Vide if (session.GetString("Panier") == null) { //Date Commande cmd = new Commande { Date = DateTime.Now.ToString("d") }; //Detail Commande cmd.DetailCommande.Add( new DetailCommande { Quantite = quantite, Prix = prod.Prix, Idproduit = prod.Id, } ); //PanierSession : Cmd+QuantiteAjoute int quantiteTotal = 0; foreach (var detail in cmd.DetailCommande) { quantiteTotal += detail.Quantite; } PanierSessionViewModel panierSession = new PanierSessionViewModel { Cmd = cmd, QuantiteAjoute = quantiteTotal }; //Serialisation string jsonPanier = JsonSerializer.Serialize( panierSession ); //Creation session session.SetString("Panier", jsonPanier); } //Panier Remplit else { //Deserialiser : pannierSession PanierSessionViewModel panierSession = JsonSerializer.Deserialize <PanierSessionViewModel>(session.GetString("Panier")); //Panier Identique DetailCommande detail = panierSession.Cmd.DetailCommande.Where(p => p.Idproduit == id).FirstOrDefault(); if (detail != null) { detail.Quantite = quantite; int quantiteTotal1 = 0; foreach (var detail1 in panierSession.Cmd.DetailCommande) { quantiteTotal1 += detail1.Quantite; } panierSession.QuantiteAjoute = quantiteTotal1; } else { panierSession.Cmd.DetailCommande.Add( new DetailCommande { Quantite = quantite, Prix = prod.Prix, Idproduit = prod.Id } ); int quantiteTotal2 = 0; foreach (var detail2 in panierSession.Cmd.DetailCommande) { quantiteTotal2 += detail2.Quantite; } panierSession.QuantiteAjoute = quantiteTotal2; } panierSession.Cmd.Date = DateTime.Now.ToString("d"); //Serialiser string jsonPanier2 = JsonSerializer.Serialize( panierSession ); session.SetString("Panier", jsonPanier2); } TempData["statusAjoutPanier"] = 1; return(RedirectToAction("Detail", "Home", new { id = prod.Id })); }