diff --git a/AsbCloudApp/Repositories/IGtrRepository.cs b/AsbCloudApp/Repositories/IGtrRepository.cs
index a8c16354..7aad6629 100644
--- a/AsbCloudApp/Repositories/IGtrRepository.cs
+++ b/AsbCloudApp/Repositories/IGtrRepository.cs
@@ -15,10 +15,10 @@ namespace AsbCloudApp.Repositories
/// добавить данные (для панели бурильщика)
///
///
- ///
+ ///
///
///
- Task SaveDataAsync(int idTelemetry, WitsRecordDto dto, CancellationToken token);
+ Task SaveDataAsync(int idTelemetry, IEnumerable dtos, CancellationToken token);
///
/// получить данные для клиента
diff --git a/AsbCloudInfrastructure/Repository/GtrWitsRepository.cs b/AsbCloudInfrastructure/Repository/GtrWitsRepository.cs
index 8e2b77b5..a0af9bf7 100644
--- a/AsbCloudInfrastructure/Repository/GtrWitsRepository.cs
+++ b/AsbCloudInfrastructure/Repository/GtrWitsRepository.cs
@@ -183,26 +183,30 @@ namespace AsbCloudInfrastructure.Repository
return query;
}
- public async Task SaveDataAsync(int idTelemetry, WitsRecordDto dto, CancellationToken token)
+ public async Task SaveDataAsync(int idTelemetry, IEnumerable dtos, CancellationToken token)
{
var timezoneHours = telemetryService.GetTimezone(idTelemetry).Hours;
- foreach (var item in dto.Items)
+
+ foreach (var dto in dtos)
{
- var dateTime = dto.Date.ToUtcDateTimeOffset(timezoneHours);
- if (item.Value.Value is string valueString)
+ foreach (var item in dto.Items)
{
- var entity = MakeEntity(dto.Id, item.Key, idTelemetry, dateTime, valueString);
- db.WitsItemString.Add(entity);
- }
- if (item.Value.Value is float valueFloat)
- {
- var entity = MakeEntity(dto.Id, item.Key, idTelemetry, dateTime, valueFloat);
- db.WitsItemFloat.Add(entity);
- }
- if (item.Value.Value is int valueInt)
- {
- var entity = MakeEntity(dto.Id, item.Key, idTelemetry, dateTime, valueInt);
- db.WitsItemInt.Add(entity);
+ var dateTime = dto.Date.ToUtcDateTimeOffset(timezoneHours);
+ if (item.Value.Value is string valueString)
+ {
+ var entity = MakeEntity(dto.Id, item.Key, idTelemetry, dateTime, valueString);
+ db.WitsItemString.Add(entity);
+ }
+ if (item.Value.Value is float valueFloat)
+ {
+ var entity = MakeEntity(dto.Id, item.Key, idTelemetry, dateTime, valueFloat);
+ db.WitsItemFloat.Add(entity);
+ }
+ if (item.Value.Value is int valueInt)
+ {
+ var entity = MakeEntity(dto.Id, item.Key, idTelemetry, dateTime, valueInt);
+ db.WitsItemInt.Add(entity);
+ }
}
}
await db.SaveChangesAsync(token);
diff --git a/AsbCloudWebApi/Controllers/SAUB/GtrWitsController.cs b/AsbCloudWebApi/Controllers/SAUB/GtrWitsController.cs
index 981ff1e7..547b53c0 100644
--- a/AsbCloudWebApi/Controllers/SAUB/GtrWitsController.cs
+++ b/AsbCloudWebApi/Controllers/SAUB/GtrWitsController.cs
@@ -100,21 +100,21 @@ namespace AsbCloudWebApi.Controllers.SAUB
/// Сохраняет в БД.
///
/// уникальный идентификатор телеметрии
- /// WITS запись
+ /// WITS запись
///
///
[HttpPost("{uid}")]
public async Task PostDataAsync(
string uid,
- [FromBody] WitsRecordDto dto,
+ [FromBody] IEnumerable dtos,
CancellationToken token = default)
{
var idTelemetry = telemetryService.GetOrCreateTelemetryIdByUid(uid);
- await gtrRepository.SaveDataAsync(idTelemetry, dto, token).ConfigureAwait(false);
+ await gtrRepository.SaveDataAsync(idTelemetry, dtos, token).ConfigureAwait(false);
var idWell = telemetryService.GetIdWellByTelemetryUid(uid);
- if (idWell is not null && dto is not null)
+ if (idWell is not null && dtos is not null)
_ = Task.Run(() => telemetryHubContext.Clients.Group($"well_{idWell}_gtr")
- .SendAsync(SignalRMethodGetDataName, dto), CancellationToken.None);
+ .SendAsync(SignalRMethodGetDataName, dtos), CancellationToken.None);
return Ok();
}
}