public override void LoadFrom(FilterItem value)
        {
            var group = value as FilterItemGroup;

            if (group != null)
            {
                foreach (var item in group.Children)
                {
                    Children.Add(FilterItemBuilder.GetBuilder(item));
                }

                GroupType = group.GroupType;
            }
            else
            {
                throw new ArgumentException($"Unexpected FilterItem. Expected {nameof(FilterItemGroup)} got {value?.GetType()}", nameof(value));
            }
        }
Example #2
0
        public static FilterItemBuilder GetBuilder(FilterItem item)
        {
            FilterItemBuilder result = null;

            if (item is FilterItemGroup)
            {
                result = new FilterItemGroupBuilder();
            }
            else if (item is BooleanFilterItem)
            {
                result = new BooleanFilterItemBuilder();
            }
            else if (item is StringBinaryFilterItem)
            {
                result = new StringFilterItemBuilder();
            }
            else if (item is DateTimeBinaryFilterItem)
            {
                result = new DateTimeFilterItemBuilder();
            }
            else if (item is NumericBinaryFilterItem)
            {
                result = new NumericFilterItemBuilder();
            }
            else if (item is AnyFilterItem)
            {
                result = new AnyFilterItemBuilder();
            }
            else if (item is GuidBinaryFilterItem)
            {
                result = new GuidFilterItemBuilder();
            }

            if (result == null)
            {
                throw new NotSupportedException($"Unsupported FilterItem {item?.GetType()} detected");
            }

            result.LoadFrom(item);
            return(result);
        }