Inversion de règle Func<T,bool>
Salut,
J'ai créé une Func pour avoir une règle définie à un seul endroit :
Code:
1 2 3 4 5
|
internal static Func<RULE, bool> ActiveRULE()
{
return (r => (!r.END_DATE.HasValue || (r.END_DATE.HasValue && r.END_DATE.Value >= DateTime.Now)) && (!r.DISABLED_DATE.HasValue));
} |
Je l'utilise comme ça
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
public List<AdditionalRightsModel> GetActiveAdditionalRightRules()
{
List<AdditionalRightsModel> toReturn = null;
using (var _dbContext = new MatisContext(true))
{
toReturn = _dbContext.RULE
.Where(ActiveRULE())
.Where(r => r.TYPE == (byte?)enRuleTypesByte.AdditionalRight)
.OrderByDescending(r => r.CREATION_DATE)
.Select(r => r.ToAdditionalRightRulesModel(true)).ToList();
}
return toReturn;
} |
Comme la négation de la règle n'est pas très simple, je voudrait pouvoir écrire un truc du style Not maRegle() mais je ne trouve pas la syntaxe.
Code:
.Where(!ActiveRULE())
Ne fonctionne bien sur pas :calim2:
Pourriez-vous m'aider ?
Merci