Beispiel #1
0
        private void AddFilterValue(string parent, XElement prop, object parsedValue)
        {
            XElement filterMember = prop.Element("FilterMember");

            if (parent == null || filterMember == null || filterMember.Value == null || !filterMember.Value.ToBoolean())
            {
                return;
            }

            var key  = prop.Element("Name").Value.ToString();
            var item = PropertyFilter.FirstOrDefault(x => x.PropertyName == key);

            if (item != null)
            {
                var valList   = item.Values;
                var valuePair = new PropertyFilterValue {
                    Value = parsedValue, Parent = parent
                };
                if (!valList.Contains(valuePair))
                {
                    valList.Add(valuePair);
                }
            }
            else
            {
                var valList = new List <PropertyFilterValue>();
                valList.Add(new PropertyFilterValue {
                    Value = parsedValue, Parent = parent
                });
                PropertyFilter.Add(new PropertyFilter {
                    PropertyName = key, Values = valList
                });
            }
        }
Beispiel #2
0
        private static int CompareValues(PropertyFilterValue a, PropertyFilterValue b)
        {
            switch (a.Value)
            {
            case string _:
                return(((string)a.Value).CompareTo((string)b.Value));

            case decimal _:
                return(((decimal)a.Value).CompareTo((decimal)b.Value));

            case int _:
                return(((int)a.Value).CompareTo((int)b.Value));

            default:
                return(0);
            }
        }