В моем ProductRepository есть метод, скажем:
GetAllCalculatedProducs(int categoryId) {}
Этот метод использует класс Calculator для вычисления многих значений продукта.Это выглядит примерно так:
public IEnumerable<Product> GetAllCalculatedProducts(int categoryId)
{
var items = GetAllProductsByCategoryId(categoryId);
Calculator c = new Calculator(items);
c.Calculate();
Filter f = new Filter(c.Items);
f.Filter();
Sorter s = new Sorter(f.Items);
s.Sort();
return s.Items;
}
Калькулятор выполняет свою работу, используя другие репозитории.
[DB] <-> [Repository] <- | Business Logic |-> [Калькулятор]
Я предполагаю, что это неправильно из-за того, что репозиторий использует класс, который принадлежит логике.Я даже думаю, что этот метод должен быть в другом месте, может быть, в ProductService?но я не уверен.
А можно ли использовать Filter и Order в хранилище?