Example #1
0
        private bool FilterMatchInt(FilterRelationType r, int servicevalue, string filtervalue)
        {
            int value;

            try
            {
                value = Int32.Parse(filtervalue);
            }
            catch (Exception)
            {
                //on failure no match
                return(false);
            }
            switch (r)
            {
            case FilterRelationType.Is:
                return(servicevalue == value);

            case FilterRelationType.IsNot:
                return(servicevalue != value);

            case FilterRelationType.LessThan:
                return(servicevalue < value);

            case FilterRelationType.MoreThan:
                return(servicevalue > value);

            default:
                return(false);
            }
        }
Example #2
0
        private bool FilterMatchString(FilterRelationType r, string servicevalue, string filtervalue)
        {
            switch (r)
            {
            case FilterRelationType.Is:
                return(servicevalue.CompareTo(filtervalue) == 0);

            case FilterRelationType.IsNot:
                return(servicevalue.CompareTo(filtervalue) != 0);

            case FilterRelationType.LessThan:
                return(servicevalue.CompareTo(filtervalue) < 0);

            case FilterRelationType.MoreThan:
                return(servicevalue.CompareTo(filtervalue) > 0);

            case FilterRelationType.BeginsWith:
                return(servicevalue.StartsWith(filtervalue));

            case FilterRelationType.EndsWith:
                return(servicevalue.EndsWith(filtervalue));

            case FilterRelationType.Contains:
                return(servicevalue.Contains(filtervalue));

            case FilterRelationType.Excludes:
                return(!servicevalue.Contains(filtervalue));

            default:
                return(false);    // no match for unsupported relation
            }
        }
Example #3
0
 private string ConvertFilterRelationTypeToString(FilterRelationType t)
 {
     if (t == FilterRelationType.Is)
     {
         return(Properties.Resources.FilterRelationTypeIs);
     }
     else if (t == FilterRelationType.IsNot)
     {
         return(Properties.Resources.FilterRelationTypeIsNot);
     }
     else if (t == FilterRelationType.LessThan)
     {
         return(Properties.Resources.FilterRelationTypeLessThan);
     }
     else if (t == FilterRelationType.MoreThan)
     {
         return(Properties.Resources.FilterRelationTypeMoreThan);
     }
     else if (t == FilterRelationType.BeginsWith)
     {
         return(Properties.Resources.FilterRelationTypeBeginsWith);
     }
     else if (t == FilterRelationType.EndsWith)
     {
         return(Properties.Resources.FilterRelationTypeEndsWith);
     }
     else if (t == FilterRelationType.Contains)
     {
         return(Properties.Resources.FilterRelationTypeContains);
     }
     else if (t == FilterRelationType.Excludes)
     {
         return(Properties.Resources.FilterRelationTypeExcludes);
     }
     else if (t == FilterRelationType.InRange)
     {
         return(Properties.Resources.FilterRelationTypeInRange);
     }
     else
     {
         return(Properties.Resources.FilterRelationTypeNone); // this should not happen
     }
 }
 private string ConvertFilterRelationTypeToString(FilterRelationType t)
 {
     if (t == FilterRelationType.Is) return Properties.Resources.FilterRelationTypeIs;
     else if (t == FilterRelationType.IsNot) return Properties.Resources.FilterRelationTypeIsNot;
     else if (t == FilterRelationType.LessThan) return Properties.Resources.FilterRelationTypeLessThan;
     else if (t == FilterRelationType.MoreThan) return Properties.Resources.FilterRelationTypeMoreThan;
     else if (t == FilterRelationType.BeginsWith) return Properties.Resources.FilterRelationTypeBeginsWith;
     else if (t == FilterRelationType.EndsWith) return Properties.Resources.FilterRelationTypeEndsWith;
     else if (t == FilterRelationType.Contains) return Properties.Resources.FilterRelationTypeContains;
     else if (t == FilterRelationType.Excludes) return Properties.Resources.FilterRelationTypeExcludes;
     else if (t == FilterRelationType.InRange) return Properties.Resources.FilterRelationTypeInRange;
     else return Properties.Resources.FilterRelationTypeNone; // this should not happen
 }
Example #5
0
        private bool FilterMatchIntList(FilterRelationType r, SortedSet <int> servicevalue, string filtervalue)
        {
            if (r == FilterRelationType.Contains)
            {
                // each element of filter value is matched against all values in service.
                // If just one elment fails the whole condition fails (AND)
                string[] list = filtervalue.Split(new char[1] {
                    ','
                });
                SortedSet <int> intlist = new SortedSet <int>();
                foreach (var item in list)
                {
                    try
                    {
                        intlist.Add(item.StartsWith("0x") ? Convert.ToInt32(item.Substring(2), 16) : Convert.ToInt32(item));
                    }
                    catch (Exception)
                    {
                        //on failure no match
                        return(false);
                    }
                }

                foreach (var elememt in intlist)
                {
                    if (!servicevalue.Contains(elememt))
                    {
                        return(false);
                    }
                }
                return(true); // if we reached here all elements matched
            }
            else if (r == FilterRelationType.InRange)
            {
                string[] list = filtervalue.Split(new char[2] {
                    ',', '-'
                });

                //only two values are allowed, start and end
                if (list.Length != 2)
                {
                    return(false);
                }
                int v1 = list[0].StartsWith("0x") ? Convert.ToInt32(list[0].Substring(2), 16) : Convert.ToInt32(list[0]);
                int v2 = list[1].StartsWith("0x") ? Convert.ToInt32(list[1].Substring(2), 16) : Convert.ToInt32(list[1]);

                // if
                foreach (var item in servicevalue)
                {
                    if (item >= v1 && item <= v2)
                    {
                        return(true);
                    }
                }
                return(false); // if we reached here none of the elements matched
            }
            else
            {
                return(false);
            }
        }