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.

LuFilterParser.cs 903B

1234567891011121314151617181920212223242526272829
  1. using Luticate2.Auth.Utils.Business.Utils;
  2. using Luticate2.Auth.Utils.Dbo;
  3. using Luticate2.Auth.Utils.Dbo.Pagination;
  4. using Luticate2.Auth.Utils.Dbo.Result;
  5. namespace Luticate2.Auth.Utils.Business.Pagination
  6. {
  7. public class LuFilterParser
  8. {
  9. public static LuResult<LuFilterDbo> Parse<T>(string data, LuExpressionUtils.LuExpressionParserOptions options)
  10. {
  11. if (string.IsNullOrWhiteSpace(data))
  12. {
  13. return LuResult<LuFilterDbo>.Ok(new LuFilterDbo
  14. {
  15. Expression = null
  16. });
  17. }
  18. var completeData = $"(x) => ({data})";
  19. var expressionResult = LuExpressionUtils.Parse<T, bool>(completeData, options);
  20. return expressionResult.Select(expression => new LuFilterDbo
  21. {
  22. Expression = expression
  23. });
  24. }
  25. }
  26. }