TrainTemplateQueryExtensions.cs 1.7 KB

123456789101112131415161718192021222324252627282930
  1. using DocumentFormat.OpenXml.Presentation;
  2. using Exam.Infrastructure.Extensions;
  3. using Hotline.Share.Requests.Train;
  4. using JiebaNet.Segmenter.Common;
  5. using System.Linq.Expressions;
  6. using Hotline.Application.Exam.Core.Utilities;
  7. using Hotline.Exams.Trains;
  8. namespace Hotline.Application.Exam.QueryExtensions.Trains
  9. {
  10. public static class TrainTemplateQueryExtensions
  11. {
  12. public static Expression<Func<ExamTrainTemplate,bool>> GetExpression(this TrainTemplatePagedRequest trainTemplatePagedRequest)
  13. {
  14. Expression<Func<ExamTrainTemplate, bool>> expression = m => m.Id!=null;
  15. expression = ExpressionableUtility.CreateExpression<ExamTrainTemplate>()
  16. .AndIF(trainTemplatePagedRequest.Code.IsNotNullOrEmpty(), x => x.Code.Contains(trainTemplatePagedRequest.Code))
  17. .AndIF(trainTemplatePagedRequest.Name.IsNotNullOrEmpty(), x => x.Name.Contains(trainTemplatePagedRequest.Name))
  18. .AndIF(trainTemplatePagedRequest.IsContainsPractice.IsNotNull(), x => x.IsContainsPractice == trainTemplatePagedRequest.IsContainsPractice)
  19. .AndIF(trainTemplatePagedRequest.Status.IsNotNull(),x=>x.Status==trainTemplatePagedRequest.Status)
  20. .AndIF(trainTemplatePagedRequest.MinCreationTime.IsNotNull(), x => x.CreationTime >= trainTemplatePagedRequest.MinCreationTime)
  21. .AndIF(trainTemplatePagedRequest.MaxCreationTime.IsNotNull(),x=>x.CreationTime<= trainTemplatePagedRequest.MaxCreationTime)
  22. .AndIF(trainTemplatePagedRequest.CreatorName.IsNotNullOrEmpty(), x => x.CreatorName == trainTemplatePagedRequest.CreatorName)
  23. .ToExpression();
  24. return expression;
  25. }
  26. }
  27. }