Bonjour,

J'ai une grosse requête sql de la mort à transformer et j'obtiens ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
var productProductLines = db.Products
                .Where(p => p.IsActiv == true
                    && p.Product_ProductLines.Any(pl => pl.ProductLine.CustomerStock.Customer.Employee.SiteId == (int)siteId))
                .SelectMany(p => p.Product_ProductLines).Distinct();
 
            productProductLines = productProductLines.Where(p => p.ProductLine.CustomerStock.Customer.Employee.SiteId == (int)siteId);
jusque là pas de problème !

mais je n'arrive pas à transformer un filtre optionnel codé comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
            if (!string.IsNullOrWhiteSpace(rbPhoto))
                if (rbPhoto.Equals("Oui"))
                    query.Append(" And Case when exists (select * from fichiers with(nolock) where fic_nom_origine = 'ART_ID' and fic_id_origine = art_id) then 0 else art_prise_photo end = 1 ");
                else if (rbPhoto.Equals("Non"))
                    query.Append(" And Case when exists (select * from fichiers with(nolock) where fic_nom_origine = 'ART_ID' and fic_id_origine = art_id) then 0 else art_prise_photo end = 0 ");
sachant que fic_id_origine pointe vers la PK de la table Product.
Comme vous pouvez le comprendre, je n'arrive pas à coder les clauses correspondantes au retour de mes radiobutton.

merci pour votre aide.

Je tiens à préciser qu'il s'agit bien d'un problème algorithmique... J'ai déjà tatonné comme ci dessus :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
            if (!string.IsNullOrWhiteSpace(rbtPhoto))
            {
                //if (rbtPhoto.Equals("Oui"))
                //    productProductLines = productProductLines.Where(p => !(p.Product.Files.Where(f => f.ItemOrigin == "ART_ID").Count() > 0) || p.Product.TakePhoto);
                //else if (rbtPhoto.Equals("Non"))
                //    productProductLines = productProductLines.Where(p => !(!(p.Product.Files.Where(f => f.ItemOrigin == "ART_ID").Count() > 0) || p.Product.TakePhoto));
 
                ViewBag.RbtPhoto = rbtPhoto;
            }
mais le résultat obtenu n'est pas celui attendu.