public ActionResult ReprendreArticles(int commandeId, bool viderPanier) { CommandeDAL commandeDAL = new CommandeDAL(); Commande commande = commandeDAL.Detail(commandeId); if (commande != null && commande.ClientId == Client.Id) { List <ArticleViewModel> articles = commandeDAL.Articles(commandeId); if (viderPanier) { new PanierDAL(Client.Id).Supprimer(); PanierViewModel.Initialiser(); ViewBag.Panier = null; //todo } List <Article> articlesKo = new List <Article>(); foreach (var a in articles) { if (!PanierViewModel.Ajouter(a.Article, a.Quantite, Client.Id, ProspectGuid)) { articlesKo.Add(a.Article); } } ViewBag.Panier = PanierViewModel; TempData["ArticlesNonAjoutes"] = articlesKo; if (articlesKo.Count > 0) { string dossierImagesArticles = ConfigurationManager.AppSettings["PathImagesArticles"]; string message = "Les articles suivants ne peuvent pas être repris car ils ne sont plus disponibles :" + "<div class=\"gestionCommandeArticle\">" + "<section class=\"imagesGestionCommande\">"; foreach (Article article in articlesKo) { message += "<div class=\"indexArticle\">" + $"<img src=\"{dossierImagesArticles}/{article.Image}\" alt=\"{article.Nom}\" /> " + $"<p>{article.Nom}</p>" + $"</div>"; } message += "</section>" + "</div>"; TempData["message"] = new Message(message, TypeMessage.Info); // TODO faire plus propre et ailleurs (formatage html propre à la vue) } else { TempData["message"] = new Message($"La reprise des {articles.Count} articles de votre commande s'est correctement réalisée", TypeMessage.Ok); } } RecupererPanierEnBase(); ViewBag.Panier = PanierViewModel; return(RedirectToAction("Index", "Panier")); }
public ActionResult Ajouter(string nom, string ancre, bool?retourPageArticleIndex) { Article article = new ArticleDAL().Details(nom); if (article != null && article.DansCarte) { PanierViewModel.Ajouter(article, 1, Client.Id, ProspectGuid); ViewBag.Panier = PanierViewModel; } if (retourPageArticleIndex ?? false) { return(Redirect("/Article" + ancre)); } else { return(Redirect(Request.UrlReferrer.AbsolutePath + ancre)); } }