Example #1
0
 public void AddFilterItem(string key, IEnumerable <FilterItem> items)
 {
     if (filterCollection.ContainsKey(key))
     {
         filterCollection[key].AddRange(items);
     }
     else
     {
         var filterItemList = new FilterItemList();
         filterItemList.AddRange(items);
         filterCollection.Add(key, filterItemList);
     }
 }
Example #2
0
        private static FilterItemList GetQueryAttribute(object val, string key, ParameterInfo paramInfo)
        {
            var filterAttributes = new FilterItemList();
            var objStr           = Convert.ToString(val);

            try
            {
                var jobj = JObject.Parse(objStr);
                foreach (var item in jobj)
                {
                    var value  = item.Value.Value <string>();
                    var isDate = DateTime.TryParseExact(value, "MM/dd/yyyy HH:mm:ss", null, DateTimeStyles.None, out DateTime dateValue);
                    if (isDate)
                    {
                        var dateWithMilli = item.Value.Value <DateTime>();
                        value = dateWithMilli.ToString("yyyy-MM-ddTHH:mm:ss.fffZ");
                    }

                    var filterOperator = (FilterOperator)item.Key.GetEnumFromEnumMemberValue(typeof(FilterOperator));

                    if (paramInfo != null)
                    {
                        var correspondingValueType = paramInfo.ParameterType
                                                     .GetMethods()
                                                     .FirstOrDefault(m => m.Name.StartsWith(key.SnakeToCamel()))
                                                     .GetParameters()
                                                     .FirstOrDefault()
                                                     .ParameterType;

                        if (correspondingValueType.IsEnum)
                        {
                            var enumValue = value.GetEnumMemberValue(correspondingValueType);

                            if (!string.IsNullOrEmpty(enumValue))
                            {
                                value = enumValue;
                            }
                        }
                    }

                    filterAttributes.Add(new FilterItem(value, filterOperator));
                }
            }
            catch (JsonReaderException)
            {
                filterAttributes.Add(new FilterItem(objStr));
            }

            return(filterAttributes);
        }
 public void SetFilterGroup(LocalFilterGroup localFilterGroup)
 {
     GroupId   = localFilterGroup.Id;
     GroupName = localFilterGroup.Name;
     IsChecked = localFilterGroup.IsActive;
     foreach (var localFilter in localFilterGroup.Filters)
     {
         var filterItemModel = FilterItemList.FirstOrDefault(item => item.SettingsItemName == localFilter.Type);
         filterItemModel.SetFIlterItem(localFilter);
     }
     IntervalFilterItemViewModel.IsChecked = localFilterGroup.IsIntervalActive;
     IntervalFilterItemViewModel.StartDate = localFilterGroup.StartDate;
     IntervalFilterItemViewModel.EndDate   = localFilterGroup.EndDate;
     HasChanged(false);
 }