Helper.cs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. using Newtonsoft.Json.Linq;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. using System.Linq;
  6. namespace SqlSugar
  7. {
  8. /// <summary>
  9. /// Helper
  10. /// </summary>
  11. public partial class JsonQueryableProvider : IJsonQueryableProvider<JsonQueryResult>
  12. {
  13. private static bool IsJoin(string name)
  14. {
  15. return name.StartsWith("LeftJoin".ToLower()) || name.StartsWith("RightJoin".ToLower()) || name.StartsWith("InnertJoin".ToLower());
  16. }
  17. private static bool IsJoinLastAfter(string name)
  18. {
  19. return name== "joinlastafter";
  20. }
  21. private static bool IsPageSize(string name)
  22. {
  23. return name == "PageSize".ToLower();
  24. }
  25. private static bool IsPageNumber(string name)
  26. {
  27. return name == "PageNumber".ToLower();
  28. }
  29. private static bool IsSelect(string name)
  30. {
  31. return name == "Select".ToLower();
  32. }
  33. private static bool IsHaving(string name)
  34. {
  35. return name == "Having".ToLower();
  36. }
  37. private static bool IsGroupBy(string name)
  38. {
  39. return name == "GroupBy".ToLower();
  40. }
  41. private static bool IsOrderBy(string name)
  42. {
  43. return name == "OrderBy".ToLower();
  44. }
  45. private static bool IsWhere(string name)
  46. {
  47. return name == "Where".ToLower();
  48. }
  49. private static bool IsForm(string name)
  50. {
  51. return name == JsonProviderConfig.KeyQueryable.Get().ToLower();
  52. }
  53. private static bool IsAnySelect(List<JToken> appendTypeNames)
  54. {
  55. return appendTypeNames.Any(it => IsSelect(it.Path.ToLower()));
  56. }
  57. private static bool IsAnyJoin(List<JToken> appendTypeNames)
  58. {
  59. return appendTypeNames.Any(it => IsJoin(it.Path.ToLower()));
  60. }
  61. private int GetSort(string name)
  62. {
  63. if (IsForm(name))
  64. {
  65. return 0;
  66. }
  67. else if (IsJoin(name))
  68. {
  69. return 1;
  70. }
  71. else if (IsJoinLastAfter(name))
  72. {
  73. return 2;
  74. }
  75. else
  76. {
  77. return 100;
  78. }
  79. }
  80. private void AddMasterTableInfos(JsonTableNameInfo tableNameInfo)
  81. {
  82. AddTableInfos(tableNameInfo.TableName, tableNameInfo.ShortName,true);
  83. }
  84. private void AddTableInfos(string tableName,string shortName,bool isMaster=false)
  85. {
  86. UtilMethods.IsNullReturnNew(TableInfos);
  87. TableInfos.Add(new JsonQueryableProvider_TableInfo() { Table = tableName, ShortName = shortName, IsMaster = true });
  88. }
  89. private JsonQueryableProvider_TableInfo GetMasterTable()
  90. {
  91. return this.TableInfos.First(it => it.IsMaster);
  92. }
  93. }
  94. }