private List <DataProviderFilterInfo> FixFilters(List <DataProviderFilterInfo> filters)
        {
            if (filters == null)
            {
                return(filters);
            }
            List <DataProviderFilterInfo> newFilters = new List <DataProviderFilterInfo>();

            DataProviderFilterInfo.NormalizeFilters(typeof(SchedulerItemData), filters);
            foreach (DataProviderFilterInfo f in filters)
            {
                if (f.Field == "IsRunning")
                {
                    bool val;
                    if (f.Value.GetType() == typeof(bool))
                    {
                        val = (bool)f.Value;
                    }
                    else
                    {
                        throw new InternalError("Unexpected value type in filter for IsRunning");
                    }
                    if (f.Operator == "==")
                    {
                        // nothing
                    }
                    else if (f.Operator == "!=")
                    {
                        val = !val;
                    }
                    else
                    {
                        throw new InternalError("Unexpected operator in filter for IsRunning");
                    }
                    newFilters.Add(new DataProviderFilterInfo {
                        Field = nameof(SchedulerItemData.Next), Operator = val ? ">=" : "<", Value = DateTime.MaxValue
                    });
                }
                else if (f.Filters != null)
                {
                    f.Filters = FixFilters(f.Filters);
                    newFilters.Add(f);
                }
                else
                {
                    newFilters.Add(f);
                }
            }
            return(newFilters);
        }