#974 Модифицировать метод Get для TimestampedValues по части применения фильтра #28
@ -96,7 +96,7 @@ public static class FilterBuilder
|
||||
private static Dictionary<OperationEnum, Func<int, string?, ISpecification<TEntity>>> StringSpecifications<TEntity>()
|
||||
where TEntity : IValuesItem => new()
|
||||
{
|
||||
{ OperationEnum.Equal, (int index, string? value) => new ValueEqaulSpec<TEntity>(index, value) },
|
||||
{ OperationEnum.Equal, (int index, string? value) => new ValueEqualSpec<TEntity>(index, value) },
|
||||
{ OperationEnum.NotEqual, (int index, string? value) => new ValueNotEqualSpec<TEntity>(index, value) },
|
||||
{ OperationEnum.Greate, (int index, string? value) => new ValueGreateSpec<TEntity>(index, value) },
|
||||
{ OperationEnum.GreateOrEqual, (int index, string? value) => new ValueGreateOrEqualSpec<TEntity>(index, value) },
|
||||
@ -106,7 +106,7 @@ public static class FilterBuilder
|
||||
private static Dictionary<OperationEnum, Func<int, double?, ISpecification<TEntity>>> DoubleSpecifications<TEntity>()
|
||||
where TEntity : IValuesItem => new()
|
||||
{
|
||||
{ OperationEnum.Equal, (int index, double? value) => new ValueEqaulSpec<TEntity>(index, value) },
|
||||
{ OperationEnum.Equal, (int index, double? value) => new ValueEqualSpec<TEntity>(index, value) },
|
||||
{ OperationEnum.NotEqual, (int index, double? value) => new ValueNotEqualSpec<TEntity>(index, value) },
|
||||
{ OperationEnum.Greate, (int index, double? value) => new ValueGreateSpec<TEntity>(index, value) },
|
||||
{ OperationEnum.GreateOrEqual, (int index, double? value) => new ValueGreateOrEqualSpec<TEntity>(index, value) },
|
||||
|
@ -61,15 +61,15 @@ public class TimestampedValuesRepository : ITimestampedValuesRepository
|
||||
resultQuery = resultQuery.Any() ? resultQuery.Union(query) : query;
|
||||
}
|
||||
var groupedQuery = resultQuery!
|
||||
.GroupBy(e => e!.DiscriminatorId)
|
||||
.GroupBy(e => e.DiscriminatorId)
|
||||
|
||||
.Select(g => KeyValuePair.Create(
|
||||
g.Key,
|
||||
g.OrderBy(i => i!.Timestamp).Skip(skip).Take(take))
|
||||
g.OrderBy(i => i.Timestamp).Skip(skip).Take(take))
|
||||
);
|
||||
|
||||
var entities = await groupedQuery.ToArrayAsync(token);
|
||||
var result = entities.ToDictionary(k => k.Key, v => v.Value.Select(e => (
|
||||
e!.Timestamp,
|
||||
e.Timestamp,
|
||||
on.nemtina
commented
Можно убрать "!" Можно убрать "!"
|
||||
e.Values
|
||||
)));
|
||||
|
||||
|
@ -7,15 +7,15 @@ namespace DD.Persistence.Database.Specifications.ValuesItem;
|
||||
/// Спецификация эквивалентности значений IValuesItem в соответствии с индексацией
|
||||
/// </summary>
|
||||
/// <typeparam name="TEntity"></typeparam>
|
||||
public class ValueEqaulSpec<TEntity> : Specification<TEntity>
|
||||
public class ValueEqualSpec<TEntity> : Specification<TEntity>
|
||||
where TEntity : IValuesItem
|
||||
{
|
||||
public ValueEqaulSpec(int index, string? value)
|
||||
public ValueEqualSpec(int index, string? value)
|
||||
{
|
||||
Query.Where(e => Convert.ToString(e.Values[index]) == value);
|
||||
}
|
||||
|
||||
public ValueEqaulSpec(int index, double? value)
|
||||
public ValueEqualSpec(int index, double? value)
|
||||
{
|
||||
Query.Where(e => Convert.ToDouble(e.Values[index]) == value);
|
||||
}
|
@ -56,7 +56,7 @@ public class TimestampedValuesControllerTest : BaseIntegrationTest
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
var expectedMessage = $"На сервере произошла ошибка, в результате которой он не может успешно обработать запрос";
|
||||
var expectedMessage = $"На сервере произошла ошибка, в результате которой он не может успешно обработать запрос";
|
||||
on.nemtina
commented
Кодировка полетела Кодировка полетела
|
||||
|
||||
//assert
|
||||
Assert.Equal(expectedMessage, ex.Message);
|
||||
@ -78,7 +78,7 @@ public class TimestampedValuesControllerTest : BaseIntegrationTest
|
||||
var timestampBegin = DateTimeOffset.UtcNow.AddDays(-1);
|
||||
var columnNames = new List<string>() { "A", "C" };
|
||||
var skip = 0;
|
||||
var take = 6; // Ровно столько значений будет удовлетворять фильтру (\"A\">3) (для одного дискриминатора)
|
||||
var take = 6; // Ровно столько значений будет удовлетворять фильтру (\"A\">3) (для одного дискриминатора)
|
||||
|
||||
var customFilter = "(\"A\">3)";
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user
Можно убрать "!"