/// <summary> /// Date field filter constructor. /// </summary> /// <param name="canonicalContactField">Canonical contact field.</param> /// <param name="matchType">Filter match type.</param> /// <param name="value">Filter match value.</param> /// <param name="precision">Filter match precision.</param> public DateFieldFilter(CanonicalContactField canonicalContactField, OrdinalFieldMatchType matchType, DateTime value, DateFieldMatchPrecision precision = DateFieldMatchPrecision.Day) : this(canonicalContactField.Validate(nameof(canonicalContactField)).GetCanonicalName(), matchType, value, precision) { }
/// <summary> /// String field filter. /// </summary> /// <param name="canonicalContactField">Canonical contact field.</param> /// <param name="matchType">Filter match type.</param> /// <param name="value">Filter match value.</param> /// <param name="include">Indicates whether to include the matched items in the results.</param> public StringFieldFilter(CanonicalContactField canonicalContactField, StringFieldMatchType matchType, string value, bool include = true) : this(canonicalContactField.Validate(nameof(canonicalContactField)).GetCanonicalName(), matchType, value, include) { }
/// <summary> /// Field sort constructor. /// </summary> /// <param name="canonicalContactField">Canonical contact field.</param> /// <param name="order">Field sort order.</param> public FieldSort(CanonicalContactField canonicalContactField, SortOrder order) : this(canonicalContactField.Validate(nameof(canonicalContactField)).GetCanonicalName(), order) { }
/// <summary> /// Not empty field filter constructor. /// </summary> /// <param name="canonicalContactField">Canonical contact field.</param> public NotEmptyFieldFilter(CanonicalContactField canonicalContactField) : this(canonicalContactField.Validate(nameof(canonicalContactField)).GetCanonicalName()) { }
/// <summary> /// Returns if the field is a string field. /// </summary> /// <param name="value">The canonical contact field.</param> /// <returns></returns> public static bool IsStringValued(this CanonicalContactField value) => (int)value >= 200;
/// <summary> /// Returns if the field is a numeric field. /// </summary> /// <param name="value">The canonical contact field.</param> /// <returns></returns> public static bool IsNumeric(this CanonicalContactField value) => (int)value >= 100 && (int)value < 200;
/// <summary> /// Returns if the field is a date field. /// </summary> /// <param name="value">The canonical contact field.</param> /// <returns></returns> public static bool IsDateValued(this CanonicalContactField value) => value >= 0 && (int)value < 100;
/// <summary> /// Gets the canonical name of the field. /// </summary> /// <param name="value">The canonical contact field.</param> /// <returns></returns> public static string GetCanonicalName(this CanonicalContactField value) => $"Contact.{value.GetValue()}";
/// <summary> /// Numeric field filter constructor. /// </summary> /// <param name="canonicalContactField">Canonical contact field.</param> /// <param name="matchType">Filter match type.</param> /// <param name="value">Filter match value.</param> public NumericFieldFilter(CanonicalContactField canonicalContactField, OrdinalFieldMatchType matchType, decimal value) : this(canonicalContactField.Validate(nameof(canonicalContactField)).GetCanonicalName(), matchType, value) { }