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; });