Пример #1
0
        //suppression d'un produit/menu du panier
        public JsonResult RemoveProduit(int idProduit, string idSession)
        {
            PanierHtml  panierHtml  = null;
            PanierModel panierModel = null;

            SessionUtilisateur sessionUtilisateur = db.SessionUtilisateurs.Find(idSession);

            if (sessionUtilisateur != null && idProduit > 0)
            {
                Produit produit = db.Produits.Find(idProduit);

                if (HttpContext.Application[idSession] != null)
                {
                    panierModel = (PanierModel)HttpContext.Application[idSession];
                }

                ItemPanier itemPanier = panierModel.FirstOrDefault(p => p.GetIdProduit() == idProduit);

                //si l'itemPanier est déjà présent dans le panier alors quantité -1, sinon ajout de l'itemPanier
                if (itemPanier.Quantite == 1)
                {
                    panierModel.Remove(itemPanier);
                }
                else
                {
                    itemPanier.Quantite -= 1;
                }

                panierHtml = ShowPanier(panierModel);

                HttpContext.Application[idSession] = panierModel;
            }

            return(Json(new { panier = panierHtml.hmtl, total = string.Format("{0:0.00}", panierHtml.total) }, JsonRequestBehavior.AllowGet));
        }
Пример #2
0
        //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 + "&nbsp;&nbsp;x</span>&nbsp;&nbsp;" + 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);
        }
Пример #3
0
        //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));
        }
Пример #4
0
        //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));
        }
Пример #5
0
        //si le panier n'est pas vide, creation du panier latéral ET du total à chaque chargement de vue;
        public JsonResult GetPanierHtml(string idSession)
        {
            PanierModel panierModel = null;

            PanierHtml panierHtml = new PanierHtml();

            //panier et total n'est valent rien si l'utilisateur n'a pas de panier
            panierHtml.hmtl  = "";
            panierHtml.total = 0;

            SessionUtilisateur sessionUtilisateur = db.SessionUtilisateurs.Find(idSession);

            if (sessionUtilisateur != null)
            {
                if (HttpContext.Application[idSession] != null)
                {
                    panierModel = (PanierModel)HttpContext.Application[idSession];

                    panierHtml = ShowPanier(panierModel);
                }
            }
            return(Json(new { panier = panierHtml.hmtl, total = string.Format("{0:0.00}", panierHtml.total) }, JsonRequestBehavior.AllowGet));
        }
Пример #6
0
        //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));
        }