2021-11-26 15:47:11 +01:00
|
|
|
using System.Linq.Expressions;
|
|
|
|
|
|
2021-11-29 18:25:50 +01:00
|
|
|
namespace zero.Api.Models;
|
2021-11-26 15:47:11 +01:00
|
|
|
|
|
|
|
|
public class ListQuery<T>
|
|
|
|
|
{
|
|
|
|
|
public ListQueryDisplayType DisplayType { get; set; }
|
|
|
|
|
|
|
|
|
|
public string[] Ids { get; set; } = Array.Empty<string>();
|
|
|
|
|
|
|
|
|
|
public string Search { get; set; } = null;
|
|
|
|
|
|
|
|
|
|
public Expression<Func<T, object>> SearchSelector { get; set; } = null;
|
|
|
|
|
|
|
|
|
|
public Expression<Func<T, object>>[] SearchSelectors { get; private set; } = new Expression<Func<T, object>>[0] { };
|
|
|
|
|
|
2021-12-17 13:51:16 +01:00
|
|
|
public Expression<Func<IQueryable<T>, IQueryable<T>>> AdditionalQuery { get; set; } = null;
|
|
|
|
|
|
2021-11-26 15:47:11 +01:00
|
|
|
public string OrderBy { get; set; } = "createdDate";
|
|
|
|
|
|
|
|
|
|
public ListQueryOrderType OrderType { get; set; } = ListQueryOrderType.String;
|
|
|
|
|
|
|
|
|
|
public bool OrderIsDescending { get; set; } = true;
|
|
|
|
|
|
|
|
|
|
public Func<IQueryable<T>, IQueryable<T>> OrderQuery = null;
|
|
|
|
|
|
|
|
|
|
public int Page { get; set; } = 1;
|
|
|
|
|
|
|
|
|
|
public int PageSize { get; set; } = 30;
|
|
|
|
|
|
|
|
|
|
//public bool IncludeInactive { get; set; } = true;
|
|
|
|
|
|
|
|
|
|
public void SearchFor(params Expression<Func<T, object>>[] selectors)
|
|
|
|
|
{
|
|
|
|
|
SearchSelectors = selectors;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public class ListQuery<T, TFilter> : ListQuery<T> where TFilter : IListSpecificQuery
|
|
|
|
|
{
|
|
|
|
|
public TFilter Filter { get; set; }
|
|
|
|
|
}
|