Правки по результатам ревью
Some checks failed
Unit tests / test (push) Failing after 1m2s

This commit is contained in:
Roman Efremov 2025-01-22 15:16:24 +05:00
parent e981b835a5
commit 3262201973
5 changed files with 9 additions and 11 deletions

View File

@ -35,7 +35,7 @@ public class TimestampedValuesController : ControllerBase
{ {
var result = await timestampedValuesRepository.AddRange(discriminatorId, dtos, token); var result = await timestampedValuesRepository.AddRange(discriminatorId, dtos, token);
return Ok(result); return CreatedAtAction(nameof(AddRange), result);
} }
/// <summary> /// <summary>

View File

@ -12,13 +12,13 @@ public abstract class BaseClient
this.logger = logger; this.logger = logger;
} }
public async Task<T> ExecuteGetResponse<T>(Func<Task<IApiResponse<T>>> getMethod, CancellationToken token) public async Task<T?> ExecuteGetResponse<T>(Func<Task<IApiResponse<T>>> getMethod, CancellationToken token)
{ {
var response = await getMethod.Invoke().WaitAsync(token); var response = await getMethod.Invoke().WaitAsync(token);
if (response.IsSuccessStatusCode) if (response.IsSuccessStatusCode)
{ {
return response.Content!; return response.Content;
} }
var exception = response.GetPersistenceException(); var exception = response.GetPersistenceException();

View File

@ -96,7 +96,6 @@ public interface ITimestampedValuesClient : IDisposable
/// </summary> /// </summary>
/// <typeparam name="T"></typeparam> /// <typeparam name="T"></typeparam>
/// <param name="idDiscriminator"></param> /// <param name="idDiscriminator"></param>
/// <param name="columnNames"></param>
/// <param name="take"></param> /// <param name="take"></param>
/// <param name="token"></param> /// <param name="token"></param>
/// <returns></returns> /// <returns></returns>

View File

@ -92,6 +92,7 @@ public class TimestampedValuesRepository : ITimestampedValuesRepository
return result; return result;
} }
// ToDo: прореживание должно осуществляться до материализации
public async virtual Task<IEnumerable<Tuple<DateTimeOffset, object[]>>> GetResampledData( public async virtual Task<IEnumerable<Tuple<DateTimeOffset, object[]>>> GetResampledData(
Guid discriminatorId, Guid discriminatorId,
DateTimeOffset dateBegin, DateTimeOffset dateBegin,

View File

@ -22,6 +22,7 @@ public class TimestampedValuesService : ITimestampedValuesService
/// <inheritdoc/> /// <inheritdoc/>
public async Task<int> AddRange(Guid discriminatorId, IEnumerable<TimestampedValuesDto> dtos, CancellationToken token) public async Task<int> AddRange(Guid discriminatorId, IEnumerable<TimestampedValuesDto> dtos, CancellationToken token)
{ {
// ToDo: реализовать без foreach
foreach (var dto in dtos) foreach (var dto in dtos)
{ {
var keys = dto.Values.Keys.ToArray(); var keys = dto.Values.Keys.ToArray();
@ -132,13 +133,10 @@ public class TimestampedValuesService : ITimestampedValuesService
}; };
var identity = systemSpecification!.PropNames; var identity = systemSpecification!.PropNames;
for (var i = 0; i < identity.Count(); i++) var indexedIdentity = identity
{ .Select((value, index) => new { index, value });
var key = identity[i]; dto.Values = indexedIdentity
var value = entity.Item2[i]; .ToDictionary(x => x.value, x => entity.Item2[x.index]);
dto.Values.Add(key, value);
}
return dto; return dto;
}); });