#959 Реализовать обход бинарного дерева и создание фильтра на основе спецификаций #26
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "FilterBuilder"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Проверять после #24 #25
@ -0,0 +7,4 @@
// ToDo: рассмотреть возможность вынести логику в спецификации
public static class SpecificationExtensions
{
public static ISpecification<T> Or<T>(this ISpecification<T> spec, ISpecification<T> otherSpec)
Хотели же сделать And и Or раздельными спецификациями, не методами расширения
And спецификация - вообще без проблем. А вот Or спецификация без манипуляций с Expression-ами никак не может быть создана. Тем не менее - обе спецификации я завёл. Для Or просто также используются расширения
@ -0,0 +64,4 @@
}
}
public class ParameterReplacerVisitor : ExpressionVisitor
Это для отдельного файла
@ -0,0 +27,4 @@
.ToDictionary(x => x.name, x => x.index);
var visitor = new NodeVisitor<ISpecification<TEntity>?>(
v =>
Вынеси плиз методы куда-нибудь отдельно. Так читать сложновато.
@ -0,0 +57,4 @@
var type = dataScheme.PropTypes[keyIndex];
ISpecification<TEntity>? result = null;
switch (type)
Жесть. Замени плиз на обычный словарь методов создания спецификаций
@ -0,0 +12,4 @@
{
public ValueGreateSpecification(int index, double? value)
{
Query.Where(e => Convert.ToDouble(e.Values[index]) > value);
Все методы Convert.To...() нормально мапятся в SQL?
#959 Реализовать обход бинарного дерева и создание фильтра на основе спецификацийto WIP: #959 Реализовать обход бинарного дерева и создание фильтра на основе спецификаций598056c6d7
to598056c6d7
WIP: #959 Реализовать обход бинарного дерева и создание фильтра на основе спецификацийto #959 Реализовать обход бинарного дерева и создание фильтра на основе спецификаций