forked from ddrilling/AsbCloudServer
Merge branch 'dev' into fix/shedule-report-template
This commit is contained in:
commit
29e0829bda
@ -15,10 +15,10 @@ namespace AsbCloudApp.Repositories
|
|||||||
/// добавить данные (для панели бурильщика)
|
/// добавить данные (для панели бурильщика)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="idTelemetry"></param>
|
/// <param name="idTelemetry"></param>
|
||||||
/// <param name="dto"></param>
|
/// <param name="dtos"></param>
|
||||||
/// <param name="token"></param>
|
/// <param name="token"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task SaveDataAsync(int idTelemetry, WitsRecordDto dto, CancellationToken token);
|
Task SaveDataAsync(int idTelemetry, IEnumerable<WitsRecordDto> dtos, CancellationToken token);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// получить данные для клиента
|
/// получить данные для клиента
|
||||||
|
@ -183,26 +183,30 @@ namespace AsbCloudInfrastructure.Repository
|
|||||||
return query;
|
return query;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task SaveDataAsync(int idTelemetry, WitsRecordDto dto, CancellationToken token)
|
public async Task SaveDataAsync(int idTelemetry, IEnumerable<WitsRecordDto> dtos, CancellationToken token)
|
||||||
{
|
{
|
||||||
var timezoneHours = telemetryService.GetTimezone(idTelemetry).Hours;
|
var timezoneHours = telemetryService.GetTimezone(idTelemetry).Hours;
|
||||||
foreach (var item in dto.Items)
|
|
||||||
|
foreach (var dto in dtos)
|
||||||
{
|
{
|
||||||
var dateTime = dto.Date.ToUtcDateTimeOffset(timezoneHours);
|
foreach (var item in dto.Items)
|
||||||
if (item.Value.Value is string valueString)
|
|
||||||
{
|
{
|
||||||
var entity = MakeEntity<WitsItemString, string>(dto.Id, item.Key, idTelemetry, dateTime, valueString);
|
var dateTime = dto.Date.ToUtcDateTimeOffset(timezoneHours);
|
||||||
db.WitsItemString.Add(entity);
|
if (item.Value.Value is string valueString)
|
||||||
}
|
{
|
||||||
if (item.Value.Value is float valueFloat)
|
var entity = MakeEntity<WitsItemString, string>(dto.Id, item.Key, idTelemetry, dateTime, valueString);
|
||||||
{
|
db.WitsItemString.Add(entity);
|
||||||
var entity = MakeEntity<WitsItemFloat, float>(dto.Id, item.Key, idTelemetry, dateTime, valueFloat);
|
}
|
||||||
db.WitsItemFloat.Add(entity);
|
if (item.Value.Value is float valueFloat)
|
||||||
}
|
{
|
||||||
if (item.Value.Value is int valueInt)
|
var entity = MakeEntity<WitsItemFloat, float>(dto.Id, item.Key, idTelemetry, dateTime, valueFloat);
|
||||||
{
|
db.WitsItemFloat.Add(entity);
|
||||||
var entity = MakeEntity<WitsItemInt, int>(dto.Id, item.Key, idTelemetry, dateTime, valueInt);
|
}
|
||||||
db.WitsItemInt.Add(entity);
|
if (item.Value.Value is int valueInt)
|
||||||
|
{
|
||||||
|
var entity = MakeEntity<WitsItemInt, int>(dto.Id, item.Key, idTelemetry, dateTime, valueInt);
|
||||||
|
db.WitsItemInt.Add(entity);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
await db.SaveChangesAsync(token);
|
await db.SaveChangesAsync(token);
|
||||||
|
@ -100,21 +100,21 @@ namespace AsbCloudWebApi.Controllers.SAUB
|
|||||||
/// Сохраняет в БД.
|
/// Сохраняет в БД.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="uid">уникальный идентификатор телеметрии</param>
|
/// <param name="uid">уникальный идентификатор телеметрии</param>
|
||||||
/// <param name="dto">WITS запись</param>
|
/// <param name="dtos">WITS запись</param>
|
||||||
/// <param name="token"></param>
|
/// <param name="token"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost("{uid}")]
|
[HttpPost("{uid}")]
|
||||||
public async Task<IActionResult> PostDataAsync(
|
public async Task<IActionResult> PostDataAsync(
|
||||||
string uid,
|
string uid,
|
||||||
[FromBody] WitsRecordDto dto,
|
[FromBody] IEnumerable<WitsRecordDto> dtos,
|
||||||
CancellationToken token = default)
|
CancellationToken token = default)
|
||||||
{
|
{
|
||||||
var idTelemetry = telemetryService.GetOrCreateTelemetryIdByUid(uid);
|
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);
|
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")
|
_ = Task.Run(() => telemetryHubContext.Clients.Group($"well_{idWell}_gtr")
|
||||||
.SendAsync(SignalRMethodGetDataName, dto), CancellationToken.None);
|
.SendAsync(SignalRMethodGetDataName, dtos), CancellationToken.None);
|
||||||
return Ok();
|
return Ok();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user