//JSON ADD PRODUIT public JsonResult AddProduit(int IdProduit, string idsession) { SessionUtilisateur sessionUtilisateur = db.SessionUtilisateurs.Find(Session.SessionID); PanierModel panier = GetPanier(idsession); bool isReturnOk = true; if (sessionUtilisateur != null && panier != null && IdProduit > 0) { ProduitPanier produitPanier = FindProduit(IdProduit); if (produitPanier != null) { if (panier.IdRestaurant == 0) { panier.IdRestaurant = produitPanier.IdRestaurant; panier.AddItem(produitPanier); } else if (panier.IdRestaurant == produitPanier.IdRestaurant) { panier.AddItem(produitPanier); isReturnOk = false; } } //Je sauve mon panier en session HttpContext.Application[idsession] = panier; } // Je retourne en Json le nombre de ligne return(Json(new { returnOk = isReturnOk, qte = panier.Quantite, montant = panier.Montant }, JsonRequestBehavior.AllowGet)); }
//ajout d'un produit au panier public JsonResult AddProduit(int idProduit, string idSession) { //gérer le renvoit isReturnOk sur le JS avec message erreur bool isReturnOk = false; PanierHtml panierHtml = new PanierHtml(); //récupération de l'utilisateur sur le SW SessionUtilisateur sessionUtilisateur = db.SessionUtilisateurs.Find(idSession); //récupération du panier || création d'un panier PanierModel panierModel = (PanierModel)HttpContext.Application[idSession] ?? new PanierModel(); panierModel.IdRestaurant = 0; if (sessionUtilisateur != null && panierModel != null && idProduit > 0) { //méthode FindProduit cf. ProduitPanier produitPanier = FindProduit(idProduit); if (produitPanier != null) { //si le panier est vide if (panierModel.IdRestaurant == 0) { panierModel.IdRestaurant = produitPanier.IdRestaurant; panierModel.AddItem(produitPanier); isReturnOk = true; } //si le panier n'est pas vide else if (panierModel.IdRestaurant == produitPanier.IdRestaurant) { panierModel.AddItem(produitPanier); isReturnOk = true; } } //enregistrement du panier HttpContext.Application[idSession] = panierModel; //creation html de panier lateral panierHtml = ShowPanier(panierModel); } return(Json(new { panier = panierHtml.hmtl, isreturn = isReturnOk, total = string.Format("{0:0.00}", panierHtml.total) }, 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)); }
public JsonResult AddProduit(int idProduit, string idSession, int quantite = 1) { /*SessionUtilisateur sessionUtilisateur = db.SessionUtilisateurs.Find(Session.SessionID); * * if (sessionUtilisateur == null) * { * Response.StatusCode = (int)HttpStatusCode.Unauthorized; * return Json("Session incorrecte", JsonRequestBehavior.AllowGet); * }*/ PanierModel panier = (PanierModel)HttpContext.Application[idSession] ?? new PanierModel(); Produit produit = db.Produits.Find(idProduit); if (produit == null) { Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json($"Produit #{idProduit} non trouvé", JsonRequestBehavior.AllowGet)); } if (produit.Quantite <= 0) { Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json($"Produit #{idProduit} indisponible", JsonRequestBehavior.AllowGet)); } if (panier.IdRestaurant != 0 && panier.QuantiteTotale > 0 && panier.IdRestaurant != produit.IdRestaurant) { Response.StatusCode = (int)HttpStatusCode.BadRequest; return(Json("Impossible d'ajouter au panier un produit d'un autre restaurant", JsonRequestBehavior.AllowGet)); } ProduitPanier produitPanier = CreateProduitPanier(produit, quantite); panier.IdRestaurant = produit.IdRestaurant; int quantiteProduit = panier.AddItem(produitPanier); HttpContext.Application[idSession] = panier; var data = new { quantiteProduit, quantiteTotale = panier.QuantiteTotale, prixTotal = panier.Montant, prixTotalFormat = string.Format(CultureInfo.GetCultureInfo("fr-FR"), "{0:0.00}", panier.Montant) }; return(Json(data, 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)); }
//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)); }