//public JsonResult GetListeRestaurants(int? idTypeCuisine, idRestaurant) //{ // SessionUtilisateur sessionUtilisateur = db.SessionUtilisateurs.Find(Session.SessionID); // List<ProduitPanier> panier = null; // if (sessionUtilisateur != null) // { // if (HttpContext.Application[idsession] != null) // { // panier = (List<ProduitPanier>)HttpContext.Application[idsession]; // } // } // return Json(panier, JsonRequestBehavior.AllowGet); //} public JsonResult AddMenu(int IdMenu, List <int> IdProduits, string idsession) { SessionUtilisateur sessionUtilisateur = db.SessionUtilisateurs.Find(Session.SessionID); PanierModel produitPaniers = null; if (sessionUtilisateur != null) { if (HttpContext.Application[idsession] != null) { produitPaniers = (PanierModel)HttpContext.Application[idsession]; } else { produitPaniers = new PanierModel(); } Menu menu = db.Menus.Find(IdMenu); if (menu != null) { MenuPanier menuPanier = new MenuPanier(); menuPanier.IdMenu = IdMenu; foreach (int IdProduit in IdProduits) { ProduitPanier produitPanier = FindProduit(IdProduit); if (produitPanier != null) { menuPanier.produits.Add(produitPanier); } } produitPaniers.Add(menuPanier); } HttpContext.Application[idsession] = produitPaniers; } return(Json(produitPaniers.Quantite, JsonRequestBehavior.AllowGet)); }
public JsonResult AddMenu(int idMenu, List <int> idProduits, string idSession) { SessionUtilisateur sessionUtilisateur = db.SessionUtilisateurs.Find(Session.SessionID); PanierModel panier = (PanierModel)HttpContext.Application[idSession] ?? new PanierModel(); if (sessionUtilisateur == null) { Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json("Session incorrecte", JsonRequestBehavior.AllowGet)); } Menu menu = db.Menus.Find(idMenu); if (menu == null) { Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json($"Menu #{idMenu} non trouvé", JsonRequestBehavior.AllowGet)); } MenuPanier menuPanier = new MenuPanier(); menuPanier.IdMenu = idMenu; menuPanier.Quantite = 1; menuPanier.IdRestaurant = menu.IdRestaurant; foreach (int idProduit in idProduits) { Produit produit = db.Produits.Find(idProduit); if (produit == null) { Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json($"Produit #{idProduit} non trouvé", JsonRequestBehavior.AllowGet)); } ProduitPanier produitPanier = CreateProduitPanier(produit); menuPanier.Produits.Add(produitPanier); menuPanier.Quantite++; panier.AddItem(menuPanier); } HttpContext.Application[idSession] = panier; var data = new { quantiteProduit = menuPanier.Quantite, quantiteTotale = panier.QuantiteTotale, prixTotal = panier.Montant, prixTotalFormat = string.Format(CultureInfo.GetCultureInfo("fr-FR"), "{0:0.00}", panier.Montant) }; return(Json(data, JsonRequestBehavior.AllowGet)); }
//création du panier latéral en html public PanierHtml ShowPanier(PanierModel panier) { PanierHtml panierHtml = new PanierHtml(); panierHtml.hmtl = ""; panierHtml.total = 0; foreach (ItemPanier itemPanier in panier) { panierHtml.hmtl += "<div class='row valign-wrapper mt-2 mb-0'>"; panierHtml.hmtl += "<div class='col m2' style='margin-left:0px;'>"; if (itemPanier is ProduitPanier) { panierHtml.hmtl += "<button class='btn-floating btn-small waves-effect waves-light red remove' onclick='removeProduit(\"" + itemPanier.GetIdProduit() + "\")'><i class='material-icons'>remove</i></button>"; } else { panierHtml.hmtl += "<button class='btn-floating btn-small waves-effect waves-light red remove' onclick='removeMenu(\"" + itemPanier.GetIdMenu() + "\")'><i class='material-icons'>remove</i></button>"; } panierHtml.hmtl += "</div>"; panierHtml.hmtl += "<div class='col m6' style='margin-left:0px;'><strong><span>" + itemPanier.Quantite + " x</span> " + itemPanier.Nom + "</strong></div>"; panierHtml.hmtl += "<div class='col m4' style='margin-left:0px;'>" + itemPanier.Prix * itemPanier.Quantite + " €</div>"; panierHtml.hmtl += "</div>"; if (itemPanier is MenuPanier) { panierHtml.hmtl += "<div class='row'>"; panierHtml.hmtl += "<div class='col s12 center-align'>"; panierHtml.hmtl += "<ul>"; MenuPanier menuPanier = (MenuPanier)itemPanier; foreach (ItemPanier produitMenu in menuPanier.produits) { panierHtml.hmtl += "<li>" + produitMenu.Nom + "</li>"; } panierHtml.hmtl += "</ul>"; panierHtml.hmtl += "</div>"; panierHtml.hmtl += "</div>"; } panierHtml.hmtl += "<div class='divider'></div>"; panierHtml.total += itemPanier.Prix * itemPanier.Quantite; } return(panierHtml); }
public JsonResult AddMenu(int idMenu, List <int> idProduits, string idSession) { SessionUtilisateur sessionUtilisateur = db.SessionUtilisateurs.Find(Session.SessionID); PanierModel panierModel = null; if (sessionUtilisateur != null) { if (HttpContext.Application[idSession] != null) { panierModel = (PanierModel)HttpContext.Application[idSession]; } else { panierModel = new PanierModel(); } //si le menu n'est pas présent dans le panier je le récupère Menu menu = db.Menus.Find(idMenu); MenuPanier menuPanier = new MenuPanier(); menuPanier.IdMenu = idMenu; if (menu != null) { foreach (int idProduit in idProduits) { ProduitPanier produitPanier = FindProduit(idProduit); if (produitPanier != null) { menuPanier.produits.Add(produitPanier); } } panierModel.Add(menuPanier); } panierModel.GetQuantite(); //Je sauve mon panier en session HttpContext.Application[idSession] = panierModel; } //Je retourne en Json le nombre de lignes return(Json(panierModel.Quantite, JsonRequestBehavior.AllowGet)); }
//ajout d'un menu au panier public JsonResult AddMenu(int idMenu, List <int> idProduits, string idSession) { PanierHtml panierHtml = new PanierHtml(); SessionUtilisateur sessionUtilisateur = db.SessionUtilisateurs.Find(idSession); PanierModel panierModel = (PanierModel)HttpContext.Application[idSession] ?? new PanierModel(); panierModel.IdRestaurant = 0; if (sessionUtilisateur != null && idMenu > 0 && idProduits.Count > 0) { Menu menu = db.Menus.Find(idMenu); panierModel.IdRestaurant = menu.IdRestaurant; if (menu != null) { //creation du menu MenuPanier menuPanier = new MenuPanier(); menuPanier.IdMenu = idMenu; menuPanier.Nom = menu.Nom; menuPanier.Prix = menu.Prix; menuPanier.Quantite = 1; menuPanier.IdRestaurant = menu.IdRestaurant; //ajout des produits selectionnés dans le menu foreach (int idProduit in idProduits) { ProduitPanier produitPanier = FindProduit(idProduit); if (produitPanier != null) { menuPanier.produits.Add(produitPanier); } } //ajout du menu avec ces produits dans le panier panierModel.AddItem(menuPanier); } HttpContext.Application[idSession] = panierModel; panierHtml = ShowPanier(panierModel); } return(Json(new { panier = panierHtml.hmtl, total = string.Format("{0:0.00}", panierHtml.total) }, JsonRequestBehavior.AllowGet)); }
// GET: Sw public JsonResult AddMenu(int IdMenu, List <int> IdProduits, string s) { string IdSession = Cryptage.Decrypt(s); SessionUtilisateur sessionUtilisateur = daoUtilisateur.GetSessionUtilisateur(IdSession); Panier panier = GetPanier(sessionUtilisateur.IdSession); bool isReturnOk = false; if (sessionUtilisateur != null && panier != null && IdMenu > 0 && IdProduits.Count > 0) { Menu menu = daoMenu.GetMenuById(IdMenu); if (menu != null) { MenuPanier menuPanier = new MenuPanier(); menuPanier.IdMenu = IdMenu; menuPanier.Prix = menu.Prix; menuPanier.Nom = menu.Nom; menuPanier.Quantite = 1; foreach (int IdProduit in IdProduits) { ProduitPanier produitPanier = FindProduit(IdProduit); if (produitPanier != null) { panier.IdRestaurant = produitPanier.IdRestaurant; menuPanier.produits.Add(produitPanier); } } panier.AddItem(menuPanier); isReturnOk = true; } HttpContext.Application[sessionUtilisateur.IdSession] = panier; } string jsonPanier = Newtonsoft.Json.JsonConvert.SerializeObject(panier); return(Json(new { isReturnOk, qte = panier.Quantite, total = panier.Total, monpanier = jsonPanier }, JsonRequestBehavior.AllowGet)); }
// GET: Sw public JsonResult AddMenu(int IdMenu, List <int> IdProduits, string idsession) { SessionUtilisateur sessionUtilisateur = db.SessionUtilisateurs.Find(Session.SessionID); Panier panier = GetPanier(idsession); if (sessionUtilisateur != null && panier != null && IdMenu > 0 && IdProduits.Count > 0) { Menu menu = db.Menus.Find(IdMenu); if (menu != null) { MenuPanier menuPanier = new MenuPanier(); menuPanier.IdMenu = IdMenu; menuPanier.Prix = menu.Prix; menuPanier.Nom = menu.Nom; menuPanier.Quantite = 1; foreach (int IdProduit in IdProduits) { ProduitPanier produitPanier = FindProduit(IdProduit); if (produitPanier != null) { panier.IdRestaurant = produitPanier.IdRestaurant; menuPanier.produits.Add(produitPanier); } } panier.Add(menuPanier); } HttpContext.Application[idsession] = panier; } return(Json(panier.Quantite, JsonRequestBehavior.AllowGet)); }
//ajout d'une commande Clic Eat au panier public JsonResult AddClicEatPanier(int idCommande, string idSession) { PanierHtml panierHtml = new PanierHtml(); panierHtml.hmtl = ""; panierHtml.total = 0; string message = "Une erreur est survenue !"; //récupération de la session de l'utilisateur SessionUtilisateur sessionUtilisateur = db.SessionUtilisateurs.Find(idSession); //récupération du panier || création d'un panier PanierModel panierModel = (PanierModel)HttpContext.Application[idSession] ?? new PanierModel(); if (sessionUtilisateur != null && idCommande > 0) { //on récupère la commande en bdd Commande ClicEat = db.Commandes.Find(idCommande); //si la commande n'existe pas, stopper la méthode if (ClicEat == null) { return(Json(new { toast = message }, JsonRequestBehavior.AllowGet)); } //si l'idRestaurant de la commande ne correspond pas aux produits du panier, stopper la méthode if (panierModel.IdRestaurant > 0 && panierModel.IdRestaurant != ClicEat.IdRestaurant) { message = "Votre panier contient des produits d'un autre restaurant !"; return(Json(new { toast = message }, JsonRequestBehavior.AllowGet)); } //on instancie un MenuPanier vide pour les menus MenuPanier menuPanier = new MenuPanier(); foreach (CommandeProduit commandeProduit in ClicEat.CommandeProduits) { //si ma commande est un menu if (commandeProduit.Menus.Count > 0) { //on récupère le produit ProduitPanier produitPanier = FindProduit(commandeProduit.IdProduit); //on ajoute le produit au menu if (produitPanier != null) { menuPanier.produits.Add(produitPanier); } //une fois le menu complet (3 produits), j'ajoute l'ajoute au panier if (menuPanier.produits.Count == 3) { menuPanier.IdMenu = commandeProduit.Menus.FirstOrDefault().IdMenu; menuPanier.Nom = commandeProduit.Menus.FirstOrDefault().Nom; menuPanier.Prix = commandeProduit.Menus.FirstOrDefault().Prix; menuPanier.Quantite = commandeProduit.Quantite; menuPanier.IdRestaurant = commandeProduit.Menus.FirstOrDefault().IdRestaurant; panierModel.IdRestaurant = menuPanier.IdRestaurant; panierModel.AddItem(menuPanier); //on réinitialise le MenuPanier au cas où il y a d'autres menus dans la commande menuPanier = new MenuPanier(); } } else if (commandeProduit.Menus.Count == 0) { ProduitPanier produitPanier = FindProduit(commandeProduit.IdProduit); produitPanier.Quantite = commandeProduit.Quantite; if (produitPanier != null) { //si le panier est vide if (panierModel.IdRestaurant == 0) { panierModel.IdRestaurant = produitPanier.IdRestaurant; panierModel.AddItem(produitPanier); } //si le panier n'est pas vide else if (panierModel.IdRestaurant == produitPanier.IdRestaurant) { panierModel.AddItem(produitPanier); } } } message = "Commande ajoutée au panier !"; } } //enregistrement du panier HttpContext.Application[idSession] = panierModel; //creation html du panier, necessaire pour prix total sur navbar panierHtml = ShowPanier(panierModel); return(Json(new { toast = message, total = string.Format("{0:0.00}", panierHtml.total) }, JsonRequestBehavior.AllowGet)); }