コード例 #1
0
 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);
 }
コード例 #2
0
 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);
 }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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;
            }
        }