Пример #1
0
        public static void AddFilter(this FilterState filterState, string fieldName, object value, FilterOperator fieldOperator)
        {
            if (filterState.Filter == null)
            {
                filterState.Filter = new CompositeFilterDescriptor()
                {
                    Logic   = "and",
                    Filters = new List <dynamic>()
                };
            }

            var found = SearchFilterDescriptors(filterState.Filter, fieldName).FirstOrDefault();

            if (found != null)
            {
                throw new InvalidOperationException($"filter [${fieldName}] already exists");
            }

            var filterJson = new FilterDescriptor()
            {
                Field    = fieldName,
                Value    = value,
                Operator = fieldOperator.ToOperatorStr(),
            }.ToJson();

            filterState.Filter.Filters.Add(filterJson);
        }