using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using GestionDeCommerceInfoClasseBDDNCouches.DataLayer; namespace GestionDeCommerceInfoClasseBDDNCouches { public class Panier { public int idPanier; public Utilisateur user; public string nomPanier; public Type_E type; public Status_E status; public DateTime dateAchat; public List ArticleDansPanier; public enum Type_E {Vente, Achat}; public enum Status_E { NULL = 0x00, Commander = 0x01, Envoyer = 0x02, Recu = 0x03 }; public struct LSTArticle { public Article article; public int quantitee; public int id; public float prixHTVAPC; public float prixHTVATot { get { return prixHTVATot * quantitee; } } public LSTArticle(Article art,int id, int quantitee) { this.article = art; this.quantitee = quantitee; prixHTVAPC = (float)article.PrixHTVA; // prixHTVATot = prixHTVAPC * quantitee; this.id = id; } public LSTArticle(Article article, int quantitee) { this.article = article; this.quantitee = quantitee; prixHTVAPC = (float)article.PrixHTVA; //prixHTVATot = prixHTVAPC * quantitee; this.id = -1; } public LSTArticle(Article article, int id, int quantitee, float prix) { this.article = article; this.quantitee = quantitee; prixHTVAPC = (float)article.PrixHTVA; //prixHTVATot = prixHTVAPC * quantitee; this.id = id; } public override string ToString() { return article.Designation; } public static implicit operator string(LSTArticle lSTArticle) { return lSTArticle.ToString(); } } public Panier() { ArticleDansPanier = new List(); } public Panier(int id, Utilisateur user, string nomPanier, Type_E type, Status_E status, DateTime dateAchat, List lstart) { idPanier = id; this.user = user; this.nomPanier = nomPanier; this.type = type; this.status = status; this.dateAchat = dateAchat; ArticleDansPanier = lstart; } public Panier(Utilisateur user, string nomPanier, Type_E type, Status_E status, DateTime dateAchat) { this.user = user; this.nomPanier = nomPanier; this.type = type; this.status = status; this.dateAchat = dateAchat; ArticleDansPanier = new List(); idPanier = -1; } public bool SuprimerArticlePanier(BDDAccesPanier bdd, LSTArticle article) { for(int i=0;ArticleDansPanier.Count()>i;i++) { if(ArticleDansPanier[i].id == article.id) { ArticleDansPanier.RemoveAt(i); return true; } } return false; } public LSTArticle ajoutArticle(BDDAccesPanier bdd, Article artcle, int quant) { LSTArticle lstart = new LSTArticle(artcle, quant); bdd.AjouterArticlePanier(lstart, this.idPanier); ArticleDansPanier.Add(lstart); return lstart; } public LSTArticle? ajoutArticle(Article artcle, int quant) { if (idPanier < 0) { LSTArticle lstart = new LSTArticle(artcle, quant); ArticleDansPanier.Add(lstart); return lstart; } else return null; } public void EnvoyerPanierBDD(BDDAccesPanier bdd) { if(idPanier < 0) { bdd.CreerPanier(this); foreach(LSTArticle lstart in ArticleDansPanier) { bdd.AjouterArticlePanier(lstart, this.idPanier); } } } } }