Ejemplo n.º 1
0
        public async Task UpdateTest()
        {
            using (var myContext = CreateMagasinDbContext())
            {
                var repo    = new EtagereEFRepository(myContext);
                var etagere = new Etagere
                {
                    Id           = 1,
                    PoidsMaximum = 26580,
                    SecteurId    = 2
                };

                repo.Update(etagere);
                await repo.Save();
            }
            using (var myContext = CreateMagasinDbContext())
            {
                var repo     = new EtagereEFRepository(myContext);
                var elements = await repo.GetAll();

                elements.Should().HaveCount(4);
                elements.Any(e => e.Id == 1).Should().BeTrue();
                elements.Any(e => e.PoidsMaximum == 26580).Should().BeTrue();
                elements.Any(e => e.PoidsMaximum == 15000).Should().BeFalse();
                elements.Any(e => e.SecteurId == 2).Should().BeTrue();
            }
        }
Ejemplo n.º 2
0
        public async Task InsertTest()
        {
            using (var myContext = CreateMagasinDbContext())
            {
                var repo       = new EtagereEFRepository(myContext);
                var newEtagere = new Etagere
                {
                    Id           = 5,
                    PoidsMaximum = 22000,
                    SecteurId    = 2
                };

                repo.Insert(newEtagere);
                await(repo.Save());
            }
            using (var myContext = CreateMagasinDbContext())
            {
                var repo     = new EtagereEFRepository(myContext);
                var elements = await repo.GetAll();

                elements.Should().HaveCount(5);
                elements.Any(e => e.Id == 5).Should().BeTrue();
                elements.Any(e => e.PoidsMaximum == 22000).Should().BeTrue();
            }
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,PoidsMaximum,IdSecteur")] Etagere etagere)
        {
            if (id != etagere.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(etagere);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!EtagereExists(etagere.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["IdSecteur"] = new SelectList(_context.Secteurs, "Id", "Nom", etagere.IdSecteur);
            return(View(etagere));
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,PoidsMaximum,SecteurId")] Etagere etagere)
        {
            if (id != etagere.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _repo.Update(etagere);
                    await _repo.Save();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!EtagereExists(etagere.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["SecteurId"] = new SelectList(await _repo.GetAll(), "Id", "Name", etagere.SecteurId);
            return(View(etagere));
        }
Ejemplo n.º 5
0
        public decimal GetPoidsArticlesSurEtagere(Etagere etagere)
        {
            var poidsTotal = 0m;
            var qte        = 0;
            ICollection <Article> articles = GetAllArticlesByEtagere(etagere);

            foreach (Article article in articles)
            {
                ICollection <PositionMagasin> p = GetPositionMagasins(article);
                foreach (PositionMagasin pos in article.PositionMagasins)
                {
                    //Console.WriteLine($"Qté de la POSITION : {pos.Quantite}");
                    if (pos.IdEtagere == etagere.Id)
                    {
                        qte += pos.Quantite;
                        //Console.WriteLine("Quantite de produits : ", qte);
                        poidsTotal += article.Poids * qte;
                    }
                }
            }
            //Console.WriteLine("Poids TOTAL de produits sur l'etagere: ", poidsTotal);
            Console.WriteLine($"Poids actuellement sur l'étagère numéro {etagere.Id} :\n{poidsTotal}");

            return(poidsTotal);
        }
Ejemplo n.º 6
0
 public IActionResult Create(Etagere etagere)
 {
     // var secteur = _secteurRepository.GetById(etagere.Secteur.Id);
     // etagere.Secteur = secteur;
     _etagereRepository.Insert(etagere);
     return(View());
 }
Ejemplo n.º 7
0
 public IEnumerable <Article> GetAllBySecteur(PositionMagasin pm, Etagere etagere, Secteur secteur)
 {
     using (var ctx = new DemoDbContext())
     {
         var article = ctx.Articles.Where(m => m.Id == pm.IdArticle && pm.IdEtagere == etagere.Id && secteur.Id == etagere.IdSecteur).ToList();
         return(article);
     }
 }
Ejemplo n.º 8
0
        public async Task <IActionResult> Create([Bind("Id,PoidsMaximum,SecteurId")] Etagere etagere)
        {
            if (ModelState.IsValid)
            {
                _repo.Insert(etagere);
                await _repo.Save();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["SecteurId"] = new SelectList(await _repoSecteur.GetAll(), "Id", "Name", etagere.SecteurId);
            return(View(etagere));
        }
Ejemplo n.º 9
0
        public async Task <IActionResult> Create([Bind("Id,PoidsMaximum,IdSecteur")] Etagere etagere)
        {
            if (ModelState.IsValid)
            {
                _context.Add(etagere);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["IdSecteur"] = new SelectList(_context.Secteurs, "Id", "Nom", etagere.IdSecteur);
            return(View(etagere));
        }
Ejemplo n.º 10
0
        private void SupprimerEtagere(object sender, RoutedEventArgs e)
        {
            Etagere selection = (Etagere)lvEtagere.SelectedItem;

            if (selection != null)
            {
                if (MessageBox.Show($"Etes-vous sur de vouloir supprimer l'etagere {selection.Nom} de la liste ?", "Confirmation", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
                {
                    Statics.TryCatch(() => { _bdd.SupprimerEtagere(selection); }, nameof(SupprimerEtagere));
                }
            }
        }
Ejemplo n.º 11
0
 public double GetAveragePrice(PositionMagasin pm, Etagere etagere, Secteur secteur)
 {
     using (var ctx = new DemoDbContext())
     {
         var articles      = GetAllBySecteur(pm, etagere, secteur);
         var articlesTotal = 0.0;
         foreach (Article article in articles)
         {
             articlesTotal += article.PrixInitial;
         }
         var avg = articlesTotal / articles.Count();
         return(avg);
     }
 }
Ejemplo n.º 12
0
        public Etagere FindById(int id)
        {
            Etagere etagere = new Etagere();

            try
            {
                etagere = db.Etageres.First(i => i.Id == id);
                db.SaveChanges();
            }
            catch
            {
                Console.WriteLine("Oups, erreur dans FindById mais on continue !");
                etagere.Id = 0;
            }
            //finally
            //{
            //}

            return(etagere);
        }
Ejemplo n.º 13
0
        public void Insert(Article article, PositionMagasin pm, Etagere etagere)
        {
            var totalWeight = 0.0;

            using (var ctx = new DemoDbContext())
            {
                var articlesEtagere = GetAllByEtagere(pm, etagere);
                foreach (Article art in articlesEtagere)
                {
                    totalWeight += art.Poids;
                }
                totalWeight += article.Poids;
                if (totalWeight > etagere.PoidsMaximum)
                {
                    Console.WriteLine("L'étagère contient trop d'article");
                }
                else
                {
                    ctx.Articles.Add(article);
                    ctx.SaveChanges();
                }
            }
        }
Ejemplo n.º 14
0
 public void Update(Etagere etagere)
 {
     context.Etageres.Update(etagere);
 }
Ejemplo n.º 15
0
 public void Remove(Etagere etagere)
 {
     context.Etageres.Remove(etagere);
 }
Ejemplo n.º 16
0
 public void Insert(Etagere etagere)
 {
     context.Etageres.Add(etagere);
 }
Ejemplo n.º 17
0
        public async Task <Etagere> FindById(int id)
        {
            Etagere etagere = await context.Etageres.Include(e => e.Secteur).FirstOrDefaultAsync(m => m.Id == id);

            return(etagere);
        }
Ejemplo n.º 18
0
 public void Remove(Etagere etagere)
 {
     db.Remove(etagere);
     db.SaveChanges();
 }
Ejemplo n.º 19
0
 public void Update(Etagere etagere)
 {
     db.Update(etagere);
     db.SaveChanges();
 }
Ejemplo n.º 20
0
        public bool VerifPoidsEtagere(Etagere etagere)
        {
            var poids = GetPoidsArticlesSurEtagere(etagere);

            return(etagere.PoidsMaximum > poids);
        }
Ejemplo n.º 21
0
 public void Remove(Etagere etagere)
 {
     _dbContext.Remove(etagere);
     _dbContext.SaveChanges();
 }
Ejemplo n.º 22
0
        //public PositionMagasin GetPosition(Article Article)
        //public List<PositionMagasin> GetPositionMagasins(Article Article)
        //{
        //    List<PositionMagasin> PositionMagasins = db.PositionMagasins(p => p.IdArticle == Article.Id);
        //    return PositionMagasins;
        //}

        public List <Article> GetAllArticlesByEtagere(Etagere Etagere)
        {
            // d'oú vient la collection PositionMagasins ???
            return(db.Articles.Where(a => a.PositionMagasins.Any(p => p.IdEtagere == Etagere.Id)).ToList());
        }
Ejemplo n.º 23
0
 public void Update(Etagere etagere)
 {
     _dbContext.Update(etagere);
     _dbContext.SaveChanges();
 }
Ejemplo n.º 24
0
 public void Insert(Etagere etagere)
 {
     _dbContext.Etageres.Add(etagere);
     _dbContext.SaveChanges();
 }
Ejemplo n.º 25
0
 public IActionResult Edit(Etagere etagere)
 {
     _etagereRepository.Update(etagere);
     return(View(etagere));
 }
Ejemplo n.º 26
0
 public void Insert(Etagere etagere)
 {
     db.Etageres.Add(etagere);
     db.SaveChanges();
 }
Ejemplo n.º 27
0
        static void Main(string[] args)
        {
            Console.WriteLine("TP Librairie \nBruno Andrieu");
            ArticleRepoEF truc = new ArticleRepoEF();

            truc.db.Database.EnsureDeleted();
            truc.db.Database.EnsureCreated();
            using (var ctx = new LibrairieDbContext())
            {
                ctx.Database.EnsureDeleted();
                ctx.Database.EnsureCreated();

                ctx.Secteurs.AddRange(
                    new[] {
                    new Secteur
                    {
                        Id  = 1,
                        Nom = "Secteur A"
                    },
                    new Secteur
                    {
                        Id  = 2,
                        Nom = "Secteur B"
                    }
                });
                ctx.Etageres.AddRange(
                    new[] {
                    new Etagere
                    {
                        Id           = 1,
                        PoidsMaximum = 15000,
                        IdSecteur    = 1
                    },
                    new Etagere
                    {
                        Id           = 2,
                        PoidsMaximum = 17000,
                        IdSecteur    = 1
                    },
                    new Etagere
                    {
                        Id           = 3,
                        PoidsMaximum = 15500,
                        IdSecteur    = 1
                    },
                    new Etagere
                    {
                        Id           = 4,
                        PoidsMaximum = 12000,
                        IdSecteur    = 2
                    }
                });
                ctx.Articles.AddRange(
                    new[] {
                    new Article
                    {
                        Id          = 1,
                        Libelle     = "Tablette",
                        SKU         = "123456",
                        DateSortie  = new DateTime(2019, 02, 10),
                        PrixInitial = 499.99m,
                        Poids       = 499m,
                    },
                    new Article
                    {
                        Id          = 2,
                        Libelle     = "Telephone",
                        SKU         = "789101",
                        DateSortie  = new DateTime(2019, 03, 02),
                        PrixInitial = 299.59m,
                        Poids       = 258m,
                    },
                    new Article
                    {
                        Id          = 3,
                        Libelle     = "PC",
                        SKU         = "147852",
                        DateSortie  = new DateTime(2018, 05, 05),
                        PrixInitial = 1566.23m,
                        Poids       = 1890m,
                    },
                    new Article
                    {
                        Id          = 4,
                        Libelle     = "Bureau",
                        SKU         = "258963",
                        DateSortie  = new DateTime(2010, 06, 02),
                        PrixInitial = 350m,
                        Poids       = 9500m,
                    }
                });
                ctx.PositionMagasins.AddRange(
                    new[] {
                    new PositionMagasin
                    {
                        IdArticle = 1,
                        IdEtagere = 1,
                        Quantite  = 10
                    },
                    new PositionMagasin
                    {
                        IdArticle = 2,
                        IdEtagere = 1,
                        Quantite  = 2
                    },
                    new PositionMagasin
                    {
                        IdArticle = 1,
                        IdEtagere = 3,
                        Quantite  = 15
                    }
                });

                ctx.SaveChanges();
            }
            Etagere uneEtagere = new Etagere();

            uneEtagere.Id           = 1;
            uneEtagere.PoidsMaximum = 15000;
            uneEtagere.IdSecteur    = 1;

            Console.WriteLine("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ");
            //Console.WriteLine("Poids TOTAL de produits sur l'etagere: ");
            Console.WriteLine(truc.GetPoidsArticlesSurEtagere(uneEtagere));

            //var poids = truc.GetPoidsArticlesSurEtagere(uneEtagere);
            //Console.WriteLine($"Poids total : {poids}");

            Console.WriteLine("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ");
            List <Article> lesArticles = truc.GetAllArticlesByEtagere(uneEtagere);
            int            count       = 0;

            Console.WriteLine($"Poids Max Etagère numéro {uneEtagere.Id} : {uneEtagere.PoidsMaximum}");
            foreach (Article unArticle in lesArticles)
            {
                count++;
                Console.WriteLine($"Rang de l'Element #{count}: \nLibellé de l'article: {unArticle.Libelle}");
                Console.WriteLine($"Poids de l'article: {unArticle.Poids}");
                Console.WriteLine("- - - - - - - - -      - - - -        - -  -");
                ICollection <PositionMagasin> p = truc.GetPositionMagasins(unArticle);
                foreach (PositionMagasin pos in unArticle.PositionMagasins)
                {
                    if (pos.IdEtagere == uneEtagere.Id)
                    {
                        Console.WriteLine($"Qté de {unArticle.Libelle} à cette position : {pos.Quantite}");
                    }
                    Console.WriteLine("- - - - - - - - -      - - - -        - -  -");
                }
            }
            Console.WriteLine("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ");
            Console.WriteLine($"Nombre d'articles sur cette étagère : {lesArticles.Count}");
            Console.WriteLine("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ");

            Console.WriteLine("\n\nTest article inexistant : id = 123456 ");
            var articleX = truc.FindById(123456);

            Console.WriteLine(articleX.Libelle);


            /*
             * Type t = typeof(Article);
             * // Get the public properties.
             * PropertyInfo[] propInfos = t.GetProperties(BindingFlags.Public | BindingFlags.Instance);
             * Console.WriteLine("The number of public properties: {0}.\n",
             *                propInfos.Length);
             * // Display the public properties.
             * DisplayPropertyInfo(propInfos);
             *
             * // Get the nonpublic properties.
             * PropertyInfo[] propInfos1 = t.GetProperties(BindingFlags.NonPublic | BindingFlags.Instance);
             * Console.WriteLine("The number of non-public properties: {0}.\n",
             *                propInfos1.Length);
             * // Display all the nonpublic properties.
             * DisplayPropertyInfo(propInfos1);
             * }
             *
             * public static void DisplayPropertyInfo(PropertyInfo[] propInfos)
             * {
             * // Display information for all properties.
             * foreach (var propInfo in propInfos)
             * {
             *  bool readable = propInfo.CanRead;
             *  bool writable = propInfo.CanWrite;
             *
             *  Console.WriteLine("   Property name: {0}", propInfo.Name);
             *  Console.WriteLine("   Property type: {0}", propInfo.PropertyType);
             *  Console.WriteLine("   Read-Write:    {0}", readable & writable);
             *  if (readable)
             *  {
             *      MethodInfo getAccessor = propInfo.GetMethod;
             *      Console.WriteLine("   Visibility:    {0}",
             *                        GetVisibility(getAccessor));
             *  }
             *  if (writable)
             *  {
             *      MethodInfo setAccessor = propInfo.SetMethod;
             *      Console.WriteLine("   Visibility:    {0}",
             *                        GetVisibility(setAccessor));
             *  }
             *  Console.WriteLine();
             * }
             */
        }