diff --git a/AsbCloudApp/Repositories/ILimitingParameterRepository.cs b/AsbCloudApp/Repositories/ILimitingParameterRepository.cs
index 64111c32..507270ef 100644
--- a/AsbCloudApp/Repositories/ILimitingParameterRepository.cs
+++ b/AsbCloudApp/Repositories/ILimitingParameterRepository.cs
@@ -13,13 +13,13 @@ namespace AsbCloudApp.Repositories
public interface ILimitingParameterRepository
{
///
- /// Получение информации идентификатору скважины
+ /// Получение списка ограничивающих параметров по идентификатору скважины
///
///
///
///
///
- Task> GetStatOrDefaultAsync(LimitingParameterRequest request, WellDto wellDto, CancellationToken token);
+ Task> GetLimitingParametersAsync(LimitingParameterRequest request, WellDto wellDto, CancellationToken token);
}
#nullable disable
}
diff --git a/AsbCloudApp/Services/ILimitingParameterService.cs b/AsbCloudApp/Services/ILimitingParameterService.cs
index a6625191..3e82eba1 100644
--- a/AsbCloudApp/Services/ILimitingParameterService.cs
+++ b/AsbCloudApp/Services/ILimitingParameterService.cs
@@ -13,12 +13,12 @@ namespace AsbCloudApp.Services
public interface ILimitingParameterService
{
///
- /// Получение информации идентификатору скважины
+ /// Получение статистики по ограничивающим параметрам
///
///
///
///
- Task?> GetStatOrDefaultAsync(LimitingParameterRequest request, CancellationToken token);
+ Task> GetStatAsync(LimitingParameterRequest request, CancellationToken token);
}
#nullable disable
}
diff --git a/AsbCloudInfrastructure/Repository/LimitingParameterRepository.cs b/AsbCloudInfrastructure/Repository/LimitingParameterRepository.cs
index 42681c86..88c5f869 100644
--- a/AsbCloudInfrastructure/Repository/LimitingParameterRepository.cs
+++ b/AsbCloudInfrastructure/Repository/LimitingParameterRepository.cs
@@ -19,13 +19,10 @@ namespace AsbCloudInfrastructure.Repository
{
this.context = context;
}
- public async Task> GetStatOrDefaultAsync(LimitingParameterRequest request, WellDto wellDto, CancellationToken token)
+ public async Task> GetLimitingParametersAsync(LimitingParameterRequest request, WellDto wellDto, CancellationToken token)
{
var query = BuildQuery(request, wellDto);
- if (query is null)
- return Enumerable.Empty();
-
var data = (await query.ToListAsync(token))
.Select(x => new LimitingParameterDataDto
{
diff --git a/AsbCloudInfrastructure/Services/LimitingParameterBackgroundService.cs b/AsbCloudInfrastructure/Services/LimitingParameterBackgroundService.cs
index 391fe71e..261ceb9c 100644
--- a/AsbCloudInfrastructure/Services/LimitingParameterBackgroundService.cs
+++ b/AsbCloudInfrastructure/Services/LimitingParameterBackgroundService.cs
@@ -150,52 +150,8 @@ namespace AsbCloudInfrastructure.Services
};
}
}
- await result.DisposeAsync();
}
- //var rows = new List<(short IdLimiting, DateTimeOffset Date, float WellDepth)>(32);
- //{
- // using var result = await ExecuteReaderAsync(db, query, token);
- // int? idLimitingLast = null;
- // while (result.Read())
- // {
- // var idLimiting = result.GetFieldValue(1);
- // var wellDepth = result.GetFieldValue(2);
- // if (idLimitingLast != idLimiting)
- // {
- // idLimitingLast = idLimiting;
- // var date = result.GetFieldValue(0);
- // rows.Add((idLimiting, date, wellDepth));
- // }
- // }
- // await result.DisposeAsync();
- //}
-
- //if (rows.Count < 2)
- // return Enumerable.Empty();
-
- //var limitingParameters = new List(32);
-
- //for (int i = 1; i < rows.Count; i++)
- //{
- // var r0 = rows[i - 1];
- // var r1 = rows[i];
- // if (r0.IdLimiting != r1.IdLimiting)
- // {
- // var limitingParameter = new LimitingParameter()
- // {
- // IdTelemetry = idTelemetry,
- // DateStart = r0.Date,
- // DateEnd = r1.Date,
- // DepthStart = r0.WellDepth,
- // DepthEnd = r1.WellDepth,
- // IdFeedRegulator = (short)r0.IdLimiting
- // };
-
- // limitingParameters.Add(limitingParameter);
- // }
- //}
-
return limitingParameters;
}
diff --git a/AsbCloudInfrastructure/Services/LimitingParameterService.cs b/AsbCloudInfrastructure/Services/LimitingParameterService.cs
index b86e2da3..34ebbd24 100644
--- a/AsbCloudInfrastructure/Services/LimitingParameterService.cs
+++ b/AsbCloudInfrastructure/Services/LimitingParameterService.cs
@@ -23,17 +23,17 @@ namespace AsbCloudInfrastructure.Services
this.wellService = wellService;
}
- public async Task?> GetStatOrDefaultAsync(LimitingParameterRequest request, CancellationToken token)
+ public async Task> GetStatAsync(LimitingParameterRequest request, CancellationToken token)
{
var well = await wellService.GetOrDefaultAsync(request.IdWell, token);
if (well?.IdTelemetry is null || well.Timezone is null)
- return null;
+ return Enumerable.Empty();
- var data = (await limitingParameterRepository.GetStatOrDefaultAsync(request, well, token))
+ var data = (await limitingParameterRepository.GetLimitingParametersAsync(request, well, token))
.GroupBy(x => x.IdFeedRegulator);
- List result = new List();
+ List result = new List(data.Count());
foreach (var item in data)
{
var trimData = TrimLimitingParameters(item, request);
@@ -79,7 +79,7 @@ namespace AsbCloudInfrastructure.Services
x.DepthEnd = (float)request.LtDepth.Value;
}
return x;
- }).ToList();
+ });
return result;
}
diff --git a/AsbCloudWebApi.Tests/ServicesTests/LimitingParameterServiceTest.cs b/AsbCloudWebApi.Tests/ServicesTests/LimitingParameterServiceTest.cs
index b669aace..06dae8b4 100644
--- a/AsbCloudWebApi.Tests/ServicesTests/LimitingParameterServiceTest.cs
+++ b/AsbCloudWebApi.Tests/ServicesTests/LimitingParameterServiceTest.cs
@@ -84,7 +84,7 @@ namespace AsbCloudWebApi.Tests.ServicesTests
[Fact]
public async Task GetList()
{
- var data = await limitingParameterService.GetStatOrDefaultAsync(limitingParameterRequest, CancellationToken.None);
+ var data = await limitingParameterService.GetStatAsync(limitingParameterRequest, CancellationToken.None);
Assert.NotNull(data);
Assert.Single(data);
Assert.Equal(1275, data.First().Depth);
diff --git a/AsbCloudWebApi/Controllers/LimitingParameterController.cs b/AsbCloudWebApi/Controllers/LimitingParameterController.cs
index 7fc076fe..1df008e8 100644
--- a/AsbCloudWebApi/Controllers/LimitingParameterController.cs
+++ b/AsbCloudWebApi/Controllers/LimitingParameterController.cs
@@ -24,13 +24,19 @@ namespace AsbCloudWebApi.Controllers
this.wellService = wellService;
}
+ ///
+ /// Получение статистики по ограничивающим параметрам
+ ///
+ ///
+ ///
+ ///
[HttpGet("stat")]
[ProducesResponseType(typeof(IEnumerable), (int)System.Net.HttpStatusCode.OK)]
- public async Task GetInfosAsync([FromQuery] LimitingParameterRequest request, CancellationToken token = default)
+ public async Task GetStatAsync([FromQuery] LimitingParameterRequest request, CancellationToken token = default)
{
if (!await UserHasAccesToWellAsync(request.IdWell, token))
return Forbid();
- var subsystemResult = await limitingParameterService.GetStatOrDefaultAsync(request, token);
+ var subsystemResult = await limitingParameterService.GetStatAsync(request, token);
return Ok(subsystemResult);
}