/// <summary> /// Ajouter un RDV /// </summary> /// <param name="rendezVous"></param> /// <returns></returns> internal int AjouterRendezVous(RendezVous rendezVous) { // Se base sur cliente et masseuse existante : rendezVous.Cliente = bdd.Clientes.First(p => p.Id == rendezVous.Cliente.Id); rendezVous.Masseuse = bdd.Masseuses.First(p => p.Id == rendezVous.Masseuse.Id); // Création du créneau à la volée : rendezVous.Creneau = bdd.CreneauxHoraires.Add(rendezVous.Creneau); var rdv = bdd.RendezVous.Add(rendezVous); bdd.SaveChanges(); // Gestion du choix des soins : foreach (var soin in rendezVous.ChoixSoins) { var soinEnBase = bdd.Soins.FirstOrDefault(p => p.Id == soin.Id); RendezVousSoin rdvSoin = new RendezVousSoin() { RendezVous = rdv, Soin = soinEnBase }; bdd.RendezVousSoin.Add(rdvSoin); } bdd.SaveChanges(); return(rdv.Id); }
internal int AjouterProduit(Produit produit) { var pdt = bdd.Produits.Add(produit); bdd.SaveChanges(); return(pdt.Id); }
/// <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); }
internal void AjouterSoin(Soin soin) { var soinAjoute = bdd.Soins.Add(soin); bdd.SaveChanges(); //Ajout des SoinProduit qui référencent les liens entre le soin et les produits: List <SoinProduit> soinProduit = new List <SoinProduit>(); foreach (var produit in soin.Produits) { //Récupére le produit existant en base pour ne pas //en créer un nouveau var produitEnBase = bdd.Produits.FirstOrDefault(p => p.Id == produit.Id); if (produitEnBase != null) // Utilisation du produit existant { soinProduit.Add( new SoinProduit() { Produit = produitEnBase, Soin = soinAjoute }); } else // Possibilité de créer un produit à la volée si il n'existe pas { soinProduit.Add( new SoinProduit() { Produit = produit, Soin = soinAjoute }); } } bdd.SoinProduits.AddRange(soinProduit); bdd.SaveChanges(); }
public void AjouterCliente(Cliente cliente) { bdd.Clientes.Add(cliente); bdd.SaveChanges(); }