コード例 #1
0
        public SqlExpression <From> Filter <From>(ISqlExpression q, IQueryDb dto, IRequest req)
        {
            if (QueryFilters == null)
            {
                return((SqlExpression <From>)q);
            }

            if (!QueryFilters.TryGetValue(dto.GetType(), out var filterFn))
            {
                foreach (var type in dto.GetType().GetInterfaces())
                {
                    if (QueryFilters.TryGetValue(type, out filterFn))
                    {
                        break;
                    }
                }
            }

            filterFn?.Invoke(q, dto, req);

            return((SqlExpression <From>)q);
        }
コード例 #2
0
        public ISqlExpression Filter(ISqlExpression q, IQueryDb dto, IRequest req)
        {
            if (QueryFilters == null)
            {
                return(q);
            }

            QueryFilterDelegate filterFn = null;

            if (!QueryFilters.TryGetValue(dto.GetType(), out filterFn))
            {
                foreach (var type in dto.GetType().GetInterfaces())
                {
                    if (QueryFilters.TryGetValue(type, out filterFn))
                    {
                        break;
                    }
                }
            }

            filterFn?.Invoke(q, dto, req);

            return(q);
        }