Правки по ревью #4
This commit is contained in:
parent
7d973ba859
commit
c5da82c210
@ -18,7 +18,7 @@ public class DataSchemeDto : IEnumerable<SchemePropertyDto>, IEquatable<IEnumera
|
||||
private IEnumerable<SchemePropertyDto> Properties { get; } = [];
|
||||
|
||||
/// <inheritdoc/>
|
||||
public DataSchemeDto(Guid discriminatorId, SchemePropertyDto[] Properties)
|
||||
public DataSchemeDto(Guid discriminatorId, IEnumerable<SchemePropertyDto> Properties)
|
||||
{
|
||||
DiscriminatorId = discriminatorId;
|
||||
this.Properties = Properties;
|
||||
@ -34,8 +34,8 @@ public class DataSchemeDto : IEnumerable<SchemePropertyDto>, IEquatable<IEnumera
|
||||
/// <inheritdoc/>
|
||||
public bool Equals(IEnumerable<SchemePropertyDto>? otherProperties)
|
||||
{
|
||||
//if (otherProperties is null)
|
||||
// return false;
|
||||
if (otherProperties is null)
|
||||
return false;
|
||||
|
||||
return Properties.SequenceEqual(otherProperties);
|
||||
}
|
||||
|
@ -2,6 +2,7 @@
|
||||
using DD.Persistence.Repositories;
|
||||
using DD.Persistence.Services;
|
||||
using NSubstitute;
|
||||
using System.Text.Json;
|
||||
|
||||
namespace DD.Persistence.Repository.Test;
|
||||
public class TimestampedValuesServiceShould
|
||||
@ -45,10 +46,10 @@ public class TimestampedValuesServiceShould
|
||||
{
|
||||
var values = new Dictionary<string, object>()
|
||||
{
|
||||
{ "A", i },
|
||||
{ "B", i * 1.1 },
|
||||
{ "C", $"Any{i}" },
|
||||
{ "D", DateTimeOffset.Now },
|
||||
{ "A", GetJsonFromObject(i) },
|
||||
{ "B", GetJsonFromObject(i * 1.1) },
|
||||
{ "C", GetJsonFromObject($"Any{i}") },
|
||||
{ "D", GetJsonFromObject(DateTimeOffset.Now) }
|
||||
};
|
||||
|
||||
yield return new TimestampedValuesDto()
|
||||
@ -58,4 +59,11 @@ public class TimestampedValuesServiceShould
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
private static JsonElement GetJsonFromObject(object value)
|
||||
{
|
||||
var jsonString = JsonSerializer.Serialize(value);
|
||||
var doc = JsonDocument.Parse(jsonString);
|
||||
return doc.RootElement;
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
/// <param name="dtos"></param>
|
||||
/// <param name="fieldNames">Поля, которые необходимо оставить</param>
|
||||
/// <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 =>
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user