Exemplo n.º 1
0
        private bool Evaluate(AoUsesFlagsAttribute usesFlags)
        {
            switch (usesFlags.Criteria)
            {
            case FlagsCriteria.HasAll:
                return(this.EvaluateHasAll(usesFlags));

            case FlagsCriteria.HasAny:
                return(this.EvaluateHasAny(usesFlags));

            case FlagsCriteria.EqualsToAny:
                return(this.EvaluateEqualsToAny(usesFlags));

            case FlagsCriteria.Default:
                return(true);

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Exemplo n.º 2
0
        private bool EvaluateHasAny(AoUsesFlagsAttribute usesFlags)
        {
            var flagValue = this.GetFlagValue(usesFlags.Flag);

            return((flagValue & usesFlags.CriteriaValue) > 0);
        }
Exemplo n.º 3
0
        private bool EvaluateEqualsToAny(AoUsesFlagsAttribute usesFlags)
        {
            var flagValue = this.GetFlagValue(usesFlags.Flag);

            return(usesFlags.CriteriaValues.Any(v => v == flagValue));
        }
Exemplo n.º 4
0
        private bool EvaluateHasNone(AoUsesFlagsAttribute usesFlags)
        {
            var flagValue = this.GetFlagValue(usesFlags.Flag);

            return(usesFlags.CriteriaValues.All(v => (v & flagValue) == 0));
        }