Exemplo n.º 1
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);
        }
Exemplo n.º 2
0
 public UtilisateurDAL()
 {
     bdd = new BddContext();
 }
Exemplo n.º 3
0
 public RendezVousDAL()
 {
     bdd = new BddContext();
 }
Exemplo n.º 4
0
 public CommandeDAL()
 {
     bdd = new BddContext();
 }
Exemplo n.º 5
0
 public ProduitDAL()
 {
     bdd = new BddContext();
 }
Exemplo n.º 6
0
 public SoinDAL()
 {
     bdd = new BddContext();
 }