public QueryOptions(IList <QueryFilter> filters = null, IList <QuerySorter> sorters = null, IList <QuerySelector> selectors = null, IList <QueryIncluder> includers = null, QueryPagenator pagenator = null) { Filters = filters; Sorters = sorters; Selectors = selectors; Includers = includers; Pagenator = pagenator; }
public virtual IQueryOptions Map(GroupsListOptionsModel optionsModel) { List <QueryFilter> filters = new List <QueryFilter>(); if (optionsModel.Name != null) { filters.Add(new QueryFilterElement("Name", optionsModel.Name, FilterElementOperation.Contains, new QueryFilterAdditionalOptions() { IgnoreCase = true })); } if (optionsModel.LanguageId != 0) { filters.Add(new QueryFilterElement("Language.Id", optionsModel.LanguageId, FilterElementOperation.Equal)); } if (optionsModel.DateFrom != DateTime.MinValue) { filters.Add(new QueryFilterElement("Date", optionsModel.DateFrom, FilterElementOperation.GreaterThanOrEqual)); } if (optionsModel.DateTo != DateTime.MaxValue) { filters.Add(new QueryFilterElement("Date", optionsModel.DateTo, FilterElementOperation.LessThanOrEqual)); } List <QuerySorter> sorters = new List <QuerySorter>(); SortOrder sortOrder = Enum.Parse <SortOrder>(optionsModel.SortOrder, true); sorters.Add(new QuerySorter(optionsModel.SortProperty, sortOrder)); List <QueryIncluder> includers = new List <QueryIncluder>(); includers.Add(new QueryIncluder("Language")); int take = optionsModel.PageSize; int skip = optionsModel.PageSize * (Math.Max(optionsModel.PageIndex, 1) - 1); QueryPagenator pagenator = new QueryPagenator(take, skip); IQueryOptions queryOptions = new QueryOptions( filters: filters, sorters: sorters, includers: includers, pagenator: pagenator); return(queryOptions); }