private Expression <Func <Post, bool> > TitleContains(IEnumerable <string> keywords) { var predicate = PredicateExtensions.Begin <Post>(); foreach (var keyword in keywords) { predicate = predicate.Or(TitleContains(keyword)); } return(predicate); }
public void Can_Begin_New_Expression() { var predicate = PredicateExtensions.Begin <string>(true); Expression <Func <string, bool> > expectedOrExpression = str => (str == "A" || str.Contains("B")); var expectedExpression = expectedOrExpression.ToString(); var orExpression = predicate.Or(_equalsA.Or(_containsB)); var resultExpression = orExpression.ToString(); resultExpression.Should().Be(expectedExpression); LogResults(expectedExpression, resultExpression); }
protected Expression <Func <TModel, bool> > ComposeBaseFilter <TModel>(BaseLogFilter filter) where TModel : BaseLogEntryDbModel { var exp = PredicateExtensions.Begin <TModel>(); if (filter.DateFrom.HasValue) { exp = PredicateExtensions.And <TModel>(exp, error => error.EventDate >= filter.DateFrom); } if (filter.DateTo.HasValue) { exp = PredicateExtensions.And <TModel>(exp, error => error.EventDate <= filter.DateTo); } return(exp); }
/// <summary> /// 获取供应商列表 /// </summary> /// <param name="name"></param> /// <param name="typeCode"></param> /// <param name="pageIndex"></param> /// <param name="pageSize"></param> /// <returns></returns> public List <Supplier> GetSupplier(string name, string typeCode, int pageIndex, int pageSize) { var predicate = PredicateExtensions.Begin <Supplier>(true); if (string.IsNullOrEmpty(name)) { predicate.And(s => s.SupplierName.Contains(name) || s.ShortName.Contains(name)); } if (string.IsNullOrEmpty(typeCode)) { predicate.And(s => s.SupplierType == typeCode); } if (pageSize > 0) { return(_supplierRepository.GetListAsync(predicate, s => s.Id, pageIndex, pageSize).Result); } else { return(_supplierRepository.GetListAsync(predicate).Result); } }