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.

LuExpressionParamReplaceVisitor.cs 900B

1234567891011121314151617181920212223242526272829
  1. using System.Linq.Expressions;
  2. using Luticate2.Auth.Utils.Business.Converters;
  3. using Luticate2.Auth.Utils.Dbo;
  4. using Luticate2.Auth.Utils.Dbo.Result;
  5. using Luticate2.Auth.Utils.Exceptions;
  6. namespace Luticate2.Auth.Utils.Business.ExpressionConverter
  7. {
  8. public class LuExpressionParamReplaceVisitor : ExpressionVisitor
  9. {
  10. public LuConvertersOptions Options { get; }
  11. public LuExpressionParamReplaceVisitor(LuConvertersOptions options)
  12. {
  13. Options = options;
  14. }
  15. protected override Expression VisitParameter(ParameterExpression node)
  16. {
  17. if (!Options.Parameters.ContainsKey(node))
  18. {
  19. LuResult<Expression>.Error(LuStatus.InternalError.ToInt(),
  20. $"Could not find a conversion for parameter {node}").Throw();
  21. }
  22. return Options.Parameters[node];
  23. }
  24. }
  25. }