1234567891011121314151617181920212223242526272829303132333435363738394041 |
- using System.Collections.Generic;
- using System.Linq;
- namespace InABox.Mobile
- {
- public enum MatchComparison
- {
- EqualTo,
- NotEqualTo
- }
- public enum MatchType
- {
- Any,
- All
- }
-
- public class AbstractMatcher<T> : AbstractMultiConverter<T,bool>
- {
- public MatchComparison Comparison { get; set; }
-
- public MatchType Type { get; set; }
-
- public T Value { get; set; }
-
- protected override bool Convert(IEnumerable<T> value, object parameter = null)
- {
- return Type switch
- {
- MatchType.Any => Comparison == MatchComparison.EqualTo
- ? value.Any(x => Equals(Value, x))
- : value.Any(x => !Equals(Value, x)),
- MatchType.All => Comparison == MatchComparison.EqualTo
- ? value.All(x => Equals(Value, x))
- : value.All(x => !Equals(Value, x)),
- _ => false
- };
- }
- }
- }
|