From 3262201973a7e9f9233f6779073e4b5d72ca8109 Mon Sep 17 00:00:00 2001 From: Roman Efremov Date: Wed, 22 Jan 2025 15:16:24 +0500 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20=D0=BF?= =?UTF-8?q?=D0=BE=20=D1=80=D0=B5=D0=B7=D1=83=D0=BB=D1=8C=D1=82=D0=B0=D1=82?= =?UTF-8?q?=D0=B0=D0=BC=20=D1=80=D0=B5=D0=B2=D1=8C=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/TimestampedValuesController.cs | 2 +- DD.Persistence.Client/Clients/Base/BaseClient.cs | 4 ++-- .../Clients/Interfaces/ITimestampedValuesClient.cs | 1 - .../Repositories/TimestampedValuesRepository.cs | 1 + DD.Persistence/Services/TimestampedValuesService.cs | 12 +++++------- 5 files changed, 9 insertions(+), 11 deletions(-) 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; });