У меня есть следующее требование в моем приложении.
Имя моей организации — «Платеж». При совершении Платежа у меня есть следующие условия. Исходя из этих условий, я должен сказать, что это оплата или восстановление или наличные деньги. Я определил все эти условия в словаре.
Dictionary<string, string> paymentTypes = new Dictionary<string, string>();
paymentTypes.Add("Cash", "Payment.Type = 'C' and Recovery != ''");
paymentTypes.Add("Recovery", "Payment.Recovery = ''");
paymentTypes.Add("Payment", "Payment.Recovery != ''");
Как во время выполнения проверить значения объекта платежа с помощью словаря? Исходя из условия, я должен выбрать ключ словаря.
Я пробовал несколько синтаксических анализов, все из них или любой математический анализатор, который не поддерживает строку в выражениях.
Я не могу преобразовать свои выражения в динамическое выражение. Все эти выражения будут поступать из БД в виде строк. Как мне определить выражение, если моя сущность является универсальной? это выражения, которые я сделал.
Expression<Func<Payment, bool>> cashFilter = payment => payment.Recovery == "" && payment.Type != "V" && payment.Type != "S";
Expression<Func<Payment, bool>> paymentFilter = payment => payment.Recovery == "";
Expression<Func<Payment, bool>> recoveryFilter = payment => payment.Recovery != "";