public bool Equals(RequestMatchRules other) { return(other != null && UrlRules.Count() == other.UrlRules.Count() && !UrlRules.Except(other.UrlRules).Any() && HeaderRules.Count() == other.HeaderRules.Count() && !HeaderRules.Except(other.HeaderRules).Any() && QueryRules.Count() == other.QueryRules.Count() && !QueryRules.Except(other.QueryRules).Any() && BodyRules.Count() == other.BodyRules.Count() && other.BodyRules.All(br1 => BodyRules.Any(br2 => br1.Equals(br2)))); }
private QueryRules CreateQueryRules(string field, string value) { var queryRule = new QueryRules(); queryRule.Field = field; queryRule.ObjectType = LogObjectType.none; queryRule.PropertyType = LogPropertyType.none; queryRule.Operator = "="; queryRule.Value = value; return(queryRule); }
public FilterDefinition <Log> BuildFilter(QueryRules rule) { dynamic value = GetValueByPropertyType(rule); switch (rule.ObjectType) { case LogObjectType.jarray: var arrFilter = ItemsOperators.SingleOrDefault(option => option.Key == rule.Operator); return(arrFilter.Value(rule.Field, value)); default: var filter = ItemOperators.SingleOrDefault(option => option.Key == rule.Operator); return(filter.Value(rule.Field, value)); } }
private dynamic GetValueByPropertyType(QueryRules rule) { switch (rule.PropertyType) { case LogPropertyType.number: return(Int32.Parse(rule.Value)); case LogPropertyType.date: var date = DateTime.Parse(rule.Value); return(date); default: return(rule.Value); } }