diff --git a/DD.Persistence.Models/DataSchemeDto.cs b/DD.Persistence.Models/DataSchemeDto.cs index d20ffaa..2b28176 100644 --- a/DD.Persistence.Models/DataSchemeDto.cs +++ b/DD.Persistence.Models/DataSchemeDto.cs @@ -18,7 +18,7 @@ public class DataSchemeDto : IEnumerable, IEquatable Properties { get; } = []; /// - public DataSchemeDto(Guid discriminatorId, SchemePropertyDto[] Properties) + public DataSchemeDto(Guid discriminatorId, IEnumerable Properties) { DiscriminatorId = discriminatorId; this.Properties = Properties; @@ -34,8 +34,8 @@ public class DataSchemeDto : IEnumerable, IEquatable public bool Equals(IEnumerable? otherProperties) { - //if (otherProperties is null) - // return false; + if (otherProperties is null) + return false; return Properties.SequenceEqual(otherProperties); } diff --git a/DD.Persistence/Services/TimestampedValuesService.cs b/DD.Persistence/Services/TimestampedValuesService.cs index 5e6f9ed..cef700f 100644 --- a/DD.Persistence/Services/TimestampedValuesService.cs +++ b/DD.Persistence/Services/TimestampedValuesService.cs @@ -117,13 +117,13 @@ public class TimestampedValuesService : ITimestampedValuesService if (dataScheme is null) continue; - foreach (var tuple in keyValuePair.Value) + foreach (var (Timestamp, Values) in keyValuePair.Value) { var dto = new TimestampedValuesDto() { - Timestamp = tuple.Timestamp.ToUniversalTime(), + Timestamp = Timestamp.ToUniversalTime(), Values = dataScheme - .ToDictionary(k => k.PropertyName, v => tuple.Values[v.Index]) + .ToDictionary(k => k.PropertyName, v => Values[v.Index]) }; result = result.Append(dto); @@ -144,11 +144,12 @@ public class TimestampedValuesService : ITimestampedValuesService private async Task CreateDataSchemeIfNotExist(Guid discriminatorId, TimestampedValuesDto dto, CancellationToken token) { var valuesList = dto.Values.ToList(); - var properties = valuesList.ToList().Select(e => new SchemePropertyDto() { - Index = valuesList.IndexOf(e), + var properties = valuesList.Select((e, index) => new SchemePropertyDto() + { + Index = index, PropertyName = e.Key, - PropertyKind = ((JsonElement) e.Value).ValueKind - }).ToArray(); + PropertyKind = ((JsonElement)e.Value).ValueKind + }); var dataScheme = await dataSchemeRepository.Get(discriminatorId, token); if (dataScheme is null) @@ -172,7 +173,7 @@ public class TimestampedValuesService : ITimestampedValuesService /// /// Поля, которые необходимо оставить /// - private IEnumerable ReduceSetColumnsByNames(IEnumerable dtos, IEnumerable fieldNames) + private static IEnumerable ReduceSetColumnsByNames(IEnumerable dtos, IEnumerable fieldNames) { var result = dtos.Select(dto => {