PracticeQueryExtensions.cs 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. using DocumentFormat.OpenXml.Office2013.Excel;
  2. using Hotline.Application.Exam.Core.Extensions;
  3. using Hotline.Application.Exam.Extensions;
  4. using Hotline.Share.Enums.Exams;
  5. using Hotline.Share.Requests.Exam;
  6. using Hotline.Share.Requests.TestPaper;
  7. using JiebaNet.Segmenter.Common;
  8. using System.Linq.Expressions;
  9. using Hotline.Application.Exam.Core.Utilities;
  10. using Hotline.Exams.Practices;
  11. using Hotline.Exams.Questions;
  12. namespace Hotline.Application.Exam.QueryExtensions.Practices
  13. {
  14. public static class PracticeQueryExtensions
  15. {
  16. public static Expression<Func<ExamPractice,bool>> GetExpression(this PracticePagedRequest practicePagedRequest)
  17. {
  18. Expression<Func<ExamPractice, bool>> expression = m => m.Id != null;
  19. expression = ExpressionableUtility.CreateExpression<ExamPractice>()
  20. .ToExpression();
  21. return expression;
  22. }
  23. public static Expression<Func<ExamPracticeQuestion,bool>> GetExpression(this PracticeQuestionGroupRequest practiceQuestionGroupRequest)
  24. {
  25. Expression<Func<ExamPracticeQuestion, bool>> expression = m => m.Id != null;
  26. expression = ExpressionableUtility.CreateExpression<ExamPracticeQuestion>()
  27. .AndIF(practiceQuestionGroupRequest.PracticeId.IsNotNull(),x=>x.PracticeId == practiceQuestionGroupRequest.PracticeId)
  28. .And(x=>x.QuestionType == EQuestionType.Single || x.QuestionType == EQuestionType.Multi || x.QuestionType == EQuestionType.Judge)
  29. .ToExpression();
  30. return expression;
  31. }
  32. public static Expression<Func<ExamPracticeQuestion,bool>> GetExpression(this PracticeQuestionRequest practiceQuestionRequest)
  33. {
  34. Expression<Func<ExamPracticeQuestion, bool>> expression = m => m.Id != null;
  35. expression = ExpressionableUtility.CreateExpression<ExamPracticeQuestion>()
  36. .AndIF(practiceQuestionRequest.PracticeQuestionId.IsNotNull(), x => x.Id == practiceQuestionRequest.PracticeQuestionId)
  37. .ToExpression();
  38. return expression;
  39. }
  40. public static Expression<Func<ExamQuestionTag, bool>> GetExpression(this TagQuestionCountForPracticeRequest tagQuestionCountForPracticeRequest)
  41. {
  42. Expression<Func<ExamQuestionTag, bool>> expression = m => m.Id != null;
  43. expression = ExpressionableUtility.CreateExpression<ExamQuestionTag>()
  44. .AndIF(tagQuestionCountForPracticeRequest.TagIds.IsNotNullOrEmpty() && tagQuestionCountForPracticeRequest.TagIds.Any(), x => tagQuestionCountForPracticeRequest.TagIds.Contains(x.TagId))
  45. .ToExpression();
  46. return expression;
  47. }
  48. public static Expression<Func<ExamQuestion, bool>> GetQuestionExpression(this TagQuestionCountForPracticeRequest tagQuestionCountForPracticeRequest)
  49. {
  50. Expression<Func<ExamQuestion, bool>> expression = m => m.Id != null;
  51. expression = ExpressionableUtility.CreateExpression<ExamQuestion>()
  52. .And(x=>x.QuestionType == EQuestionType.Single || x.QuestionType == EQuestionType.Multi || x.QuestionType == EQuestionType.Judge)
  53. .ToExpression();
  54. return expression;
  55. }
  56. }
  57. }