public static FieldConfig GetField(FieldConfig config, string field) { if (config != null && config.Fields != null && config.Fields.ContainsKey(field)) { return(config.Fields[field].Items == null ? config.Fields[field] : config.Fields[field].Items); } return(null); }
private static FieldConfig ExtractField(FieldConfig config, string field) { if (config?.Fields != null && config.Fields.ContainsKey(field)) { return(config.Fields[field].Items == null ? config.Fields[field] : config.Fields[field].Items); } return(null); }
public static SortRule CreateSortRule(FieldConfig config, string cultureCode, string field, bool descending) { var fieldConfig = GetField(config, field); var cultureSuffix = fieldConfig != null && fieldConfig.MultiLanguage ? "." + cultureCode : string.Empty; var indexType = GetFieldType(fieldConfig != null ? fieldConfig.IndexType : string.Empty); var rule = new SortRule() { Field = field + cultureSuffix, FieldType = indexType, Descending = descending }; return(rule); }
public static FilterRule CreateFilterRule(FieldConfig config, string cultureCode, string field, OperatorEnum fieldOperator, RuleValue value) { var fieldConfig = GetField(config, field); var cultureSuffix = fieldConfig != null && fieldConfig.MultiLanguage ? "." + cultureCode : string.Empty; var indexType = GetFieldType(fieldConfig != null ? fieldConfig.IndexType : string.Empty); var rule = new FilterRule() { Field = field + cultureSuffix, FieldOperator = fieldOperator, FieldType = indexType, Value = value, }; return(rule); }
public static FilterRule CreateFilterRule(FieldConfig parentFieldConfig, string cultureCode, string field, OperatorEnum fieldOperator, RuleValue value) { var fieldConfig = GetField(parentFieldConfig, field); var cultureSuffix = fieldConfig != null && fieldConfig.MultiLanguage ? "." + cultureCode : string.Empty; var indexType = GetFieldType(fieldConfig != null ? fieldConfig.IndexType : string.Empty); if (fieldConfig == null || fieldConfig.Index == false) { // throw new Exception($"You want me to search in field {field} but it is not indexed. Please fix your index.json."); } var rule = new FilterRule() { Field = field + cultureSuffix, FieldOperator = fieldOperator, FieldType = indexType, Value = value, }; return(rule); }
public static SortRule CreateSortRule(FieldConfig parentFieldConfig, string cultureCode, string field, bool descending) { var fieldConfig = GetField(parentFieldConfig, field); var cultureSuffix = fieldConfig != null && fieldConfig.MultiLanguage ? "." + cultureCode : string.Empty; var indexType = GetFieldType(fieldConfig != null ? fieldConfig.IndexType : string.Empty); if (field == JsonMappingUtils.FIELD_TIMESTAMP) { indexType = FieldTypeEnum.DATETIME; } var rule = new SortRule() { Field = field + cultureSuffix, FieldType = indexType, Descending = descending }; return(rule); }
internal static FieldConfig GetField(FieldConfig fieldconfig, string field) { var fieldParts = field.Split('.'); while (true) { if (fieldParts.Length == 0) { return(null); } var returnConfig = ExtractField(fieldconfig, fieldParts[0]); if (fieldParts.Length == 1) { return(returnConfig); } fieldParts = fieldParts.Skip(1).ToArray(); fieldconfig = returnConfig; } }