public SearchResult <DataSetItemModel> Search(DataSetItemSearchModel model) { if (model == null) { throw new ArgumentNullException(nameof(model)); } return(new SearchResult <DataSetItemModel> { Total = Count(SearchPredicate(model)), Items = GetListNoTracking( SearchPredicate(model), orderBys: string.Equals(model.Direction, "asc", StringComparison.InvariantCultureIgnoreCase) ? AscendingOrderBys(model.Sort) : DescendingOrderBys(model.Sort), skip: model.Skip, take: model.Limit) }); }
private static Expression <Func <DataSetItem, bool> > SearchPredicate(DataSetItemSearchModel model) { Expression <Func <DataSetItem, bool> > predicate = a => true; if (model == null) { return(predicate); } predicate = predicate.And(x => x.DataSetId == model.DataSetId && x.DataSetType == model.DataSetType); if (!string.IsNullOrEmpty(model.Query)) { predicate = predicate.And(x => x.District.Contains(model.Query) || x.ProductType.Contains(model.Query)); } return(predicate); }
public IActionResult Search([FromBody] DataSetItemSearchModel model) { return(Ok(_dataSetItemService.Search(model).Items)); }