JsonToOrderByModels.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using Newtonsoft.Json.Linq;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Text.RegularExpressions;
  7. namespace SqlSugar
  8. {
  9. public partial class ContextMethods : IContextMethods
  10. {
  11. public List<OrderByModel> JsonToOrderByModels(string json)
  12. {
  13. List<OrderByModel> conditionalModels = new List<OrderByModel>();
  14. var jarray = this.Context.Utilities.DeserializeObject<JArray>(json);
  15. foreach (var item in jarray)
  16. {
  17. if (IsFieldName(item))
  18. {
  19. var model = item.ToObject<OrderByModel>();
  20. conditionalModels.Add(model);
  21. }
  22. else if (item.Type == JTokenType.String)
  23. {
  24. conditionalModels.Add(new OrderByModel() { FieldName = item.ObjToString().ToCheckField() });
  25. }
  26. else if (item.Type == JTokenType.Array)
  27. {
  28. conditionalModels.Add(new OrderByModel()
  29. {
  30. FieldName = item[0].ObjToString(),
  31. OrderByType = item[1].ObjToString().ToLower() == "desc" ? OrderByType.Desc : OrderByType.Asc
  32. });
  33. }
  34. }
  35. return conditionalModels;
  36. }
  37. }
  38. }