ExtractRuleQueryExtensions.cs 1.2 KB

12345678910111213141516171819202122232425
  1. using Exam.Infrastructure.Extensions;
  2. using Hotline.Share.Requests.Exam;
  3. using JiebaNet.Segmenter.Common;
  4. using System.Linq.Expressions;
  5. using Hotline.Application.Exam.Core.Utilities;
  6. using Hotline.Exams.ExamManages;
  7. namespace Hotline.Application.Exam.QueryExtensions.ExamManages
  8. {
  9. public static class ExtractRuleQueryExtensions
  10. {
  11. public static Expression<Func<ExamExtractRule, bool>> GetExpression(this ExtractRulePagedRequest extractRulePagedRequest)
  12. {
  13. Expression<Func<ExamExtractRule, bool>> expression = m => m.Id != null;
  14. expression = ExpressionableUtility.CreateExpression<ExamExtractRule>()
  15. .AndIF(extractRulePagedRequest.Code.IsNotNullOrEmpty(), x => x.Code.Contains(extractRulePagedRequest.Code))
  16. .AndIF(extractRulePagedRequest.Name.IsNotNullOrEmpty(), x => x.Name.Contains(extractRulePagedRequest.Name))
  17. .AndIF(extractRulePagedRequest.ExamType.IsNotNull(), x => x.RuleType == extractRulePagedRequest.ExamType)
  18. .AndIF(extractRulePagedRequest.Status.IsNotNull(), x => x.Status == extractRulePagedRequest.Status).ToExpression();
  19. return expression;
  20. }
  21. }
  22. }