Merge branch 'RepositoriesRework' into FilterBuilder

This commit is contained in:
Roman Efremov 2025-02-06 12:39:52 +05:00
commit 598056c6d7
2 changed files with 12 additions and 11 deletions

View File

@ -18,7 +18,7 @@ public class DataSchemeDto : IEnumerable<SchemePropertyDto>, IEquatable<IEnumera
private IEnumerable<SchemePropertyDto> Properties { get; } = []; private IEnumerable<SchemePropertyDto> Properties { get; } = [];
/// <inheritdoc/> /// <inheritdoc/>
public DataSchemeDto(Guid discriminatorId, SchemePropertyDto[] Properties) public DataSchemeDto(Guid discriminatorId, IEnumerable<SchemePropertyDto> Properties)
{ {
DiscriminatorId = discriminatorId; DiscriminatorId = discriminatorId;
this.Properties = Properties; this.Properties = Properties;
@ -34,8 +34,8 @@ public class DataSchemeDto : IEnumerable<SchemePropertyDto>, IEquatable<IEnumera
/// <inheritdoc/> /// <inheritdoc/>
public bool Equals(IEnumerable<SchemePropertyDto>? otherProperties) public bool Equals(IEnumerable<SchemePropertyDto>? otherProperties)
{ {
//if (otherProperties is null) if (otherProperties is null)
// return false; return false;
return Properties.SequenceEqual(otherProperties); return Properties.SequenceEqual(otherProperties);
} }

View File

@ -117,13 +117,13 @@ public class TimestampedValuesService : ITimestampedValuesService
if (dataScheme is null) if (dataScheme is null)
continue; continue;
foreach (var tuple in keyValuePair.Value) foreach (var (Timestamp, Values) in keyValuePair.Value)
{ {
var dto = new TimestampedValuesDto() var dto = new TimestampedValuesDto()
{ {
Timestamp = tuple.Timestamp.ToUniversalTime(), Timestamp = Timestamp.ToUniversalTime(),
Values = dataScheme Values = dataScheme
.ToDictionary(k => k.PropertyName, v => tuple.Values[v.Index]) .ToDictionary(k => k.PropertyName, v => Values[v.Index])
}; };
result = result.Append(dto); result = result.Append(dto);
@ -144,11 +144,12 @@ public class TimestampedValuesService : ITimestampedValuesService
private async Task CreateDataSchemeIfNotExist(Guid discriminatorId, TimestampedValuesDto dto, CancellationToken token) private async Task CreateDataSchemeIfNotExist(Guid discriminatorId, TimestampedValuesDto dto, CancellationToken token)
{ {
var valuesList = dto.Values.ToList(); var valuesList = dto.Values.ToList();
var properties = valuesList.ToList().Select(e => new SchemePropertyDto() { var properties = valuesList.Select((e, index) => new SchemePropertyDto()
Index = valuesList.IndexOf(e), {
Index = index,
PropertyName = e.Key, PropertyName = e.Key,
PropertyKind = ((JsonElement)e.Value).ValueKind PropertyKind = ((JsonElement)e.Value).ValueKind
}).ToArray(); });
var dataScheme = await dataSchemeRepository.Get(discriminatorId, token); var dataScheme = await dataSchemeRepository.Get(discriminatorId, token);
if (dataScheme is null) if (dataScheme is null)
@ -172,7 +173,7 @@ public class TimestampedValuesService : ITimestampedValuesService
/// <param name="dtos"></param> /// <param name="dtos"></param>
/// <param name="fieldNames">Поля, которые необходимо оставить</param> /// <param name="fieldNames">Поля, которые необходимо оставить</param>
/// <returns></returns> /// <returns></returns>
private IEnumerable<TimestampedValuesDto> ReduceSetColumnsByNames(IEnumerable<TimestampedValuesDto> dtos, IEnumerable<string> fieldNames) private static IEnumerable<TimestampedValuesDto> ReduceSetColumnsByNames(IEnumerable<TimestampedValuesDto> dtos, IEnumerable<string> fieldNames)
{ {
var result = dtos.Select(dto => var result = dtos.Select(dto =>
{ {