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); } }
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 } }
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 }
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); } }