diff --git a/DD.Persistence.API/Controllers/TimestampedValuesController.cs b/DD.Persistence.API/Controllers/TimestampedValuesController.cs
index 759d88a..abc1114 100644
--- a/DD.Persistence.API/Controllers/TimestampedValuesController.cs
+++ b/DD.Persistence.API/Controllers/TimestampedValuesController.cs
@@ -35,7 +35,7 @@ public class TimestampedValuesController : ControllerBase
{
var result = await timestampedValuesRepository.AddRange(discriminatorId, dtos, token);
- return Ok(result);
+ return CreatedAtAction(nameof(AddRange), result);
}
///
diff --git a/DD.Persistence.Client/Clients/Base/BaseClient.cs b/DD.Persistence.Client/Clients/Base/BaseClient.cs
index f9bcdd7..3b13cdb 100644
--- a/DD.Persistence.Client/Clients/Base/BaseClient.cs
+++ b/DD.Persistence.Client/Clients/Base/BaseClient.cs
@@ -12,13 +12,13 @@ public abstract class BaseClient
this.logger = logger;
}
- public async Task ExecuteGetResponse(Func>> getMethod, CancellationToken token)
+ public async Task ExecuteGetResponse(Func>> getMethod, CancellationToken token)
{
var response = await getMethod.Invoke().WaitAsync(token);
if (response.IsSuccessStatusCode)
{
- return response.Content!;
+ return response.Content;
}
var exception = response.GetPersistenceException();
diff --git a/DD.Persistence.Client/Clients/Interfaces/ITimestampedValuesClient.cs b/DD.Persistence.Client/Clients/Interfaces/ITimestampedValuesClient.cs
index 9c9f262..b0ea180 100644
--- a/DD.Persistence.Client/Clients/Interfaces/ITimestampedValuesClient.cs
+++ b/DD.Persistence.Client/Clients/Interfaces/ITimestampedValuesClient.cs
@@ -96,7 +96,6 @@ public interface ITimestampedValuesClient : IDisposable
///
///
///
- ///
///
///
///
diff --git a/DD.Persistence.Repository/Repositories/TimestampedValuesRepository.cs b/DD.Persistence.Repository/Repositories/TimestampedValuesRepository.cs
index b2f8203..204b1a2 100644
--- a/DD.Persistence.Repository/Repositories/TimestampedValuesRepository.cs
+++ b/DD.Persistence.Repository/Repositories/TimestampedValuesRepository.cs
@@ -92,6 +92,7 @@ public class TimestampedValuesRepository : ITimestampedValuesRepository
return result;
}
+ // ToDo: прореживание должно осуществляться до материализации
public async virtual Task>> GetResampledData(
Guid discriminatorId,
DateTimeOffset dateBegin,
diff --git a/DD.Persistence/Services/TimestampedValuesService.cs b/DD.Persistence/Services/TimestampedValuesService.cs
index 2b7fc6f..d6d6bf4 100644
--- a/DD.Persistence/Services/TimestampedValuesService.cs
+++ b/DD.Persistence/Services/TimestampedValuesService.cs
@@ -22,6 +22,7 @@ public class TimestampedValuesService : ITimestampedValuesService
///
public async Task AddRange(Guid discriminatorId, IEnumerable dtos, CancellationToken token)
{
+ // ToDo: реализовать без foreach
foreach (var dto in dtos)
{
var keys = dto.Values.Keys.ToArray();
@@ -132,13 +133,10 @@ public class TimestampedValuesService : ITimestampedValuesService
};
var identity = systemSpecification!.PropNames;
- for (var i = 0; i < identity.Count(); i++)
- {
- var key = identity[i];
- var value = entity.Item2[i];
-
- dto.Values.Add(key, value);
- }
+ var indexedIdentity = identity
+ .Select((value, index) => new { index, value });
+ dto.Values = indexedIdentity
+ .ToDictionary(x => x.value, x => entity.Item2[x.index]);
return dto;
});