public static Produit GetProduitById(string id, bool initializer = true)
        {
            var pdao               = ProduitDAL.SelectProduitById(id);
            var lotProduit         = new Lot();
            var utilisateurProduit = new Utilisateur();
            var stockProduit       = new Stock();
            var enchereGagnante    = new Enchere();
            var categorieProduit   = new Categorie();


            if (initializer)
            {
                lotProduit         = LotORM.GetLotById(pdao.LotId, false);
                utilisateurProduit =
                    UtilisateurORM.GetUtilisateurById(pdao.UtilisateurId, false);
                stockProduit = StockORM.GetStockById(pdao.StockId, false);
                if (!string.IsNullOrEmpty(pdao.EnchereGagnanteId))
                {
                    enchereGagnante =
                        EnchereORM.GetEnchereById(pdao.EnchereGagnanteId, false);
                }

                //todo decomente ici
                // categorieProduit =
                //     CategorieORM.GetCategorieById(CategorieDAL.SelectCategorieById(pdao.CategorieId).CategorieId,
                //         false);
            }


            var produit = new Produit(pdao.IdProduit, lotProduit, utilisateurProduit, stockProduit, enchereGagnante,
                                      categorieProduit
                                      , pdao.NomArtiste, pdao.NomStyle, pdao.NomProduit, pdao.PrixReserve, pdao.ReferenceCatalogue,
                                      pdao.DescriptionProduit, pdao.IsSend);

            if (initializer)
            {
                _produitsDictionary[produit.IdProduit] = produit;

                LotORM.Populate(produit.LotProduit);
                UtilisateurORM.Populate(new List <Utilisateur>(new[]
                {
                    produit.UtilisateurProduit
                }));
                StockORM.Populate(produit.StockProduit);
                if (!string.IsNullOrEmpty(produit.EnchereGagnante.IdEnchere))
                {
                    EnchereORM.Populate(produit.EnchereGagnante);
                }

                //todo decomenter ici
                // CategorieORM.Populate(produit.CategorieProduit);
            }

            return(produit);
        }
        public static Produit produitDaoToProduit(ProduitDAO produitDao)
        {
            var produit = new Produit(produitDao.IdProduit,
                                      LotORM.GetLotById(produitDao.LotId, false),
                                      UtilisateurORM.GetUtilisateurById(produitDao.UtilisateurId, false),
                                      StockORM.GetStockById(produitDao.StockId, false),
                                      EnchereORM.GetEnchereById(produitDao.EnchereGagnanteId, false),
                                      new Categorie()
                                      , produitDao.NomArtiste, produitDao.NomStyle, produitDao.NomProduit, produitDao.PrixReserve,
                                      produitDao.ReferenceCatalogue,
                                      produitDao.DescriptionProduit, produitDao.IsSend);

            return(produit);
        }