/// <summary> /// Ajout d'une commande. Crée le rendez-vous à la volée si il est innexistant. /// </summary> /// <param name="commande"></param> /// <returns></returns> internal int AjouterCommande(Commande commande) { // Deux cas : On crée le rendez-vous à la volée, ou alors le rendez-vous est existant. RendezVous rendezVous = null; if (commande.RendezVous != null && commande.RendezVous.Creneau != null) // Si il y a un rendezVous dans la commande : { rendezVous = bdd.RendezVous.FirstOrDefault(p => p.Id == commande.RendezVous.Id); //Soit le rendezVous existe déjà en base if (rendezVous == null) // Si le rendezVous n'existe pas en base, on le crée { int rendezVousId; using (RendezVousDAL rdvDAL = new RendezVousDAL()) { rendezVousId = rdvDAL.AjouterRendezVous(commande.RendezVous); } // On a modifié la bdd dans une autre instance de BddContext. On revient à 0 pour avoir un context cohérent. // Pas d'appel à saveChange car il a été fait dans l'autre instance. bdd.Dispose(); bdd = new BddContext(); rendezVous = bdd.RendezVous.First(p => p.Id == rendezVousId); } } // à ce stade, l'objet RendezVous correspond à la propriété RendezVous en base de l'objet Commande. (qu'il existe ou non) : commande.RendezVous = rendezVous; // La cliente existe forcément en base. commande.Cliente = bdd.Clientes.First(p => p.Id == commande.Cliente.Id); commande.DateCreation = DateTime.Now.Date; commande.EtatCommande = EnumEtatCommande.NonTraitee; Commande commandeEnBase = bdd.Commandes.Add(commande); bdd.SaveChanges(); // Ajout des liens avec les produits une fois que la commande est ajoutée : if (commande.Produits != null && commande.Produits.Count > 0) { foreach (var produit in commande.Produits) { var produitEnBase = bdd.Produits.First(p => p.Id == produit.Id); bdd.CommandeProduit.Add(new CommandeProduit() { Commande = commandeEnBase, // l'objet commande fraichement mis en base Produit = produitEnBase // l'objet Produit issu de la base }); } bdd.SaveChanges(); } return(commandeEnBase.Id); }
public UtilisateurDAL() { bdd = new BddContext(); }
public RendezVousDAL() { bdd = new BddContext(); }
public CommandeDAL() { bdd = new BddContext(); }
public ProduitDAL() { bdd = new BddContext(); }
public SoinDAL() { bdd = new BddContext(); }