Форматирование TelemetryDataSaubService

This commit is contained in:
ngfrolov 2024-02-12 08:51:31 +05:00
parent 7dd92be567
commit bb107c8f5b
Signed by: ng.frolov
GPG Key ID: E99907A0357B29A7

View File

@ -1,27 +1,23 @@
using AsbCloudApp.Data;
using AsbCloudApp.Data.SAUB;
using AsbCloudApp.Data.SAUB;
using AsbCloudApp.Exceptions;
using AsbCloudApp.Repositories;
using AsbCloudApp.Services;
using AsbCloudDb.Model;
using Mapster;
using Microsoft.EntityFrameworkCore;
using Org.BouncyCastle.Asn1.Pkcs;
using System;
using System.Collections.Generic;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Text;
using System.Text.Csv;
using System.Threading;
using System.Threading.Tasks;
namespace AsbCloudInfrastructure.Services.SAUB
{
namespace AsbCloudInfrastructure.Services.SAUB;
public class TelemetryDataSaubService : TelemetryDataBaseService<TelemetryDataSaubDto, TelemetryDataSaub>, ITelemetryDataSaubService
{
public class TelemetryDataSaubService : TelemetryDataBaseService<TelemetryDataSaubDto, TelemetryDataSaub>, ITelemetryDataSaubService
{
private readonly ITelemetryUserService telemetryUserService;
public TelemetryDataSaubService(
@ -71,11 +67,13 @@ namespace AsbCloudInfrastructure.Services.SAUB
.Where(t => t.WellDepth > 0.0001)
.Where(t => modes.Contains(t.Mode))
.Where(t => t.WellDepth - t.BitDepth < 0.01)
.GroupBy(t => new {
.GroupBy(t => new
{
t.DateTime.Hour,
WellDepthX10 = Math.Truncate(t.WellDepth * 10),
t.Mode,
t.IdFeedRegulator})
t.IdFeedRegulator
})
.Select(g => new TelemetryDataSaubStatDto
{
Count = g.Count(),
@ -127,7 +125,7 @@ namespace AsbCloudInfrastructure.Services.SAUB
public override TelemetryDataSaubDto Convert(TelemetryDataSaub src, double timezoneOffset)
{
var dto = src.Adapt<TelemetryDataSaubDto>();
var telemetryUser = telemetryUserService.GetOrDefault(src.IdTelemetry, src.IdUser??int.MinValue);
var telemetryUser = telemetryUserService.GetOrDefault(src.IdTelemetry, src.IdUser ?? int.MinValue);
dto.User = telemetryUser?.MakeDisplayName();
dto.DateTime = src.DateTime.ToRemoteDateTime(timezoneOffset);
dto.BitDepth = src.BitDepth <= src.WellDepth
@ -139,7 +137,7 @@ namespace AsbCloudInfrastructure.Services.SAUB
public async Task<Stream> GetZippedCsv(int idWell, DateTime beginDate, DateTime endDate, CancellationToken token)
{
double intervalSec = (endDate - beginDate).TotalSeconds;
if (intervalSec > 60*60*24*3)
if (intervalSec > 60 * 60 * 24 * 3)
throw new ArgumentInvalidException(nameof(endDate), "Слишком большой диапазон");
var telemetry = telemetryService.GetOrDefaultTelemetryByIdWell(idWell)
@ -153,7 +151,7 @@ namespace AsbCloudInfrastructure.Services.SAUB
_ => 32_768
};
var data = await GetAsync(idWell, beginDate, intervalSec, approxPointsCount, token );
var data = await GetAsync(idWell, beginDate, intervalSec, approxPointsCount, token);
var fileName = $"DataSaub idWell{idWell}";
if (telemetry.Info is not null)
@ -171,6 +169,4 @@ namespace AsbCloudInfrastructure.Services.SAUB
outStream.Seek(0, SeekOrigin.Begin);
return outStream;
}
}
}