Пример #1
0
        /// <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;
 }
Пример #4
0
        /// <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);
            }
        }
Пример #6
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"));
        }
Пример #7
0
        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 }));
        }