Exemple #1
0
    public ModeleDeGamme GetByProduit(Produit prod)
    {
        ModeleDeGamme dto = new ModeleDeGamme();

        using (var db = new maderaEntities())
        {
            var query = from a in db.MODELE_DE_GAMME where a.MODELE_GAMME_ID.Equals(prod.Id) select a;

            foreach (var item in query)
            {
                dto.Id              = (int)item.MODELE_GAMME_ID;
                dto.Nom             = item.MODELE_GAMME_NOM;
                dto.Description     = item.MODELE_GAMME_DESCRIPTION;
                dto.EstParDefaut    = item.EST_PAR_DEFAUT;
                dto.NbPieces        = item.MODELE_GAMME_NB_PIECES;
                dto.Surface         = item.MODELE_GAMME_SURFACE;
                dto.TypeModeleGamme = typeModeleGammeRepository.GetOne(item.TYPE_MODELE_GAMME_ID);
                dto.Gamme           = gammeRepository.GetOne(item.GAMME_ID);
                var image = from a in db.MODELE_GAMME_IMAGE where a.MODELE_GAMME_ID.Equals(dto.Id) select a;
                if (image.Count() != 0)
                {
                    dto.Image = fichierRepository.GetOne(image.First().FICHIER_ID);
                }
                var             queryFinitions = from a in db.LIER_FINITION where a.MODELE_GAMME_ID.Equals(dto.Id) select a;
                List <Finition> finitions      = new List <Finition>();
                foreach (var itemFin in queryFinitions)
                {
                    finitions.Add(finitionRepository.getOne(itemFin.FINITION_ID));
                }
                dto.Finitions = finitions;
                //
                // TODO: boucle infinie ?
                //
                dto.Modules = moduleRepository.GetCompositionByModeleGamme(dto);
            }
        }

        return(dto);
    }