#974 Модифицировать метод Get для TimestampedValues по части применения фильтра #28

Merged
on.nemtina merged 7 commits from TimestampedValuesFilter into master 2025-02-12 15:16:09 +05:00
4 changed files with 10 additions and 10 deletions
Showing only changes of commit c904c117d8 - Show all commits

View File

@ -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) },

View File

@ -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,

Можно убрать "!"

Можно убрать "!"
e.Values
)));

View File

@ -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);
}

View File

@ -56,7 +56,7 @@ public class TimestampedValuesControllerTest : BaseIntegrationTest
}
catch (Exception ex)
{
var expectedMessage = $"На сервере произошла ошибка, в результате которой он не может успешно обработать запрос";
var expectedMessage = $"На сервере произошла ошибка, в результате которой он не может успешно обработать запрос";

Кодировка полетела

Кодировка полетела
//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)";