#959 Реализовать обход бинарного дерева и создание фильтра на основе спецификаций #26

Merged
on.nemtina merged 8 commits from FilterBuilder into master 2025-02-07 15:11:34 +05:00
Collaborator

Проверять после #24 #25

Проверять после https://git.ddrilling.ru/on.nemtina/persistence/pulls/24 https://git.ddrilling.ru/on.nemtina/persistence/pulls/25
rs.efremov added 6 commits 2025-02-05 10:41:46 +05:00
ng.frolov was assigned by rs.efremov 2025-02-05 10:42:32 +05:00
on.nemtina was assigned by rs.efremov 2025-02-05 10:42:32 +05:00
ng.frolov requested changes 2025-02-05 13:59:19 +05:00
@ -0,0 +7,4 @@
// ToDo: рассмотреть возможность вынести логику в спецификации
public static class SpecificationExtensions
{
public static ISpecification<T> Or<T>(this ISpecification<T> spec, ISpecification<T> otherSpec)
Collaborator

Хотели же сделать And и Or раздельными спецификациями, не методами расширения

Хотели же сделать And и Or раздельными спецификациями, не методами расширения
Author
Collaborator

And спецификация - вообще без проблем. А вот Or спецификация без манипуляций с Expression-ами никак не может быть создана. Тем не менее - обе спецификации я завёл. Для Or просто также используются расширения

And спецификация - вообще без проблем. А вот Or спецификация без манипуляций с Expression-ами никак не может быть создана. Тем не менее - обе спецификации я завёл. Для Or просто также используются расширения
@ -0,0 +64,4 @@
}
}
public class ParameterReplacerVisitor : ExpressionVisitor
Collaborator

Это для отдельного файла

Это для отдельного файла
@ -0,0 +27,4 @@
.ToDictionary(x => x.name, x => x.index);
var visitor = new NodeVisitor<ISpecification<TEntity>?>(
v =>
Collaborator

Вынеси плиз методы куда-нибудь отдельно. Так читать сложновато.

Вынеси плиз методы куда-нибудь отдельно. Так читать сложновато.
@ -0,0 +57,4 @@
var type = dataScheme.PropTypes[keyIndex];
ISpecification<TEntity>? result = null;
switch (type)
Collaborator

Жесть. Замени плиз на обычный словарь методов создания спецификаций

Жесть. Замени плиз на обычный словарь методов создания спецификаций
@ -0,0 +12,4 @@
{
public ValueGreateSpecification(int index, double? value)
{
Query.Where(e => Convert.ToDouble(e.Values[index]) > value);
Collaborator

Все методы Convert.To...() нормально мапятся в SQL?

Все методы Convert.To...() нормально мапятся в SQL?
rs.efremov changed title from #959 Реализовать обход бинарного дерева и создание фильтра на основе спецификаций to WIP: #959 Реализовать обход бинарного дерева и создание фильтра на основе спецификаций 2025-02-06 10:06:00 +05:00
rs.efremov added 11 commits 2025-02-06 12:32:36 +05:00
rs.efremov added 2 commits 2025-02-06 12:40:02 +05:00
rs.efremov force-pushed FilterBuilder from 598056c6d7 to 598056c6d7 2025-02-06 12:40:43 +05:00 Compare
rs.efremov changed title from WIP: #959 Реализовать обход бинарного дерева и создание фильтра на основе спецификаций to #959 Реализовать обход бинарного дерева и создание фильтра на основе спецификаций 2025-02-06 12:41:26 +05:00
on.nemtina requested review from ng.frolov 2025-02-07 15:08:36 +05:00
on.nemtina added 1 commit 2025-02-07 15:11:19 +05:00
on.nemtina merged commit 52f7bca9f1 into master 2025-02-07 15:11:34 +05:00
on.nemtina deleted branch FilterBuilder 2025-02-07 15:11:34 +05:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: on.nemtina/persistence#26
No description provided.