Esempio n. 1
0
 public void MapTo <T>(T filter, bool keepSub = false) where T : IQueryFilter
 {
     if (filter != null)
     {
         filter.Field      = Field;
         filter.Property   = Property;
         filter.Value      = Value;
         filter.Method     = Method;
         filter.SubFilters = new List <IQueryFilter>();
         if (keepSub && typeof(T) == GetType())
         {
             SubFilters.ForEach(item => filter.SubFilters.Add(item));
         }
         else
         {
             SubFilters.ForEach(item => filter.SubFilters.Add(item.ConvertTo <T>()));
         }
     }
 }
Esempio n. 2
0
        public bool MeetsFilter(IRecord record)
        {
            var result = true;

            if (ConditionOperator == FilterOperator.Or)
            {
                result =
                    (!Conditions.Any() && !SubFilters.Any()) ||
                    Conditions.Any(c => c.MeetsCondition(record)) ||
                    SubFilters.Any(f => f.MeetsFilter(record));
            }
            else
            {
                result = Conditions.All(c => c.MeetsCondition(record)) &&
                         SubFilters.All(f => f.MeetsFilter(record));
            }

            return(result);
        }
 public void Sort()
 {
     Files.Sort();
     SubFilters.Sort();
 }
 public void Add(Filter filter)
 {
     SubFilters.Add(filter);
     filter.Parent = this;
 }
Esempio n. 5
0
 public GroupFilter this[string name]
 {
     get { return(SubFilters?.FirstOrDefault(t => string.Equals(t.GroupName, name, StringComparison.CurrentCultureIgnoreCase))); }
 }