예제 #1
0
        /// <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);
        }
예제 #2
0
        internal int AjouterProduit(Produit produit)
        {
            var pdt = bdd.Produits.Add(produit);

            bdd.SaveChanges();
            return(pdt.Id);
        }
예제 #3
0
        /// <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);
        }
예제 #4
0
        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();
        }
예제 #5
0
 public void AjouterCliente(Cliente cliente)
 {
     bdd.Clientes.Add(cliente);
     bdd.SaveChanges();
 }