2025-02-05 10:40:34 +05:00
|
|
|
|
using Ardalis.Specification;
|
|
|
|
|
using DD.Persistence.Database.EntityAbstractions;
|
|
|
|
|
|
2025-02-11 12:34:37 +05:00
|
|
|
|
namespace DD.Persistence.Database.Specifications.ValuesItem;
|
2025-02-05 10:40:34 +05:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Спецификация "меньше либо равно" для значений IValuesItem в соответствии с индексацией
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <typeparam name="TEntity"></typeparam>
|
2025-02-10 17:25:45 +05:00
|
|
|
|
public class ValueLessOrEqualSpec<TEntity> : Specification<TEntity>
|
2025-02-05 10:40:34 +05:00
|
|
|
|
where TEntity : IValuesItem
|
|
|
|
|
{
|
2025-02-10 17:25:45 +05:00
|
|
|
|
public ValueLessOrEqualSpec(int index, string? value)
|
2025-02-05 10:40:34 +05:00
|
|
|
|
{
|
2025-02-06 12:32:28 +05:00
|
|
|
|
Query.Where(e => string.Compare(Convert.ToString(e.Values[index]), value) <= 0);
|
2025-02-05 10:40:34 +05:00
|
|
|
|
}
|
|
|
|
|
|
2025-02-10 17:25:45 +05:00
|
|
|
|
public ValueLessOrEqualSpec(int index, double? value)
|
2025-02-05 10:40:34 +05:00
|
|
|
|
{
|
2025-02-06 12:32:28 +05:00
|
|
|
|
Query.Where(e => Convert.ToDouble(e.Values[index]) <= value);
|
2025-02-05 10:40:34 +05:00
|
|
|
|
}
|
|
|
|
|
}
|