public DatePropertyQuery(PropertyNames property, DateTime query, PropertyQueryType type) : base(property) { this.query = query; this.type = type; this.pretendNow = null; }
public static bool MatchString(String candidate, String query, PropertyQueryType type, bool caseSensitive) { if (String.IsNullOrEmpty(query)) { return(true); } String stringValue = caseSensitive ? candidate : candidate.ToLowerInvariant(); String queryValue = caseSensitive ? query : query.ToLowerInvariant(); switch (type) { case PropertyQueryType.contains: return(stringValue.Contains(queryValue)); case PropertyQueryType.startswith: return(stringValue.StartsWith(queryValue)); case PropertyQueryType.endswith: return(stringValue.EndsWith(queryValue)); case PropertyQueryType.exactmatch: return(stringValue.Equals(queryValue)); case PropertyQueryType.notcontain: return(!stringValue.Contains(queryValue)); default: return(false); } }
public StringPropertyQuery(XmlNode node) : base(node) { this.caseSensitive = SearchMarshalling.ParseBool(Helpers.GetXmlAttribute(node, "casesensitive")); this.query = Helpers.GetXmlAttribute(node, "query"); this.type = (PropertyQueryType)Enum.Parse(typeof(PropertyQueryType), Helpers.GetXmlAttribute(node, "type")); }
public StringPropertyQuery(PropertyNames property, String query, PropertyQueryType type, bool caseSensitive) : base(property) { this.query = query; this.type = type; this.caseSensitive = caseSensitive; }
public DatePropertyQuery(XmlNode node) : base(node) { string queryString = Helpers.GetXmlAttribute(node, "query"); if (queryString.Length == 8) // new style { this.query = DateTime.ParseExact(queryString, "yyyyMMdd", CultureInfo.InvariantCulture); } else // old style { this.query = TimeUtil.ParseISO8601DateTime(queryString); } this.type = (PropertyQueryType)Enum.Parse(typeof(PropertyQueryType), Helpers.GetXmlAttribute(node, "type")); this.pretendNow = null; }
public static bool?MatchDate(DateTime value, DateTime query, PropertyQueryType type, DateTime now) { DateTime valueLocal = value.ToLocalTime(); switch (type) { case PropertyQueryType.today: return(now.Year == valueLocal.Year && now.DayOfYear == valueLocal.DayOfYear); case PropertyQueryType.yesterday: if (valueLocal.Year == now.Year) { return(valueLocal.DayOfYear == now.DayOfYear - 1); } else if (valueLocal.Year == now.Year - 1) { return(now.DayOfYear == 1 && valueLocal.DayOfYear == DaysInYear(valueLocal.Year)); } else { return(false); } case PropertyQueryType.thisweek: if (valueLocal.Year == now.Year) { int diff = now.DayOfYear - valueLocal.DayOfYear; return(diff >= 0 && diff < 7); } else if (valueLocal.Year == now.Year - 1) { int diff = now.DayOfYear + DaysInYear(valueLocal.Year) - valueLocal.DayOfYear; return(diff >= 0 && diff < 7); } else { return(false); } case PropertyQueryType.lastweek: if (valueLocal.Year == now.Year) { int diff = now.DayOfYear - valueLocal.DayOfYear; return(diff >= 7 && diff < 14); } else if (valueLocal.Year == now.Year - 1) { int diff = now.DayOfYear + DaysInYear(valueLocal.Year) - valueLocal.DayOfYear; return(diff >= 7 && diff < 14); } else { return(false); } case PropertyQueryType.before: return(valueLocal.Date <= query.Date); case PropertyQueryType.after: return(valueLocal.Date >= query.Date); case PropertyQueryType.exact: return(valueLocal.Date == query.Date); default: return(false); } }
public IntPropertyQuery(XmlNode node) : base(node) { this.query = Int64.Parse(Helpers.GetXmlAttribute(node, "query")); this.type = (PropertyQueryType)Enum.Parse(typeof(PropertyQueryType), Helpers.GetXmlAttribute(node, "type")); }
public IntPropertyQuery(PropertyNames property, long query, PropertyQueryType type) : base(property) { this.query = query; this.type = type; }