平安校园
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

62 lines
1.5 KiB

  1. namespace SafeCampus.Core;
  2. /// <summary>
  3. /// 全局分页查询输入参数
  4. /// </summary>
  5. public class BasePageInput : IValidatableObject
  6. {
  7. /// <summary>
  8. /// 当前页码
  9. /// </summary>
  10. [DataValidation(ValidationTypes.Numeric)]
  11. public virtual int PageNum { get; set; } = 1;
  12. /// <summary>
  13. /// 每页条数
  14. /// </summary>
  15. [Range(1, 1000, ErrorMessage = "页码容量超过最大限制")]
  16. [DataValidation(ValidationTypes.Numeric)]
  17. public virtual int PageSize { get; set; } = 10;
  18. /// <summary>
  19. /// 排序字段
  20. /// </summary>
  21. public virtual string SortField { get; set; }
  22. /// <summary>
  23. /// 排序方式,升序:ascend;降序:descend"
  24. /// </summary>
  25. public virtual string SortOrder { get; set; } = "desc";
  26. /// <summary>
  27. /// 关键字
  28. /// </summary>
  29. public virtual string SearchKey { get; set; }
  30. public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
  31. {
  32. //配合小诺排序参数
  33. if (SortOrder == "descend")
  34. {
  35. SortOrder = "desc";
  36. }
  37. else if (SortOrder == "ascend")
  38. {
  39. SortOrder = "asc";
  40. }
  41. if (!string.IsNullOrEmpty(SortField))
  42. {
  43. //分割排序字段
  44. var fields = SortField.Split(" ");
  45. if (fields.Length > 1)
  46. {
  47. yield return new ValidationResult("排序字段错误", new[]
  48. {
  49. nameof(SortField)
  50. });
  51. }
  52. }
  53. }
  54. }